summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-x[-rw-r--r--]indra/newview/CMakeLists.txt205
-rwxr-xr-x[-rw-r--r--]indra/newview/English.lproj/InfoPlist.strings4
-rwxr-xr-x[-rw-r--r--]indra/newview/English.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/German.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/Info-SecondLife.plist2
-rwxr-xr-x[-rw-r--r--]indra/newview/Info-SecondLifeVorbis.plist0
-rwxr-xr-x[-rw-r--r--]indra/newview/Japanese.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/Korean.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/SecondLife.nib/classes.nib0
-rwxr-xr-x[-rw-r--r--]indra/newview/SecondLife.nib/info.nib0
-rwxr-xr-x[-rw-r--r--]indra/newview/SecondLife.nib/objects.xib0
-rw-r--r--indra/newview/VIEWER_VERSION.txt1
-rwxr-xr-x[-rw-r--r--]indra/newview/VertexCache.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/ViewerInstall.cmake0
-rwxr-xr-x[-rw-r--r--]indra/newview/VorbisFramework.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/CA.pem0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/anim.ini0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/cmd_line.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/commands.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/foldertypes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/grass.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/high_graphics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/ignorable_dialogs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/keys.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/keywords.ini3
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/lindenlab.pem0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/llsd.xsd0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/logcontrol.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/low_graphics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/mid_graphics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings.xml211
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings_crash_behavior.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings_files.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings_minimal.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings_per_account.xml11
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarAlphaNoColorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarEyesV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/cofF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseNoColorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/emissiveV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/giF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/normgenV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/postDeferredNoTCV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/shadowCubeV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/skyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/skyV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/starsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/starsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/treeF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/treeShadowV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/treeV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/waterF.glsl4
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/deferred/waterV.glsl2
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/effects/glowF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/effects/glowV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/terrainF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/terrainV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/waterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/environment/waterV.glsl16
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/alphamaskV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/clipF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/clipV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/customalphaV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/debugF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/debugV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/glowcombineV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/highlightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/highlightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/occlusionCubeV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/occlusionV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/onetexturenocolorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/pathfindingF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/pathfindingNoNormalV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/pathfindingV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/twotextureaddV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/uiF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/interface/uiV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl2
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl2
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/bumpF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/bumpV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/emissiveSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightShinySkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/impostorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/impostorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/indexedTextureF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/nonindexedTextureV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/previewF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/previewV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/shinyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/shinySimpleSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/shinyV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleNoColorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/objects/treeV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/transform/binormalV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/transform/colorV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/transform/normalV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/transform/positionV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class1/windlight/transportF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/skyF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/skyV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class2/windlight/transportF.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/shaders/shader_hierarchy.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/static_data.db2bin576578 -> 576578 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/static_index.db2bin9894 -> 9894 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/std_bump.ini0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/trees.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/ultra_graphics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/viewerart.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/clouds2.tgabin262935 -> 262935 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Colder%20Tones.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Tropicalia.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/days/Weird-O.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/postprocesseffects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D12AM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D12PM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D3AM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D3PM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D6AM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D6PM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D9AM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/A%2D9PM.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Barcelona.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Blizzard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Blue%20Midday.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Fine%20Day.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Foggy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Funky%20Funky.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Gelatto.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Ghost.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midday%201.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midday%202.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midday%203.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midday%204.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midday.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Midnight.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Night.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Pirate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Purple.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Sunrise.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/skies/Sunset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Glassy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Murky.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Pond.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Second%20Plague.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/windlight/water/Valdez.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/build_win32_appConfig.py0
-rwxr-xr-x[-rw-r--r--]indra/newview/character/attentions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/character/attentionsN.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_eye.llmbin16011 -> 16011 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_eye_1.llmbin5591 -> 5591 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_eyelashes.llmbin65637 -> 65637 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair.llmbin690581 -> 690581 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair_1.llmbin5031 -> 5031 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair_2.llmbin3261 -> 3261 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair_3.llmbin1845 -> 1845 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair_4.llmbin927 -> 927 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_hair_5.llmbin927 -> 927 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_head.llmbin1665493 -> 1665493 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_head_1.llmbin7875 -> 7875 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_head_2.llmbin3675 -> 3675 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_head_3.llmbin1797 -> 1797 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_head_4.llmbin1239 -> 1239 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lad.xml28
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lower_body.llmbin337125 -> 337125 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lower_body_1.llmbin7083 -> 7083 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lower_body_2.llmbin4107 -> 4107 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lower_body_3.llmbin2115 -> 2115 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_lower_body_4.llmbin1629 -> 1629 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skeleton.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skirt.llmbin72497 -> 72497 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skirt_1.llmbin1899 -> 1899 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skirt_2.llmbin1551 -> 1551 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skirt_3.llmbin1191 -> 1191 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_skirt_4.llmbin843 -> 843 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_upper_body.llmbin929297 -> 929297 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_upper_body_1.llmbin15627 -> 15627 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_upper_body_2.llmbin8991 -> 8991 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_upper_body_3.llmbin4557 -> 4557 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/avatar_upper_body_4.llmbin3453 -> 3453 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/blush_alpha.tgabin17352 -> 17352 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/body_skingrain.tgabin262188 -> 262188 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bodyfreckles_alpha.tgabin257249 -> 257249 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_face_wrinkles.tgabin25243 -> 25243 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_head_base.tgabin105525 -> 105525 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_lowerbody_base.tgabin112782 -> 112782 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_pants_wrinkles.tgabin83183 -> 83183 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_shirt_wrinkles.tgabin81501 -> 81501 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/bump_upperbody_base.tgabin147581 -> 147581 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/checkerboard.tgabin16428 -> 16428 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/eyebrows_alpha.tgabin9469 -> 9469 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/eyeliner_alpha.tgabin4720 -> 4720 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/eyeshadow_inner_alpha.tgabin5466 -> 5466 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/eyeshadow_outer_alpha.tgabin7382 -> 7382 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/eyewhite.tgabin42353 -> 42353 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/facehair_chincurtains_alpha.tgabin34610 -> 34610 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/facehair_moustache_alpha.tgabin14017 -> 14017 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/facehair_sideburns_alpha.tgabin27328 -> 27328 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/facehair_soulpatch_alpha.tgabin11277 -> 11277 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/freckles_alpha.tgabin140558 -> 140558 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/genepool.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/character/glove_length_alpha.tgabin49745 -> 49745 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/gloves_fingers_alpha.tgabin39616 -> 39616 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_alpha.tgabin6066 -> 6066 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_color.tgabin70715 -> 70715 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_hair.tgabin75600 -> 75600 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_highlights_alpha.tgabin20503 -> 20503 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_shading_alpha.tgabin35304 -> 35304 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/head_skingrain.tgabin262376 -> 262376 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/jacket_length_lower_alpha.tgabin9768 -> 9768 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/jacket_length_upper_alpha.tgabin14617 -> 14617 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/jacket_open_lower_alpha.tgabin19732 -> 19732 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/jacket_open_upper_alpha.tgabin41606 -> 41606 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lipgloss_alpha.tgabin4738 -> 4738 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lips_mask.tgabin6110 -> 6110 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lipstick_alpha.tgabin7966 -> 7966 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lowerbody_color.tgabin135395 -> 135395 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lowerbody_highlights_alpha.tgabin8695 -> 8695 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/lowerbody_shading_alpha.tgabin41766 -> 41766 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/nailpolish_alpha.tgabin4656 -> 4656 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/pants_length_alpha.tgabin26843 -> 26843 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/pants_waist_alpha.tgabin10487 -> 10487 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/rosyface_alpha.tgabin44382 -> 44382 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/rouge_alpha.tgabin44382 -> 44382 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/shirt_bottom_alpha.tgabin32242 -> 32242 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/shirt_collar_alpha.tgabin14417 -> 14417 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/shirt_collar_back_alpha.tgabin12789 -> 12789 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/shirt_sleeve_alpha.tgabin72196 -> 72196 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/shoe_height_alpha.tgabin24461 -> 24461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/skirt_length_alpha.tgabin4114 -> 4114 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/skirt_slit_back_alpha.tgabin90350 -> 90350 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/skirt_slit_front_alpha.tgabin90350 -> 90350 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/skirt_slit_left_alpha.tgabin82006 -> 82006 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/skirt_slit_right_alpha.tgabin91410 -> 91410 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/underpants_trial_female.tgabin48063 -> 48063 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/underpants_trial_male.tgabin144983 -> 144983 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/undershirt_trial_female.tgabin81390 -> 81390 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/upperbody_color.tgabin23348 -> 23348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/upperbody_highlights_alpha.tgabin6509 -> 6509 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/upperbody_shading_alpha.tgabin25297 -> 25297 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/character/upperbodyfreckles_alpha.tgabin180104 -> 180104 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_ARROW.tifbin14336 -> 14336 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_ARROWDRAG.tifbin14368 -> 14368 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_ARROWLOCKED.tifbin14376 -> 14376 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_GRABLOCKED.tifbin14392 -> 14392 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_NO.tifbin14380 -> 14380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_NOLOCKED.tifbin14416 -> 14416 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_PATHFINDING.tifbin504 -> 504 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END.tifbin556 -> 556 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END_ADD.tifbin570 -> 570 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START.tifbin532 -> 532 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START_ADD.tifbin550 -> 550 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_SIZENESW.tifbin14336 -> 14336 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_SIZENS.tifbin14344 -> 14344 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_SIZENWSE.tifbin14340 -> 14340 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_SIZEWE.tifbin14328 -> 14328 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tifbin59044 -> 59044 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLCAMERA.tifbin14356 -> 14356 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLCREATE.tifbin14368 -> 14368 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLFOCUS.tifbin14348 -> 14348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLGRAB.tifbin14364 -> 14364 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLLAND.tifbin14348 -> 14348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLMEDIAOPEN.tifbin41228 -> 41228 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tifbin58560 -> 58560 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLPAN.tifbin14368 -> 14368 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLPAUSE.tifbin41224 -> 41224 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLPICKOBJECT3.tifbin14392 -> 14392 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLPLAY.tifbin41224 -> 41224 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLROTATE.tifbin14380 -> 14380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLSCALE.tifbin14384 -> 14384 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tifbin58464 -> 58464 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLTRANSLATE.tifbin14388 -> 14388 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_TOOLZOOMIN.tifbin14364 -> 14364 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/cursors_mac/UI_CURSOR_WORKING.tifbin14392 -> 14392 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/da.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/es.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable_linux.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable_mac.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable_solaris.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable_xp.txt0
-rw-r--r--indra/newview/fmod_hidden_symbols.exp240
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVu-license.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVuSans-Bold.ttfbin573136 -> 573136 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVuSans-BoldOblique.ttfbin524056 -> 524056 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVuSans-Oblique.ttfbin523804 -> 523804 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVuSans.ttfbin622280 -> 622280 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/fonts/DejaVuSansMono.ttfbin321524 -> 321524 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/fr.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/generate_breakpad_symbols.py0
-rwxr-xr-x[-rw-r--r--]indra/newview/gpu_table.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/groupchatlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/groupchatlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/hu.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife.icnsbin242261 -> 242261 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife.icobin78692 -> 78692 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_128.pngbin18268 -> 18268 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_16.pngbin3536 -> 3536 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_256.BMPbin196662 -> 196662 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_256.pngbin49418 -> 49418 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_32.pngbin4767 -> 4767 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_48.pngbin6438 -> 6438 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/beta/secondlife_512.pngbin151779 -> 151779 bytes
-rw-r--r--indra/newview/icons/development/secondlife.icnsbin233026 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife.icobin77117 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_128.pngbin17499 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_16.pngbin3471 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_256.BMPbin196662 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_256.pngbin47952 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_32.pngbin4649 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_48.pngbin6190 -> 0 bytes
-rw-r--r--indra/newview/icons/development/secondlife_512.pngbin147689 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife.icnsbin235133 -> 235133 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife.icobin77791 -> 77791 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_128.pngbin17706 -> 17706 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_16.pngbin3471 -> 3471 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_256.BMPbin196662 -> 196662 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_256.pngbin48488 -> 48488 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_32.pngbin4675 -> 4675 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_48.pngbin6195 -> 6195 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/project/secondlife_512.pngbin149145 -> 149145 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife.icnsbin228390 -> 228390 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife.icobin77552 -> 77552 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_128.pngbin17198 -> 17198 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_16.pngbin3524 -> 3524 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_256.BMPbin196662 -> 196662 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_256.pngbin47946 -> 47946 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_32.pngbin4746 -> 4746 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_48.pngbin6249 -> 6249 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/release/secondlife_512.pngbin147963 -> 147963 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife.icnsbin232905 -> 232905 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife.icobin76861 -> 76861 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_128.pngbin17156 -> 17156 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_16.pngbin3471 -> 3471 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_256.BMPbin196662 -> 196662 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_256.pngbin47522 -> 47522 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_32.pngbin4644 -> 4644 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_48.pngbin6115 -> 6115 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/icons/test/secondlife_512.pngbin146971 -> 146971 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/dmg-cleanup.applescript0
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/fix_application_icon_position.sh0
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/release-dmg/Applications-alias.r0
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/release-dmg/_DS_Storebin12292 -> 12292 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/release-dmg/_VolumeIcon.icnsbin98049 -> 98049 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/release-dmg/background.jpgbin75112 -> 75112 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/install_icon.BMPbin262198 -> 262198 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/install_icon.icobin367958 -> 367958 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/installer_template.nsi0
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_da.nsibin7108 -> 7108 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_de.nsibin8260 -> 8260 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_en-us.nsibin7542 -> 7542 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_es.nsibin7846 -> 7846 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_fr.nsibin8114 -> 8114 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_it.nsibin7438 -> 7438 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_ja.nsibin6302 -> 6302 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_pl.nsibin7450 -> 7450 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_pt-br.nsibin7832 -> 7832 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_ru.nsibin7598 -> 7598 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_tr.nsibin7722 -> 7722 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/lang_zh.nsibin5824 -> 5824 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/language_menu.nsibin1448 -> 1448 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/uninstall_icon.BMPbin262198 -> 262198 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/uninstall_icon.icobin367958 -> 367958 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/it.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/licenses-linux.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/licenses-mac.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/licenses-solaris.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/licenses-win32.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/linux_tools/client-readme-joystick.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/linux_tools/client-readme-voice.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/linux_tools/client-readme.txt0
-rwxr-xr-xindra/newview/linux_tools/wrapper.sh47
-rwxr-xr-x[-rw-r--r--]indra/newview/llaccountingcostmanager.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llaccountingcostmanager.h0
-rwxr-xr-xindra/newview/llagent.cpp158
-rwxr-xr-x[-rw-r--r--]indra/newview/llagent.h7
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentaccess.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentaccess.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentcamera.cpp62
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentcamera.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentdata.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentdata.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentlanguage.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentlanguage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentpicksinfo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentpicksinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentpilot.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentpilot.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentui.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentui.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentwearables.cpp485
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentwearables.h74
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentwearablesfetch.cpp71
-rwxr-xr-x[-rw-r--r--]indra/newview/llagentwearablesfetch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llanimstatelabels.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llanimstatelabels.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappcorehttp.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappcorehttp.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappearance.h8
-rwxr-xr-x[-rw-r--r--]indra/newview/llappearancemgr.cpp1312
-rwxr-xr-x[-rw-r--r--]indra/newview/llappearancemgr.h41
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewer.cpp475
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewer.h13
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux_api.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux_api.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux_api_dbus.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux_api_dbus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlinux_api_dbus_syms_raw.inc0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewermacosx.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewermacosx.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerwin32.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewerwin32.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llassetuploadqueue.cpp7
-rwxr-xr-x[-rw-r--r--]indra/newview/llassetuploadqueue.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llassetuploadresponders.cpp25
-rwxr-xr-x[-rw-r--r--]indra/newview/llassetuploadresponders.h6
-rwxr-xr-x[-rw-r--r--]indra/newview/llattachmentsmgr.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llattachmentsmgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llaudiosourcevo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llaudiosourcevo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llautoreplace.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llautoreplace.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavataractions.h0
-rwxr-xr-xindra/newview/llavatariconctrl.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatariconctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarlistitem.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarlistitem.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarpropertiesprocessor.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llavatarpropertiesprocessor.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llblockedlistitem.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llblockedlistitem.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llblocklist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llblocklist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbreadcrumbview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbreadcrumbview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbreastmotion.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbreastmotion.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbrowsernotification.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llbuycurrencyhtml.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llbuycurrencyhtml.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcallbacklist.cpp49
-rwxr-xr-x[-rw-r--r--]indra/newview/llcallbacklist.h6
-rwxr-xr-x[-rw-r--r--]indra/newview/llcallingcard.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llcallingcard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcapabilitylistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcapabilitylistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcapabilityprovider.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcaphttpsender.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcaphttpsender.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchannelmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchannelmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatbar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatbar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchathistory.cpp11
-rwxr-xr-x[-rw-r--r--]indra/newview/llchathistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatitemscontainerctrl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatitemscontainerctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatmsgbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchatmsgbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchiclet.cpp13
-rwxr-xr-x[-rw-r--r--]indra/newview/llchiclet.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchicletbar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llchicletbar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llclassifiedinfo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llclassifiedinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llclassifiedstatsresponder.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llclassifiedstatsresponder.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llcofwearables.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llcofwearables.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcolorswatch.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llcolorswatch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommanddispatcherlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommanddispatcherlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommandhandler.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommandlineparser.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommandlineparser.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommunicationchannel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcommunicationchannel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcompilequeue.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/llcompilequeue.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconfirmationmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconfirmationmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationlog.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationlog.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationloglist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationloglist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationloglistitem.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationloglistitem.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llconversationmodel.cpp0
-rwxr-xr-xindra/newview/llconversationview.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llcurrencyuimanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcurrencyuimanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcylinder.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llcylinder.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldateutil.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldateutil.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldaycyclemanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldaycyclemanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldebugmessagebox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldebugmessagebox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldebugview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldebugview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldeferredsounds.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldeferredsounds.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldelayedgestureerror.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldelayedgestureerror.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldirpicker.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lldirpicker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldndbutton.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldndbutton.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldonotdisturbnotificationstorage.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lldonotdisturbnotificationstorage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawable.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawable.h1
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpool.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpool.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolalpha.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolalpha.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolavatar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolavatar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolbump.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolbump.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolground.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolground.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolsimple.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolsimple.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolsky.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolsky.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolterrain.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolterrain.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpooltree.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpooltree.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolwater.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolwater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolwlsky.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lldrawpoolwlsky.h0
-rw-r--r--indra/newview/lldriverparam.cpp638
-rw-r--r--indra/newview/lldriverparam.h139
-rwxr-xr-x[-rw-r--r--]indra/newview/lldynamictexture.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/lldynamictexture.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/llemote.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llemote.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llenvmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llenvmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llestateinfomodel.cpp28
-rwxr-xr-x[-rw-r--r--]indra/newview/llestateinfomodel.h25
-rwxr-xr-x[-rw-r--r--]indra/newview/lleventnotifier.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lleventnotifier.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lleventpoll.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/lleventpoll.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llexpandabletextbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llexpandabletextbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llexternaleditor.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llexternaleditor.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llface.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llface.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llface.inl0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfasttimerview.cpp11
-rwxr-xr-x[-rw-r--r--]indra/newview/llfasttimerview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfavoritesbar.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llfavoritesbar.h5
-rwxr-xr-x[-rw-r--r--]indra/newview/llfeaturemanager.cpp15
-rwxr-xr-x[-rw-r--r--]indra/newview/llfeaturemanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfilepicker.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llfilepicker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfilteredwearablelist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfilteredwearablelist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfirstuse.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfirstuse.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llflexibleobject.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llflexibleobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterabout.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterabout.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterauction.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterauction.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterautoreplacesettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterautoreplacesettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatarpicker.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatarpicker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatartextures.cpp15
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateravatartextures.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbeacons.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbeacons.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuildoptions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuildoptions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbulkpermission.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbulkpermission.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbump.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbump.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuy.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuy.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycontents.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycontents.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycurrency.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycurrency.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycurrencyhtml.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuycurrencyhtml.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuyland.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbuyland.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbvhpreview.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterbvhpreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatercamera.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatercamera.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterchatvoicevolume.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterchatvoicevolume.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatercolorpicker.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatercolorpicker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterconversationlog.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterconversationlog.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterconversationpreview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterconversationpreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdeleteenvpreset.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdeleteenvpreset.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdestinations.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdestinations.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdisplayname.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterdisplayname.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditdaycycle.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditdaycycle.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditsky.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditsky.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditwater.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatereditwater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterenvironmentsettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterenvironmentsettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterevent.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterevent.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterfonttest.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterfonttest.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergesture.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergesture.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergodtools.cpp40
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergodtools.h14
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergroupinvite.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergroupinvite.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergroups.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatergroups.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhandler.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhardwaresettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhardwaresettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhelpbrowser.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhelpbrowser.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhud.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterhud.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimagepreview.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimagepreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimcontainer.cpp82
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimcontainer.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychat.cpp26
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychathandler.cpp21
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychathandler.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychatlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimnearbychatlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimsession.cpp37
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimsession.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimsessiontab.cpp49
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterimsessiontab.h12
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterinspect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterinspect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterjoystick.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterjoystick.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterlagmeter.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterlagmeter.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterland.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterland.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterlandholdings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterlandholdings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermap.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermap.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermediasettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermediasettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermemleak.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermemleak.h0
-rwxr-xr-xindra/newview/llfloatermodelpreview.cpp15
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermodelpreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermodeluploadbase.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatermodeluploadbase.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaternamedesc.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaternamedesc.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaternotificationsconsole.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaternotificationsconsole.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterobjectweights.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterobjectweights.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateropenobject.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateropenobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateroutbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateroutbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingcharacters.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingcharacters.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingconsole.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingconsole.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindinglinksets.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindinglinksets.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingobjects.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpathfindingobjects.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpay.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpay.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterperms.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterperms.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpostprocess.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpostprocess.h0
-rwxr-xr-xindra/newview/llfloaterpreference.cpp22
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterpreference.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterproperties.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterproperties.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterregiondebugconsole.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterregiondebugconsole.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterregioninfo.cpp40
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterregioninfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterreporter.cpp16
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterreporter.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterscriptdebug.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterscriptdebug.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterscriptlimits.cpp16
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterscriptlimits.h8
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersearch.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersearch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersellland.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersellland.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersettingsdebug.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersettingsdebug.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersidepanelcontainer.cpp24
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersidepanelcontainer.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersnapshot.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersnapshot.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersounddevices.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatersounddevices.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterspellchecksettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterspellchecksettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertelehub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertelehub.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertestinspectors.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertestinspectors.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertestlistview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertestlistview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertexturefetchdebugger.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertexturefetchdebugger.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertools.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertools.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertopobjects.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertopobjects.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertos.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertos.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertoybox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertoybox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertranslationsettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatertranslationsettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateruipreview.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloateruipreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterurlentry.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterurlentry.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatervoiceeffect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatervoiceeffect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatervoicevolume.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloatervoicevolume.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwebcontent.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwebcontent.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwebprofile.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwebprofile.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwhitelistentry.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwhitelistentry.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwindowsize.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterwindowsize.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfloaterworldmap.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfolderviewmodelinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfolderviewmodelinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfollowcam.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfollowcam.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llfriendcard.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llfriendcard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgesturelistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgesturelistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgesturemgr.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llgesturemgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgiveinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgiveinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llglsandbox.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupactions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupactions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupiconctrl.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupiconctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgrouplist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgrouplist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupmgr.cpp7
-rwxr-xr-x[-rw-r--r--]indra/newview/llgroupmgr.h0
-rw-r--r--indra/newview/llhasheduniqueid.cpp55
-rw-r--r--indra/newview/llhasheduniqueid.h34
-rwxr-xr-x[-rw-r--r--]indra/newview/llhints.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhints.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhomelocationresponder.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llhomelocationresponder.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectbeam.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectbeam.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectblob.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectblob.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectlookat.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectlookat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectpointat.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffectpointat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffecttrail.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudeffecttrail.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudicon.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudicon.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudnametag.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudnametag.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudobject.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudrender.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudrender.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudtext.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudtext.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llhudview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llimhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llimpanel.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llimpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llimview.cpp249
-rwxr-xr-x[-rw-r--r--]indra/newview/llimview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectavatar.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectavatar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectgroup.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectgroup.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectobject.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectremoteobject.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspectremoteobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspecttoast.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinspecttoast.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryactions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorybridge.cpp221
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorybridge.h9
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryclipboard.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryclipboard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryfilter.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryfilter.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryfunctions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryfunctions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryicon.cpp122
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryicon.h52
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryitemslist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryitemslist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorylistitem.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorylistitem.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorymodel.cpp86
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorymodel.h11
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorymodelbackgroundfetch.cpp44
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorymodelbackgroundfetch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryobserver.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventoryobserver.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorypanel.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llinventorypanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lljoystickbutton.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lljoystickbutton.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllandmarkactions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllandmarkactions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllandmarklist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllandmarklist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllightconstants.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistbrowser.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistbrowser.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistcontextmenu.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistcontextmenu.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllistview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocalbitmaps.cpp110
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocalbitmaps.h7
-rw-r--r--indra/newview/lllocaltextureobject.cpp212
-rw-r--r--indra/newview/lllocaltextureobject.h87
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocationhistory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocationhistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocationinputctrl.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lllocationinputctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllogchat.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllogchat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llloginhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llloginhandler.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lllogininstance.cpp61
-rwxr-xr-x[-rw-r--r--]indra/newview/lllogininstance.h5
-rwxr-xr-x[-rw-r--r--]indra/newview/lllookshistorypanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmachineid.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmachineid.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmainlooprepeater.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmainlooprepeater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmanip.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llmanip.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmaniprotate.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llmaniprotate.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmanipscale.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llmanipscale.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmaniptranslate.cpp17
-rwxr-xr-x[-rw-r--r--]indra/newview/llmaniptranslate.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmarketplacefunctions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmarketplacefunctions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmarketplacenotifications.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmarketplacenotifications.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmediactrl.cpp18
-rwxr-xr-x[-rw-r--r--]indra/newview/llmediactrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmediadataclient.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/llmediadataclient.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmenuoptionpathfindingrebakenavmesh.h0
-rwxr-xr-xindra/newview/llmeshrepository.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llmeshrepository.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmimetypes.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmimetypes.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmorphview.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llmorphview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmoveview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmoveview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmutelist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llmutelist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnamebox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnamebox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnameeditor.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnameeditor.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnamelistctrl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnamelistctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnavigationbar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnavigationbar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnetmap.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llnetmap.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationalerthandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationgrouphandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationhandler.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationhandlerutil.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationhinthandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationofferhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationscripthandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationstorage.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationstorage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llnotificationtiphandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutfitobserver.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutfitobserver.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutfitslist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutfitslist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutputmonitorctrl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lloutputmonitorctrl.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelappearancetab.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelappearancetab.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelavatar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelavatar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelavatartag.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelavatartag.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelblockedlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelblockedlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelclassified.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelclassified.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelcontents.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelcontents.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneleditwearable.cpp99
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneleditwearable.h36
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelface.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelface.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgenerictip.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgenerictip.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroup.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroup.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupgeneral.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupgeneral.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupinvite.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupinvite.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgrouplandmoney.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgrouplandmoney.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupnotices.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgroupnotices.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgrouproles.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelgrouproles.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelhome.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelhome.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelimcontrolpanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelimcontrolpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelland.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelland.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandaudio.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandaudio.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmarkinfo.cpp18
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmarkinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmarks.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmarks.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmedia.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellandmedia.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellogin.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanellogin.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelloginlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelloginlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmaininventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmaininventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmarketplaceinbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmarketplaceinbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmarketplaceinboxinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmarketplaceinboxinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelme.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelme.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingsgeneral.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingsgeneral.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingspermissions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingspermissions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingssecurity.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelmediasettingssecurity.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelnearbymedia.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelnearbymedia.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelobject.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelobjectinventory.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelobjectinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelonlinestatus.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelonlinestatus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneloutfitedit.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneloutfitedit.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneloutfitsinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneloutfitsinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpeople.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpeople.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpeoplemenus.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpeoplemenus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpermissions.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpermissions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpick.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelpick.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaceinfo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaceinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaceprofile.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaceprofile.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaces.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplaces.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplacestab.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelplacestab.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelprimmediacontrols.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelprimmediacontrols.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshot.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshot.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshotinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshotlocal.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshotoptions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshotpostcard.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelsnapshotprofile.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelteleporthistory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelteleporthistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneltiptoast.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneltiptoast.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneltopinfobar.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llpaneltopinfobar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvoicedevicesettings.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvoicedevicesettings.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvoiceeffect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvoiceeffect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvolume.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvolume.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvolumepulldown.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelvolumepulldown.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelwearing.cpp15
-rwxr-xr-x[-rw-r--r--]indra/newview/llpanelwearing.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llparcelselection.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llparcelselection.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llparticipantlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llparticipantlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpatchvertexarray.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpatchvertexarray.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingcharacter.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingcharacter.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingcharacterlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingcharacterlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindinglinkset.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindinglinkset.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindinglinksetlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindinglinksetlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingmanager.cpp59
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmesh.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmesh.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmeshstatus.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmeshstatus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmeshzone.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingnavmeshzone.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingobject.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingobject.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingobjectlist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingobjectlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingpathtool.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpathfindingpathtool.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpersistentnotificationstorage.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llpersistentnotificationstorage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llphysicsmotion.cpp25
-rwxr-xr-x[-rw-r--r--]indra/newview/llphysicsmotion.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llphysicsshapebuilderutil.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llphysicsshapebuilderutil.h0
-rw-r--r--indra/newview/llpipelinelistener.cpp216
-rw-r--r--indra/newview/llpipelinelistener.h (renamed from indra/newview/fmodwrapper.cpp)32
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesfolderview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesfolderview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesinventorybridge.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesinventorybridge.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesinventorypanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llplacesinventorypanel.h0
-rw-r--r--indra/newview/llpolymesh.cpp1295
-rw-r--r--indra/newview/llpolymesh.h451
-rw-r--r--indra/newview/llpolymorph.cpp789
-rw-r--r--indra/newview/llpolymorph.h197
-rwxr-xr-x[-rw-r--r--]indra/newview/llpopupview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpopupview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpostcard.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llpostcard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewanim.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewanim.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewgesture.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewgesture.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewnotecard.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewnotecard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewscript.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewscript.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewsound.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewsound.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewtexture.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llpreviewtexture.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llproductinforequest.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llproductinforequest.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llprogressview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llprogressview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llrecentpeople.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llrecentpeople.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llregioninfomodel.cpp14
-rwxr-xr-x[-rw-r--r--]indra/newview/llregioninfomodel.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llregionposition.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llregionposition.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llremoteparcelrequest.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llremoteparcelrequest.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llresourcedata.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llrootview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsavedsettingsglue.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsavedsettingsglue.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsaveoutfitcombobtn.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llsaveoutfitcombobtn.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsceneview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsceneview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llscreenchannel.cpp3
-rwxr-xr-x[-rw-r--r--]indra/newview/llscreenchannel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llscriptfloater.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llscriptfloater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llscrollingpanelparam.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llscrollingpanelparam.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llscrollingpanelparambase.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llscrollingpanelparambase.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsearchcombobox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsearchcombobox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsearchhistory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsearchhistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsecapi.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsecapi.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsechandler_basic.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llsechandler_basic.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llselectmgr.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llselectmgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llshareavatarhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelappearance.cpp49
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelappearance.h11
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelinventory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelinventory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelinventorysubpanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepanelinventorysubpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepaneliteminfo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepaneliteminfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepaneltaskinfo.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidepaneltaskinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidetraypanelcontainer.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsidetraypanelcontainer.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsimplestat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsky.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsky.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llslurl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llslurl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llspatialpartition.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/llspatialpartition.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llspeakers.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/llspeakers.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llspeakingindicatormanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llspeakingindicatormanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsplitbutton.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsplitbutton.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsprite.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsprite.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsrv.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsrv.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstartup.cpp58
-rwxr-xr-x[-rw-r--r--]indra/newview/llstartup.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstartuplistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstartuplistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstatusbar.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstatusbar.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstylemap.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llstylemap.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsurface.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llsurface.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsurfacepatch.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsurfacepatch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsyswellitem.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsyswellitem.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsyswellwindow.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llsyswellwindow.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltable.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llteleporthistory.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llteleporthistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llteleporthistorystorage.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llteleporthistorystorage.h0
-rw-r--r--indra/newview/lltexglobalcolor.cpp152
-rw-r--r--indra/newview/lltexglobalcolor.h83
-rw-r--r--indra/newview/lltexlayer.cpp2514
-rw-r--r--indra/newview/lltexlayer.h380
-rw-r--r--indra/newview/lltexlayerparams.cpp568
-rw-r--r--indra/newview/lltexlayerparams.h217
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureatlas.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureatlas.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureatlasmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureatlasmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturecache.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturecache.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturectrl.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturectrl.h0
-rwxr-xr-xindra/newview/lltexturefetch.cpp181
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturefetch.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureinfo.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureinfo.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureinfodetails.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureinfodetails.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturestats.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturestats.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturestatsuploader.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltexturestatsuploader.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureview.cpp14
-rwxr-xr-x[-rw-r--r--]indra/newview/lltextureview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoast.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoast.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastalertpanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastalertpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastgroupnotifypanel.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastgroupnotifypanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastimpanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastimpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastnotifypanel.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastnotifypanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastpanel.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastpanel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastscriptquestion.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastscriptquestion.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastscripttextbox.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoastscripttextbox.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltool.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltool.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolbarview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolbarview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolbrush.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolbrush.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolcomp.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolcomp.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltooldraganddrop.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/lltooldraganddrop.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolface.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolface.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolfocus.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolfocus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolgrab.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolgrab.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolgun.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolgun.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolindividual.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolindividual.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolmgr.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolmgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolmorph.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolmorph.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolobjpicker.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolobjpicker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolpie.cpp7
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolpie.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolpipette.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolpipette.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolplacer.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolplacer.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselectland.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselectland.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselectrect.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolselectrect.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolview.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltoolview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltracker.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltracker.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltransientdockablefloater.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltransientdockablefloater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltransientfloatermgr.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lltransientfloatermgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluiconstants.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluilistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluilistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluploaddialog.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluploaddialog.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/lluploadfloaterobservers.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/lluploadfloaterobservers.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llurl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurldispatcher.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurldispatcher.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurldispatcherlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurldispatcherlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurlhistory.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llurlhistory.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurllineeditorctrl.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurllineeditorctrl.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurlwhitelist.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llurlwhitelist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvectorperfoptions.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvectorperfoptions.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llversioninfo.cpp55
-rwxr-xr-x[-rw-r--r--]indra/newview/llversioninfo.h1
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewchildren.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewchildren.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassetstats.cpp39
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassetstats.h6
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassetstorage.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassetstorage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassettype.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerassettype.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerattachmenu.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerattachmenu.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvieweraudio.cpp70
-rwxr-xr-x[-rw-r--r--]indra/newview/llvieweraudio.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercamera.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercamera.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerchat.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerchat.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercontrol.cpp1
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercontrol.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercontrollistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewercontrollistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerdisplay.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerdisplay.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerdisplayname.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerdisplayname.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerfloaterreg.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerfloaterreg.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerfoldertype.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewergenericmessage.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewergenericmessage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewergesture.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewergesture.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhelp.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhelp.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhelputil.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhelputil.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhome.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerhome.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerinventory.cpp107
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerinventory.h87
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjoint.cpp473
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjoint.h108
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjointattachment.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjointattachment.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjointmesh.cpp300
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjointmesh.h99
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjoystick.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerjoystick.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerkeyboard.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerkeyboard.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerlayer.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerlayer.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermedia.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermedia.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermedia_streamingaudio.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermedia_streamingaudio.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermediafocus.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermediafocus.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermediaobserver.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermenu.cpp63
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermenu.h5
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermenufile.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermenufile.h0
-rwxr-xr-xindra/newview/llviewermessage.cpp159
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewermessage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewernetwork.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewernetwork.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobject.cpp55
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobject.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobjectlist.cpp24
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobjectlist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmedia.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmedia.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmediaautoplay.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmediaautoplay.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmgr.cpp8
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparcelmgr.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparceloverlay.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerparceloverlay.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerpartsim.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerpartsim.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerpartsource.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerpartsource.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerprecompiledheaders.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerprecompiledheaders.h2
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerregion.cpp141
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerregion.h73
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewershadermgr.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewershadermgr.h1
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerstats.cpp47
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerstats.h4
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerstatsrecorder.cpp14
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerstatsrecorder.h0
-rwxr-xr-xindra/newview/llviewertexlayer.cpp748
-rw-r--r--indra/newview/llviewertexlayer.h180
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexteditor.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexteditor.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexture.cpp468
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexture.h167
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertextureanim.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertextureanim.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexturelist.cpp110
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewertexturelist.h20
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerthrottle.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerthrottle.h0
-rw-r--r--indra/newview/llviewervisualparam.cpp164
-rw-r--r--indra/newview/llviewervisualparam.h110
-rw-r--r--indra/newview/llviewerwearable.cpp656
-rw-r--r--indra/newview/llviewerwearable.h104
-rwxr-xr-xindra/newview/llviewerwindow.cpp74
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerwindow.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerwindowlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerwindowlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvlcomposition.cpp14
-rwxr-xr-x[-rw-r--r--]indra/newview/llvlcomposition.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvlmanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvlmanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoavatar.cpp3356
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoavatar.h472
-rw-r--r--indra/newview/llvoavatardefines.cpp262
-rw-r--r--indra/newview/llvoavatardefines.h228
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoavatarself.cpp918
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoavatarself.h100
-rwxr-xr-x[-rw-r--r--]indra/newview/llvocache.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvocache.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvograss.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llvograss.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoground.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoground.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicecallhandler.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicechannel.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicechannel.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoiceclient.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoiceclient.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicevisualizer.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicevisualizer.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicevivox.cpp101
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoicevivox.h1
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoinventorylistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoinventorylistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvopartgroup.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvopartgroup.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvosky.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/llvosky.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvosurfacepatch.cpp10
-rwxr-xr-x[-rw-r--r--]indra/newview/llvosurfacepatch.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvotree.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llvotree.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvotreenew.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvovolume.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/llvovolume.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvowater.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvowater.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llvowlsky.cpp16
-rwxr-xr-x[-rw-r--r--]indra/newview/llvowlsky.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwatchdog.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwatchdog.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwaterparammanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwaterparammanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwaterparamset.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llwaterparamset.h0
-rw-r--r--indra/newview/llwearable.cpp1285
-rw-r--r--indra/newview/llwearable.h165
-rwxr-xr-x[-rw-r--r--]indra/newview/llwearableitemslist.cpp12
-rwxr-xr-x[-rw-r--r--]indra/newview/llwearableitemslist.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwearablelist.cpp54
-rwxr-xr-x[-rw-r--r--]indra/newview/llwearablelist.h13
-rw-r--r--indra/newview/llwearabletype.cpp159
-rw-r--r--indra/newview/llwearabletype.h76
-rwxr-xr-x[-rw-r--r--]indra/newview/llweb.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llweb.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwebprofile.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwebprofile.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwebsharing.cpp16
-rwxr-xr-x[-rw-r--r--]indra/newview/llwebsharing.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwind.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwind.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwindebug.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwindebug.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwindowlistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwindowlistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlanimator.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlanimator.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwldaycycle.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwldaycycle.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlhandlers.cpp17
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlhandlers.h5
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlparammanager.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlparammanager.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlparamset.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llwlparamset.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworld.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworld.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmap.cpp7
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmap.h1
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmapmessage.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmapmessage.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmapview.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmapview.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmipmap.cpp16
-rwxr-xr-x[-rw-r--r--]indra/newview/llworldmipmap.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llxmlrpclistener.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llxmlrpclistener.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/llxmlrpctransaction.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/llxmlrpctransaction.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/macmain.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/macutil_Prefix.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/macview.r0
-rwxr-xr-x[-rw-r--r--]indra/newview/macview_Prefix.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/nl.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/noise.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/noise.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/pipeline.cpp74
-rwxr-xr-x[-rw-r--r--]indra/newview/pipeline.h15
-rwxr-xr-x[-rw-r--r--]indra/newview/pl.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/pt.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/arrow.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/arrowcop.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/arrowcopmulti.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/arrowdrag.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/circleandline.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/cross.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/hand.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/ibeam.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llarrow.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llarrowdrag.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llarrowdragmulti.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llarrowlocked.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llgrablocked.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llno.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/llnolocked.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolcamera.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolcreate.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolfocus.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolgrab.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolland.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpan.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpathfinding.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpathfindingpathend.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpathfindingpathendadd.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpathfindingpathstart.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpathfindingpathstartadd.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolpipette.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolrotate.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolscale.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltooltranslate.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolzoomin.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/lltoolzoomout.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/sizenesw.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/sizens.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/sizenwse.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/sizewe.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolbuy.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolmediaopen.BMPbin3128 -> 3128 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolopen.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolpause.BMPbin3128 -> 3128 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolpickobject.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolpickobject2.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolpickobject3.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolplay.BMPbin3128 -> 3128 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/toolsit.BMPbin3126 -> 3126 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/wait.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res-sdl/working.BMPbin2102 -> 2102 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/arrow.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/arrowcop.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/arrowcopmulti.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/arrowdrag.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/bitmap2.bmpbin25118 -> 25118 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/circleandline.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/have_artwork_bundle.marker0
-rwxr-xr-x[-rw-r--r--]indra/newview/res/icon1.icobin766 -> 766 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/install_icon.BMPbin262198 -> 262198 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llarrow.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llarrowdrag.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llarrowdragmulti.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llarrowlocked.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llgrablocked.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llno.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/llnolocked.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolcamera.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolcreate.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolfocus.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolgrab.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolland.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpan.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpathfinding.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpathfindingpathend.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpathfindingpathendadd.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpathfindingpathstart.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpathfindingpathstartadd.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolpipette.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolrotate.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolscale.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltooltranslate.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolzoomin.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/lltoolzoomout.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/loginbackground.bmpbin336054 -> 336054 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/resource.h0
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolbuy.curbin4286 -> 4286 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolmediaopen.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolopen.curbin4286 -> 4286 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolpause.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolpickobject.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolpickobject2.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolpickobject3.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolpipette.curbin326 -> 326 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolplay.curbin2238 -> 2238 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/toolsit.curbin4286 -> 4286 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/uninstall_icon.BMPbin262198 -> 262198 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/res/viewerRes.rc10
-rwxr-xr-x[-rw-r--r--]indra/newview/ru.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/secondlife-i686.supp0
-rwxr-xr-x[-rw-r--r--]indra/newview/secondlife.icnsbin180809 -> 180809 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/secondlife_firstlook.icnsbin274109 -> 274109 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/colors.xml13
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/btn_purplepill_bg.pngbin3564 -> 3564 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/da/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/de/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/de/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/en-us/help-offline/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/en-us/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/en-us/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gifbin7426 -> 7426 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/es/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/es/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/fr/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/fr/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/hu/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/it/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/ja/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/ja/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/ko/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/nl/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/pl/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/pt/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/pt/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/ru/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/tr/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/uk/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/unabletoconnect.pngbin15849 -> 15849 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/zh/loading-error/index.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/html/zh/loading/loading.html0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/Blank.pngbin110 -> 110 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/Rounded_Rect.pngbin338 -> 338 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/alpha_gradient.tgabin300 -> 300 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/alpha_gradient_2d.j2cbin4325 -> 4325 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/arrow_down.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/arrow_up.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/avatar_thumb_bkgrnd.pngbin17692 -> 17692 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/badge_note.j2cbin2040 -> 2040 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/badge_ok.j2cbin2043 -> 2043 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/badge_warn.j2cbin2043 -> 2043 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Avatar_Off.pngbin527 -> 527 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_FreeCam_Off.pngbin365 -> 365 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Orbit_Off.pngbin532 -> 532 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Pan_Off.pngbin328 -> 328 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_Off.pngbin49285 -> 49285 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_On.pngbin50855 -> 50855 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Eye_Off.pngbin914 -> 914 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_Off.pngbin50394 -> 50394 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_On.pngbin50127 -> 50127 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_Off.pngbin49268 -> 49268 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_On.pngbin50209 -> 50209 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.pngbin407 -> 407 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Out.pngbin3271 -> 3271 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.pngbin328 -> 328 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Out.pngbin787 -> 787 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/ChatBarHandle.pngbin2808 -> 2808 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/DownArrow.pngbin139 -> 139 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Mouselook_View_Off.pngbin51189 -> 51189 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Mouselook_View_On.pngbin53113 -> 53113 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.pngbin3347 -> 3347 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Move_Run_Off.pngbin496 -> 496 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Move_Walk_Off.pngbin515 -> 515 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Backward_Off.pngbin354 -> 354 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.pngbin353 -> 353 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Down_Off.pngbin51706 -> 51706 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Down_On.pngbin50907 -> 50907 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Forward_Off.pngbin322 -> 322 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.pngbin321 -> 321 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Left_Off.pngbin51016 -> 51016 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Left_On.pngbin51806 -> 51806 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Right_Off.pngbin49845 -> 49845 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Right_On.pngbin50161 -> 50161 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_Off.pngbin431 -> 431 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.pngbin430 -> 430 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_Off.pngbin432 -> 432 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.pngbin427 -> 427 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Up_Off.pngbin53763 -> 53763 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Movement_Up_On.pngbin51965 -> 51965 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Notices_Unread.pngbin3693 -> 3693 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Object_View_Off.pngbin55000 -> 55000 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Object_View_On.pngbin51183 -> 51183 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/PanOrbit_Off.pngbin51539 -> 51539 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Snapshot_Off.pngbin3204 -> 3204 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/Unread_Chiclet.pngbin334 -> 334 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.pngbin557 -> 557 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.pngbin663 -> 663 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3.pngbin607 -> 607 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/VoicePTT_Off.pngbin461 -> 461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/VoicePTT_On.pngbin451 -> 451 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/WellButton_Lit.pngbin309 -> 309 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.pngbin309 -> 309 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cone.pngbin481 -> 481 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cone_Selected.pngbin576 -> 576 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cube.pngbin370 -> 370 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cube_Selected.pngbin477 -> 477 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cylinder.pngbin373 -> 373 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Cylinder_Selected.pngbin443 -> 443 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Grass.pngbin456 -> 456 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Grass_Selected.pngbin757 -> 757 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Cone.pngbin441 -> 441 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.pngbin531 -> 531 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.pngbin378 -> 378 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.pngbin463 -> 463 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Sphere.pngbin545 -> 545 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.pngbin696 -> 696 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Prism.pngbin395 -> 395 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Prism_Selected.pngbin485 -> 485 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Pyramid.pngbin452 -> 452 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Pyramid_Selected.pngbin594 -> 594 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Ring.pngbin615 -> 615 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Ring_Selected.pngbin738 -> 738 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Sphere.pngbin737 -> 737 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Sphere_Selected.pngbin1003 -> 1003 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tetrahedron.pngbin411 -> 411 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.pngbin558 -> 558 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Torus.pngbin803 -> 803 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Torus_Selected.pngbin825 -> 825 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tree.pngbin737 -> 737 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tree_Selected.pngbin839 -> 839 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tube.pngbin460 -> 460 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Object_Tube_Selected.pngbin552 -> 552 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Tool_Create.pngbin705 -> 705 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Tool_Dozer.pngbin492 -> 492 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Tool_Face.pngbin304 -> 304 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Tool_Grab.pngbin417 -> 417 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/build/Tool_Zoom.pngbin533 -> 533 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/button_anim_pause.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/button_anim_pause_selected.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/button_anim_play.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/button_anim_play_selected.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/checker.pngbin130 -> 130 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/cloud-particle.j2cbin4049 -> 4049 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/color_swatch_alpha.tgabin16428 -> 16428 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.pngbin175 -> 175 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.pngbin175 -> 175 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Off.pngbin169 -> 169 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.pngbin169 -> 169 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_Off.pngbin239 -> 239 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_Over.pngbin206 -> 206 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_Press.pngbin200 -> 200 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Accordion_Selected.pngbin228 -> 228 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Container.pngbin673 -> 673 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Left_Off.pngbin339 -> 339 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Left_Selected.pngbin458 -> 458 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Middle_Off.pngbin258 -> 258 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.pngbin367 -> 367 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Right_Off.pngbin357 -> 357 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/TabTop_Right_Selected.pngbin474 -> 474 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Left_Flash.pngbin356 -> 356 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Left_Off.pngbin306 -> 306 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Left_Over.pngbin310 -> 310 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.pngbin380 -> 380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Middle_Flash.pngbin316 -> 316 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.pngbin224 -> 224 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.pngbin228 -> 228 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.pngbin296 -> 296 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Right_Flash.pngbin428 -> 428 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Right_Off.pngbin302 -> 302 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Right_Over.pngbin297 -> 297 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.pngbin377 -> 377 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/crosshairs.tgabin300 -> 300 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/default_land_picture.j2cbin24492 -> 24492 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/default_profile_picture.j2cbin1512 -> 1512 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/direction_arrow.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/down_arrow.pngbin2936 -> 2936 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/eye_button_active.tgabin3116 -> 3116 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/eye_button_inactive.tgabin3116 -> 3116 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/folder_arrow.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/foot_shadow.j2cbin1647 -> 1647 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/green_checkmark.pngbin414 -> 414 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icn_media_movie.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icn_media_web.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icon_avatar_offline.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icon_avatar_online.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icon_diurnal.tgabin6162 -> 6162 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icon_for_sale_adult.tgabin743 -> 743 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icon_top_pick.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/AddItem_Disabled.pngbin186 -> 186 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/AddItem_Off.pngbin184 -> 184 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/AddItem_Press.pngbin181 -> 181 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/AudioMute_Off.pngbin600 -> 600 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/AudioMute_Over.pngbin587 -> 587 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Audio_Off.pngbin467 -> 467 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Audio_Press.pngbin477 -> 477 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/BackArrow_Off.pngbin227 -> 227 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Conv_log_inbox.pngbin556 -> 556 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Copy.pngbin481 -> 481 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/DownArrow_Off.pngbin217 -> 217 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Edit_Wrench.pngbin3000 -> 3000 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/ExternalBrowser_Off.pngbin279 -> 279 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Female.pngbin309 -> 309 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/ForSale_Badge.pngbin5727 -> 5727 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/ForwardArrow_Off.pngbin220 -> 220 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/ForwardArrow_Press.pngbin220 -> 220 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Generic_Group.pngbin1523 -> 1523 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Generic_Group_Large.pngbin7507 -> 7507 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Generic_Object_Small.pngbin410 -> 410 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Generic_Person.pngbin3280 -> 3280 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Generic_Person_Large.pngbin51508 -> 51508 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Hierarchy_View_Disabled.pngbin178 -> 178 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Hierarchy_View_On.pngbin2839 -> 2839 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Icon_For_Sale.pngbin572 -> 572 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Info.pngbin351 -> 351 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Info_Over.pngbin376 -> 376 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Info_Small.pngbin371 -> 371 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Alpha.pngbin319 -> 319 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Animation.pngbin496 -> 496 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_BodyShape.pngbin641 -> 641 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_CallingCard.pngbin295 -> 295 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Clothing.pngbin253 -> 253 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Eye.pngbin491 -> 491 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_FolderClosed.pngbin219 -> 219 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_FolderOpen.pngbin361 -> 361 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Gesture.pngbin408 -> 408 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Gloves.pngbin366 -> 366 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Hair.pngbin377 -> 377 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Invalid.pngbin329 -> 329 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Jacket.pngbin591 -> 591 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Landmark.pngbin582 -> 582 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Link.pngbin2857 -> 2857 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LinkFolder.pngbin296 -> 296 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LinkItem.pngbin296 -> 296 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LookFolderClosed.pngbin391 -> 391 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LookFolderOpen.pngbin538 -> 538 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LostClosed.pngbin3033 -> 3033 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_LostOpen.pngbin3223 -> 3223 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Mesh.pngbin3263 -> 3263 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Notecard.pngbin222 -> 222 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Object.pngbin333 -> 333 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Object_Multi.pngbin774 -> 774 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Pants.pngbin377 -> 377 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Physics.pngbin539 -> 539 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Script.pngbin469 -> 469 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Shirt.pngbin402 -> 402 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Shoe.pngbin54133 -> 54133 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Skin.pngbin393 -> 393 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Skirt.pngbin494 -> 494 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Snapshot.pngbin535 -> 535 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Socks.pngbin358 -> 358 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Sound.pngbin404 -> 404 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_SysClosed.pngbin3153 -> 3153 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_SysOpen.pngbin3251 -> 3251 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Tattoo.pngbin416 -> 416 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Texture.pngbin157 -> 157 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_TrashClosed.pngbin2978 -> 2978 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_TrashOpen.pngbin2970 -> 2970 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Underpants.pngbin418 -> 418 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Inv_Undershirt.pngbin208 -> 208 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/List_View_Disabled.pngbin158 -> 158 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/List_View_On.pngbin160 -> 160 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Lock.pngbin343 -> 343 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Locked_Icon.pngbin306 -> 306 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Male.pngbin302 -> 302 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Microphone_On.pngbin340 -> 340 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/MinusItem_Disabled.pngbin173 -> 173 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/MinusItem_Off.pngbin178 -> 178 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/MinusItem_Press.pngbin172 -> 172 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OptionsMenu_Disabled.pngbin343 -> 343 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OptionsMenu_Off.pngbin336 -> 336 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OptionsMenu_Press.pngbin318 -> 318 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Disabled.pngbin1848 -> 1848 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Off.pngbin1835 -> 1835 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_On.pngbin1851 -> 1851 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_On_Over.pngbin1863 -> 1863 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Over.pngbin1826 -> 1826 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Press.pngbin1891 -> 1891 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_1.pngbin1848 -> 1848 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_2.pngbin1807 -> 1807 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_3.pngbin1819 -> 1819 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_4.pngbin1894 -> 1894 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_5.pngbin1921 -> 1921 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Progress_6.pngbin1853 -> 1853 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Selected.pngbin1894 -> 1894 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Selected_Disabled.pngbin1840 -> 1840 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Selected_Over.pngbin1870 -> 1870 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/OutboxPush_Selected_Press.pngbin1912 -> 1912 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.pngbin516 -> 516 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.pngbin505 -> 505 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Build_Dark.pngbin343 -> 343 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.pngbin457 -> 457 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.pngbin325 -> 325 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Exp_Color.pngbin272 -> 272 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.pngbin3221 -> 3221 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.pngbin3235 -> 3235 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.pngbin3077 -> 3077 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.pngbin561 -> 561 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Health_Dark.pngbin285 -> 285 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_M_Dark.pngbin348 -> 348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_M_Light.pngbin335 -> 335 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_PG_Dark.pngbin400 -> 400 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_PG_Light.pngbin403 -> 403 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.pngbin523 -> 523 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.pngbin516 -> 516 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Push_Dark.pngbin430 -> 430 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_R_Dark.pngbin357 -> 357 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_R_Light.pngbin355 -> 355 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.pngbin620 -> 620 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.pngbin471 -> 471 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.pngbin3194 -> 3194 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.pngbin3189 -> 3189 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.pngbin3011 -> 3011 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.pngbin3011 -> 3011 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.pngbin492 -> 492 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.pngbin516 -> 516 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.pngbin380 -> 380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Parcel_Voice_Light.pngbin405 -> 405 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Pathfinding_Dirty.pngbin553 -> 553 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Pathfinding_Disabled.pngbin384 -> 384 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Pause_Off.pngbin163 -> 163 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Pause_Over.pngbin160 -> 160 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Pause_Press.pngbin156 -> 156 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Person_Check.pngbin3824 -> 3824 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Person_Star.pngbin3762 -> 3762 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Play_Off.pngbin293 -> 293 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Play_Over.pngbin258 -> 258 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Play_Press.pngbin287 -> 287 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_1.pngbin470 -> 470 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_10.pngbin461 -> 461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_11.pngbin475 -> 475 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_12.pngbin455 -> 455 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_2.pngbin453 -> 453 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_3.pngbin454 -> 454 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_4.pngbin454 -> 454 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_5.pngbin468 -> 468 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_6.pngbin462 -> 462 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_7.pngbin469 -> 469 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_8.pngbin454 -> 454 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Progress_9.pngbin469 -> 469 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Refresh_Off.pngbin483 -> 483 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/SL_Logo.pngbin3999 -> 3999 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Search_Icon.pngbin552 -> 552 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Shirt_Large.pngbin471 -> 471 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Shop.pngbin3052 -> 3052 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/SkipBackward_Off.pngbin293 -> 293 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/SkipForward_Off.pngbin304 -> 304 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/StopReload_Off.pngbin533 -> 533 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/StopReload_Over.pngbin529 -> 529 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Stop_Off.pngbin148 -> 148 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Disabled.pngbin1187 -> 1187 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Enabled.pngbin1168 -> 1168 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_1.pngbin1149 -> 1149 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_2.pngbin1147 -> 1147 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_3.pngbin1211 -> 1211 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_4.pngbin1205 -> 1205 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_5.pngbin1137 -> 1137 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Sync_Progress_6.pngbin1164 -> 1164 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/TrashItem_Disabled.pngbin196 -> 196 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/TrashItem_Off.pngbin201 -> 201 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/TrashItem_Press.pngbin201 -> 201 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/UnZoom_Off.pngbin423 -> 423 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/UpArrow_Off.pngbin219 -> 219 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/VoicePTT_Lvl1.pngbin557 -> 557 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/VoicePTT_Lvl2.pngbin663 -> 663 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/VoicePTT_Lvl3.pngbin607 -> 607 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/VoicePTT_Off.pngbin461 -> 461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/VoicePTT_On.pngbin451 -> 451 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Web_Profile_Off.pngbin2961 -> 2961 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/YouAreHere_Badge.pngbin6143 -> 6143 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/Zoom_Off.pngbin435 -> 435 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/avaline_default_icon.jpgbin3951 -> 3951 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/back_arrow_off.pngbin3775 -> 3775 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/back_arrow_over.pngbin3792 -> 3792 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/back_arrow_press.pngbin3844 -> 3844 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/check_mark.pngbin3166 -> 3166 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/collapse_to_one_line.pngbin538 -> 538 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/edit_mine.pngbin639 -> 639 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/edit_theirs.pngbin634 -> 634 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/expand_one_liner.pngbin545 -> 545 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/nearby_chat_icon.pngbin399 -> 399 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/object_icon.pngbin410 -> 410 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/pop_up_caution.pngbin3158 -> 3158 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/see_me_online.pngbin330 -> 330 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/see_on_map.pngbin613 -> 613 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/icons/unknown_icon.pngbin884 -> 884 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/jump_left_in.tgabin812 -> 812 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/jump_left_out.tgabin812 -> 812 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/jump_right_in.tgabin812 -> 812 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/jump_right_out.tgabin812 -> 812 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/lag_status_critical.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/lag_status_good.tgabin658 -> 658 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/lag_status_warning.tgabin658 -> 658 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/legend.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/locked_image.j2cbin6140 -> 6140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_16.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_32.tgabin2894 -> 2894 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_8.tgabin300 -> 300 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_above_32.tgabin2909 -> 2909 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_below_32.tgabin3037 -> 3037 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_unknown_32.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_avatar_you_32.tgabin3395 -> 3395 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_event.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_home.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_infohub.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_telehub.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/map_track_16.tgabin1068 -> 1068 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/menu_separator.pngbin2831 -> 2831 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/missing_asset.tgabin2511 -> 2511 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/model_wizard/progress_bar_bg.pngbin3180 -> 3180 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/model_wizard/progress_light.pngbin2979 -> 2979 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Arrow_Left_Off.pngbin382 -> 382 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Arrow_Right_Off.pngbin380 -> 380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/BuyArrow_Over.pngbin294 -> 294 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/BuyArrow_Press.pngbin294 -> 294 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Favorite_Link_Over.pngbin191 -> 191 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Favorite_Star_Active.pngbin704 -> 704 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Favorite_Star_Off.pngbin444 -> 444 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Favorite_Star_Over.pngbin445 -> 445 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Favorite_Star_Press.pngbin616 -> 616 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/FileMenu_Divider.pngbin116 -> 116 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Flag.pngbin338 -> 338 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Help_Press.pngbin384 -> 384 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Home_Off.pngbin379 -> 379 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Info_Off.pngbin608 -> 608 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Info_Over.pngbin622 -> 622 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Info_Press.pngbin605 -> 605 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Lock.pngbin302 -> 302 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/NavBar_BG.pngbin195 -> 195 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.pngbin231 -> 231 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.pngbin218 -> 218 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Row_Selection.pngbin231 -> 231 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/Search.pngbin3182 -> 3182 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/navbar/separator.pngbin2826 -> 2826 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/notify_caution_icon.tgabin4140 -> 4140 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/pixiesmall.j2cbin2845 -> 2845 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/red_x.pngbin624 -> 624 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/rounded_square.j2cbin1074 -> 1074 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/script_error.j2cbin8132 -> 8132 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/silhouette.j2cbin1460 -> 1460 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/slim_icon_16_viewer.tgabin1032 -> 1032 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/snapshot_download.pngbin1226 -> 1226 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/snapshot_email.pngbin1231 -> 1231 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/spacer24.tgabin2348 -> 2348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/tabarea.tgabin1340 -> 1340 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.pngbin435 -> 435 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.pngbin2899 -> 2899 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.pngbin2886 -> 2886 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.pngbin2896 -> 2896 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.pngbin2920 -> 2920 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Close_Off.pngbin305 -> 305 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Selected.pngbin790 -> 790 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.pngbin297 -> 297 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Open_Off.pngbin294 -> 294 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.pngbin367 -> 367 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.pngbin405 -> 405 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Off.pngbin223 -> 223 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.pngbin272 -> 272 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.pngbin325 -> 325 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/tearoff_pressed.tgabin513 -> 513 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/tearoffbox.tgabin408 -> 408 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/textures.xml3
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/appearance.pngbin1205 -> 1205 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/avatars.pngbin1432 -> 1432 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/build.pngbin1246 -> 1246 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/caret_bottom.pngbin195 -> 195 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/caret_left.pngbin948 -> 948 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/caret_right.pngbin949 -> 949 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/chat.pngbin1277 -> 1277 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/destinations.pngbin1297 -> 1297 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/gestures.pngbin1675 -> 1675 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/howto.pngbin1306 -> 1306 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/inventory.pngbin1114 -> 1114 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/land.pngbin1123 -> 1123 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/map.pngbin1206 -> 1206 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/marketplace.pngbin1311 -> 1311 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/mini_cart.pngbin2987 -> 2987 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/mini_map.pngbin1766 -> 1766 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/move.pngbin1328 -> 1328 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/nearbyvoice.pngbin1479 -> 1479 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/outbox.pngbin1521 -> 1521 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/people.pngbin1313 -> 1313 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/picks.pngbin1396 -> 1396 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/places.pngbin1391 -> 1391 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/preferences.pngbin1587 -> 1587 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/profile.pngbin1180 -> 1180 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/search.pngbin1406 -> 1406 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/snapshot.pngbin1142 -> 1142 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/speak.pngbin1253 -> 1253 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/toolbar_icons/view.pngbin1487 -> 1487 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/transparent.j2cbin172 -> 172 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/up_arrow.pngbin2930 -> 2930 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/uv_test1.j2cbin1206 -> 1206 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/uv_test2.tgabin1308 -> 1308 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/voice_meter_dot.j2cbin499 -> 499 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/voice_meter_rings.j2cbin2518 -> 2518 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/white.tgabin178 -> 178 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Down.pngbin3066 -> 3066 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Left.pngbin311 -> 311 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Right.pngbin313 -> 313 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Small_Left.pngbin223 -> 223 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Small_Right.pngbin217 -> 217 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Small_Up.pngbin382 -> 382 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Arrow_Up.pngbin363 -> 363 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Badge_Background.pngbin1352 -> 1352 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Badge_Border.pngbin1565 -> 1565 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.pngbin3576 -> 3576 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.pngbin4309 -> 4309 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.pngbin4272 -> 4272 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.pngbin4278 -> 4278 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.pngbin3425 -> 3425 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.pngbin4151 -> 4151 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.pngbin4137 -> 4137 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.pngbin4200 -> 4200 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.pngbin3169 -> 3169 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.pngbin3845 -> 3845 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.pngbin3867 -> 3867 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.pngbin3915 -> 3915 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_Disabled.pngbin306 -> 306 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_Off.pngbin322 -> 322 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_On.pngbin577 -> 577 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.pngbin558 -> 558 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_On_Press.pngbin612 -> 612 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Checkbox_Press.pngbin373 -> 373 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_Disabled.pngbin450 -> 450 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_Off.pngbin470 -> 470 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_On.pngbin486 -> 486 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_Selected.pngbin539 -> 539 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_UpOff.pngbin466 -> 466 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.pngbin536 -> 536 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Off.pngbin173 -> 173 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DropDown_Disabled.pngbin600 -> 600 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DropDown_Off.pngbin603 -> 603 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DropDown_On.pngbin638 -> 638 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DropDown_Press.pngbin679 -> 679 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/DropTarget.pngbin479 -> 479 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Error_Tag_Background.pngbin1354 -> 1354 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Linden_Dollar_Alert.pngbin66186 -> 66186 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Linden_Dollar_Background.pngbin56298 -> 56298 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ListItem_Over.pngbin244 -> 244 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ListItem_Select.pngbin251 -> 251 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.pngbin1067 -> 1067 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.pngbin1086 -> 1086 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/New_Tag_Background.pngbin957 -> 957 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/New_Tag_Border.pngbin969 -> 969 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ProgressBar.pngbin316 -> 316 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ProgressTrack.pngbin192 -> 192 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Disabled.pngbin461 -> 461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Off.pngbin464 -> 464 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_On.pngbin490 -> 490 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_On_Selected.pngbin572 -> 572 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Over.pngbin457 -> 457 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Press.pngbin520 -> 520 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Selected.pngbin520 -> 520 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.pngbin490 -> 490 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.pngbin572 -> 572 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_Disabled.pngbin541 -> 541 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_Off.pngbin563 -> 563 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_On.pngbin627 -> 627 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.pngbin605 -> 605 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_On_Press.pngbin641 -> 641 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/RadioButton_Press.pngbin589 -> 589 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Down.pngbin239 -> 239 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.pngbin355 -> 355 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.pngbin315 -> 315 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Left.pngbin271 -> 271 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.pngbin311 -> 311 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.pngbin330 -> 330 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Right.pngbin260 -> 260 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.pngbin311 -> 311 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.pngbin324 -> 324 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Up.pngbin262 -> 262 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.pngbin352 -> 352 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.pngbin329 -> 329 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.pngbin364 -> 364 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.pngbin323 -> 323 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.pngbin153 -> 153 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.pngbin150 -> 150 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.pngbin378 -> 378 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.pngbin386 -> 386 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.pngbin384 -> 384 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.pngbin455 -> 455 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.pngbin455 -> 455 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.pngbin404 -> 404 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.pngbin394 -> 394 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.pngbin495 -> 495 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.pngbin277 -> 277 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.pngbin359 -> 359 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.pngbin308 -> 308 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.pngbin393 -> 393 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.pngbin380 -> 380 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.pngbin391 -> 391 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.pngbin502 -> 502 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.pngbin398 -> 398 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.pngbin459 -> 459 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.pngbin459 -> 459 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.pngbin420 -> 420 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.pngbin502 -> 502 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.pngbin475 -> 475 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SliderThumb_Off.pngbin475 -> 475 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SliderThumb_Press.pngbin470 -> 470 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.pngbin225 -> 225 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/SliderTrack_Vert.pngbin232 -> 232 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Stepper_Down_Off.pngbin300 -> 300 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Stepper_Down_Press.pngbin343 -> 343 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Stepper_Up_Off.pngbin315 -> 315 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Stepper_Up_Press.pngbin384 -> 384 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Active.pngbin225 -> 225 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Disabled.pngbin225 -> 225 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Off.pngbin224 -> 224 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Search_Active.pngbin923 -> 923 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.pngbin943 -> 943 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/TextField_Search_Off.pngbin958 -> 958 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/Tooltip.pngbin2910 -> 2910 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/bevel_background.pngbin365 -> 365 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/buy_off.pngbin399 -> 399 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/buy_over.pngbin415 -> 415 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/buy_press.pngbin461 -> 461 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/jump_left_in.pngbin342 -> 342 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/jump_left_out.pngbin321 -> 321 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/jump_right_in.pngbin320 -> 320 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/widgets/jump_right_out.pngbin315 -> 315 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Dragbar.pngbin348 -> 348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Flyout_Left.pngbin271 -> 271 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Flyout_Pointer.pngbin236 -> 236 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Flyout_Right.pngbin280 -> 280 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Close_Foreground.pngbin2871 -> 2871 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Close_Press.pngbin263 -> 263 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Close_Toast.pngbin460 -> 460 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.pngbin263 -> 263 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Dock_Press.pngbin263 -> 263 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Gear_Background.pngbin370 -> 370 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.pngbin371 -> 371 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Gear_Press.pngbin365 -> 365 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Help_Foreground.pngbin3084 -> 3084 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Help_Press.pngbin3062 -> 3062 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.pngbin2839 -> 2839 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Minimize_Press.pngbin2839 -> 2839 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.pngbin2955 -> 2955 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Restore_Press.pngbin2971 -> 2971 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.pngbin268 -> 268 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Inspector_Background.pngbin348 -> 348 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Inspector_Hover.pngbin414 -> 414 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Inspector_I.pngbin548 -> 548 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Resize_Corner.pngbin137 -> 137 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Toast_Background.pngbin349 -> 349 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Toast_CloseBtn.pngbin471 -> 471 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Toast_Over.pngbin400 -> 400 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Volume_Background.pngbin589 -> 589 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Wearables_Divider.pngbin97 -> 97 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Window_Background.pngbin509 -> 509 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Window_Foreground.pngbin508 -> 508 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Window_NoTitle_Background.pngbin289 -> 289 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/Window_NoTitle_Foreground.pngbin290 -> 290 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_arrow_down.pngbin3170 -> 3170 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_arrow_left.pngbin3059 -> 3059 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_arrow_lower_left.pngbin3081 -> 3081 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_arrow_right.pngbin3112 -> 3112 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_arrow_up.pngbin3219 -> 3219 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/hint_background.pngbin4316 -> 4316 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/startup_logo.pngbin2457 -> 2457 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/windows/yellow_gradient.pngbin3634 -> 3634 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/world/BeaconArrow.pngbin994 -> 994 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/world/CameraDragDot.pngbin3101 -> 3101 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/world/NoEntryLines.pngbin3523 -> 3523 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/textures/world/NoEntryPassLines.pngbin1267 -> 1267 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_animation_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_color_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_im_container.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_im_session.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_incoming_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_texture_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_url_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_bottomtray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_cof_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_hide_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_object_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_outfit_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_participant_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_groups.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_nearby.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_nearby_multiselect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_agent.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_objectim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_viewer.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/notifications.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_avatar_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_block_list_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_bottomtray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_cof_wearables.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_region_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_side_tray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/sidepanel_task_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/da/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/de/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/de/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/de/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/de/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/de/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/de/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/de/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/notifications.xml690
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/de/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_notifications_channel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_sidetray_home_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_sys_well_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/strings.xml68
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/de/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/accordion_drag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/accordion_parent.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/alert_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/alert_check_box.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/alert_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/alert_line_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/favorites_bar_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_aaa.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_color_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_conversation_log.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_conversation_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_im_container.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_im_session.xml461
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_incoming_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_my_web_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_side_bar_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_checkbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_combobox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_inspectors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_layout.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_line_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_list_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_radiogroup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_slider.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_spinner.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_toolbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_test_widgets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_texture_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_ui_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_url_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_voice_volume.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_web_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/fonts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspect_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/inspector_info_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/main_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_attachment_other.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_attachment_self.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_avatar_other.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_avatar_self.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_cof_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_conversation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_conversation_log_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_conversation_log_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_hide_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_im_conversation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_im_session_showmodes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_login.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_object_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_outfit_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_participant_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_participant_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_blocked_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_blocked_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_blocked_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_friends_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_groups.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_groups_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_nearby.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_nearby_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_people_recent_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_agent.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_objectim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_viewer.xml11
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/notification_visibility.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/notifications.xml92
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_avatar_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_blocked_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_chat_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_chat_separator.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_cof_wearables.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_conversation_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_conversation_log_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_generic_tip.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_hint.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_hint_image.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_inbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_notifications_channel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_pick_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_setup.xml12
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_progress.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_sys_well_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_toolbar_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_topinfo_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/sidepanel_task_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/strings.xml9
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/accordion.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/badge.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/chat_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/chat_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/check_box.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/chiclet_script.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/color_swatch.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/combo_box.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/context_menu.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/conversation_view_session.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/drop_down.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/expandable_text.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/filter_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/flat_list_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/floater.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/flyout_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/folder_view_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/group_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/hint_popup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inspector.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/inventory_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/layout_stack.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/line_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/list_view.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/loading_indicator.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/location_input.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_item_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_item_check.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/multi_slider.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/name_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/name_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/output_monitor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/panel_camera_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/progress_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/radio_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/radio_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/scroll_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/scroll_column_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/scroll_container.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/scroll_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/scrolling_panel_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/search_combo_box.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/search_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/side_tray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/sidetray_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/slider.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/slider_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/spinner.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/split_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/tab_container.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/talk_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/text.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/textbase.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/texture_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/time.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/toggleable_menu.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/tool_tip.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/toolbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/view_border.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/web_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/widgets/window_shade.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/es/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/es/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/es/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/es/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/es/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/es/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/es/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/es/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/es/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/es/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_viewer.xml35
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/notifications.xml692
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/es/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_general.xml5
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/strings.xml63
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/es/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/fonts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/fr/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/notifications.xml690
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/fr/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_notifications_channel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_sidetray_home_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_sys_well_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/strings.xml68
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/fr/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/it/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/it/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/it/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/it/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/it/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/it/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/it/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/it/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/it/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/it/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/notifications.xml692
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/it/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_general.xml5
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/strings.xml63
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/it/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/notifications.xml686
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/ja/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_notifications_channel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_people.xml90
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_sidetray_home_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_sys_well_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/strings.xml68
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ja/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_animation_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_color_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_im_container.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_im_session.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_incoming_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_url_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_bottomtray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_cof_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_hide_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_object_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_outfit_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_participant_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_groups.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_nearby.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_nearby_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_agent.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_objectim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_viewer.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/notifications.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_avatar_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_bottomtray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_cof_wearables.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_region_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_side_tray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/sidepanel_task_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pl/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_incoming_call.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/language_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_cof_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/pt/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/notifications.xml690
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/pt/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_general.xml5
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/strings.xml63
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/pt/xui_version.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_aaa.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_cof_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/notifications.xml689
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/ru/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/strings.xml66
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/ru/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_aaa.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_incoming_call.xml10
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_cof_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/notifications.xml683
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/tr/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/strings.xml68
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/tr/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_aaa.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_about.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_about_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_activeim.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_auction.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_autoreplace.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_avatar_picker.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_avatar_textures.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_beacons.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_build_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_bulk_perms.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_bumps.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_buy_contents.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_buy_currency.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_buy_currency_html.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_buy_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_buy_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_camera.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_choose_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_color_picker.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/floater_conversation_log.xml8
-rw-r--r--indra/newview/skins/default/xui/zh/floater_conversation_preview.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_critical.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_destinations.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_display_name.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_environment_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_event.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_fast_timers.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_font_test.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_god_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_hardware_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_help_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_how_to.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_hud.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_im_container.xml29
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_im_session.xml61
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_image_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_import_collada.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_incoming_call.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_inspect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_joystick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_lagmeter.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_land_holdings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_lsl_guide.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_media_browser.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_media_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_mem_leaking.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_model_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_moveview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_mute_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_my_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_my_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_notification.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_notifications_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_object_weights.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_openobject.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_outfit_save_as.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_outgoing_call.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_pay.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_pay_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_people.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_perm_prefs.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_post_process.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preferences.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preview_animation.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preview_gesture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preview_notecard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preview_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_preview_texture.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_price_for_listing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_publish_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_region_debug_console.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_region_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_report_abuse.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_debug_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_limits.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_queue.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_script_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_search.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_select_key.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_sell_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_settings_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_snapshot.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_sound_preview.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_spellcheck.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_stats.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_sys_well.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_telehub.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_tools.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_top_objects.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_tos.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_toybox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_translation_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_url_entry.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/floater_voice_chat_volume.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_voice_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/zh/floater_voice_volume.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_web_content.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_whitelist_entry.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_window_size.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/floater_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/inspect_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/inspect_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/inspect_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/inspect_remote_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_add_wearable_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_attachment_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_attachment_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_avatar_icon.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_avatar_other.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_avatar_self.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_cof_attachment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_cof_body_part.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_cof_clothing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_cof_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/zh/menu_conversation.xml31
-rw-r--r--indra/newview/skins/default/xui/zh/menu_conversation_log_gear.xml15
-rw-r--r--indra/newview/skins/default/xui/zh/menu_conversation_log_view.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_favorites.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_gesture_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_group_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_hide_navbar.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/menu_im_conversation.xml15
-rw-r--r--indra/newview/skins/default/xui/zh/menu_im_session_showmodes.xml7
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_imchiclet_adhoc.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_imchiclet_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_imchiclet_p2p.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inv_offer_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inventory_add.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_land.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_media_ctrl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_mini_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_model_import_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_navbar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_notification_well_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_object.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_object_icon.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_outfit_gear.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_outfit_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_participant_list.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/menu_participant_view.xml13
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_blocked_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_blocked_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_blocked_view.xml5
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_friends_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_groups_view.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_nearby.xml23
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_nearby_multiselect.xml14
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_nearby_view.xml8
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/menu_people_recent_view.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_picks_plus.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_place.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_place_add_button.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_places_gear_folder.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_places_gear_landmark.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_profile_overflow.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_save_outfit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_script_chiclet.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_teleport_history_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_teleport_history_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_text_editor.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_toolbars.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_topinfobar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_agent.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_group.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_http.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_objectim.xml2
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_parcel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_slapp.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_slurl.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_url_teleport.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_viewer.xml37
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_wearing_gear.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/menu_wearing_tab.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/mime_types.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/mime_types_linux.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/mime_types_mac.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/notifications.xml690
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_active_object_row.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_avatar_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_avatar_tag.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_block_list_sidetray.xml15
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_body_parts_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_bodyparts_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_bottomtray_lite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_chat_header.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_classified_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_clothing_list_button_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_cof_wearables.xml0
-rw-r--r--indra/newview/skins/default/xui/zh/panel_conversation_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/zh/panel_conversation_log_list_item.xml6
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_deletable_wearable_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_dummy_clothing_list_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_alpha.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_classified.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_eyes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_gloves.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_hair.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_jacket.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_pants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_physics.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_pick.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_shape.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_shirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_shoes.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_skin.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_skirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_socks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_tattoo.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_underpants.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_undershirt.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_edit_wearable.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_invite.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_land_money.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_list_item.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_notices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_notify.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_group_roles.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_im_control_panel.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_instant_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_inventory_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_landmark_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_landmarks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_login.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_main_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_me.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_media_settings_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_media_settings_permissions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_media_settings_security.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_navigation_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_nearby_chat.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_nearby_chat_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_nearby_media.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_notify_textbox.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_online_status_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outfit_edit.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outfits_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outfits_inventory_gear_default.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outfits_list.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_outfits_wearing.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_people.xml88
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_pick_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_picks.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_place_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_places.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_postcard_message.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_postcard_settings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_alerts.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_chat.xml110
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_colors.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_general.xml4
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_move.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_privacy.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_setup.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_preferences_sound.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_prim_media_controls.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_covenant.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_debug.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_environment.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_estate.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_general.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_region_terrain.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_script_ed.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_script_limits_my_avatar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_script_limits_region_memory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_script_question_toast.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_scrolling_param.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_scrolling_param_base.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_side_tray_tab_caption.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_snapshot_local.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_snapshot_options.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_sound_devices.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_stand_stop_flying.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_status_bar.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_teleport_history.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_teleport_history_item.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_voice_effect.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/panel_world_map.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/role_actions.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/sidepanel_appearance.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/sidepanel_inventory.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/sidepanel_item_info.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/sidepanel_task_info.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/strings.xml66
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/zh/teleport_strings.xml0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/gpus_results.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/gpus_seen.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llagentaccess_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llcapabilitylistener_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lldateutil_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lldir_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llglslshader_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lllogininstance_test.cpp27
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llmediadataclient_test.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llpipeline_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llremoteparcelrequest_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llsecapi_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llsechandler_basic_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llsimplestat_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llsky_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llslurl_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lltextureinfo_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lltextureinfodetails_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lltexturestatsuploader_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/lltranslate_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llversioninfo_test.cpp28
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llviewerassetstats_test.cpp51
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llviewerhelputil_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llviewernetwork_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llviewershadermgr_stub.cpp0
-rw-r--r--indra/newview/tests/llviewertexture_stub.cpp34
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llwlanimator_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llwldaycycle_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llwlparammanager_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llwlparamset_stub.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llworldmap_test.cpp6
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llworldmipmap_test.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/llxmlrpclistener_test.cpp0
-rwxr-xr-x[-rw-r--r--]indra/newview/tests/test_llxmlrpc_peer.py0
-rwxr-xr-x[-rw-r--r--]indra/newview/tr.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/uk.lproj/language.txt0
-rwxr-xr-x[-rw-r--r--]indra/newview/viewer_manifest.py145
-rwxr-xr-x[-rw-r--r--]indra/newview/zh-Hans.lproj/language.txt0
6713 files changed, 19757 insertions, 19704 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index bd0169fb2f..227644f14f 100644..100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -4,15 +4,14 @@ project(viewer)
include(00-Common)
include(Boost)
-include(BuildVersion)
include(DBusGlib)
include(DirectX)
include(OpenSSL)
include(DragDrop)
include(EXPAT)
-include(FMOD)
+include(FMODEX)
include(OPENAL)
-include(FindOpenGL)
+include(OpenGL)
include(Hunspell)
include(JsonCpp)
include(LLAudio)
@@ -46,12 +45,17 @@ include(LLLogin)
include(VisualLeakDetector)
include(GLOD)
include(CMakeCopyIfDifferent)
+include(LLAppearance)
if (NOT HAVOK_TPV)
# When using HAVOK_TPV, the library is precompiled, so no need for this
add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions)
endif (NOT HAVOK_TPV)
+if(FMODEX)
+ include_directories(${FMODEX_INCLUDE_DIR})
+endif(FMODEX)
+
include_directories(
${DBUSGLIB_INCLUDE_DIRS}
${JSONCPP_INCLUDE_DIR}
@@ -61,13 +65,11 @@ include_directories(
${LLCOMMON_INCLUDE_DIRS}
${LLCOREHTTP_INCLUDE_DIRS}
${LLPHYSICS_INCLUDE_DIRS}
- ${FMOD_INCLUDE_DIR}
${LLIMAGE_INCLUDE_DIRS}
${LLKDU_INCLUDE_DIRS}
${LLINVENTORY_INCLUDE_DIRS}
${LLMATH_INCLUDE_DIRS}
${LLMESSAGE_INCLUDE_DIRS}
- ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
${LLPLUGIN_INCLUDE_DIRS}
${LLPRIMITIVE_INCLUDE_DIRS}
${LLRENDER_INCLUDE_DIRS}
@@ -83,6 +85,14 @@ include_directories(
${LIBS_PREBUILD_DIR}/include/hunspell
${OPENAL_LIB_INCLUDE_DIRS}
${LIBS_PREBUILT_DIR}/include/collada/1.4
+ ${LLAPPEARANCE_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+
+include_directories(SYSTEM
+ ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
+ ${LLXML_SYSTEM_INCLUDE_DIRS}
+ ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
)
set(viewer_SOURCE_FILES
@@ -169,7 +179,6 @@ set(viewer_SOURCE_FILES
lldrawpooltree.cpp
lldrawpoolwater.cpp
lldrawpoolwlsky.cpp
- lldriverparam.cpp
lldynamictexture.cpp
llemote.cpp
llenvmanager.cpp
@@ -291,6 +300,7 @@ set(viewer_SOURCE_FILES
llgroupiconctrl.cpp
llgrouplist.cpp
llgroupmgr.cpp
+ llhasheduniqueid.cpp
llhints.cpp
llhomelocationresponder.cpp
llhudeffect.cpp
@@ -334,7 +344,6 @@ set(viewer_SOURCE_FILES
lllistcontextmenu.cpp
lllistview.cpp
lllocalbitmaps.cpp
- lllocaltextureobject.cpp
lllocationhistory.cpp
lllocationinputctrl.cpp
lllogchat.cpp
@@ -454,12 +463,11 @@ set(viewer_SOURCE_FILES
llpersistentnotificationstorage.cpp
llphysicsmotion.cpp
llphysicsshapebuilderutil.cpp
+ llpipelinelistener.cpp
llplacesinventorybridge.cpp
llplacesinventorypanel.cpp
llplacesfolderview.cpp
llpopupview.cpp
- llpolymesh.cpp
- llpolymorph.cpp
llpostcard.cpp
llpreview.cpp
llpreviewanim.cpp
@@ -510,9 +518,6 @@ set(viewer_SOURCE_FILES
llsyswellwindow.cpp
llteleporthistory.cpp
llteleporthistorystorage.cpp
- lltexglobalcolor.cpp
- lltexlayer.cpp
- lltexlayerparams.cpp
lltextureatlas.cpp
lltextureatlasmanager.cpp
lltexturecache.cpp
@@ -610,18 +615,18 @@ set(viewer_SOURCE_FILES
llviewershadermgr.cpp
llviewerstats.cpp
llviewerstatsrecorder.cpp
+ llviewertexlayer.cpp
llviewertexteditor.cpp
llviewertexture.cpp
llviewertextureanim.cpp
llviewertexturelist.cpp
llviewerthrottle.cpp
- llviewervisualparam.cpp
+ llviewerwearable.cpp
llviewerwindow.cpp
llviewerwindowlistener.cpp
llvlcomposition.cpp
llvlmanager.cpp
llvoavatar.cpp
- llvoavatardefines.cpp
llvoavatarself.cpp
llvocache.cpp
llvograss.cpp
@@ -642,10 +647,8 @@ set(viewer_SOURCE_FILES
llwatchdog.cpp
llwaterparammanager.cpp
llwaterparamset.cpp
- llwearable.cpp
llwearableitemslist.cpp
llwearablelist.cpp
- llwearabletype.cpp
llweb.cpp
llwebprofile.cpp
llwebsharing.cpp
@@ -757,7 +760,6 @@ set(viewer_HEADER_FILES
lldrawpooltree.h
lldrawpoolwater.h
lldrawpoolwlsky.h
- lldriverparam.h
lldynamictexture.h
llemote.h
llenvmanager.h
@@ -878,6 +880,7 @@ set(viewer_HEADER_FILES
llgroupiconctrl.h
llgrouplist.h
llgroupmgr.h
+ llhasheduniqueid.h
llhints.h
llhomelocationresponder.h
llhudeffect.h
@@ -921,7 +924,6 @@ set(viewer_HEADER_FILES
lllistcontextmenu.h
lllistview.h
lllocalbitmaps.h
- lllocaltextureobject.h
lllocationhistory.h
lllocationinputctrl.h
lllogchat.h
@@ -1030,11 +1032,10 @@ set(viewer_HEADER_FILES
llpersistentnotificationstorage.h
llphysicsmotion.h
llphysicsshapebuilderutil.h
+ llpipelinelistener.h
llplacesinventorybridge.h
llplacesinventorypanel.h
llplacesfolderview.h
- llpolymesh.h
- llpolymorph.h
llpopupview.h
llpostcard.h
llpreview.h
@@ -1088,9 +1089,6 @@ set(viewer_HEADER_FILES
lltable.h
llteleporthistory.h
llteleporthistorystorage.h
- lltexglobalcolor.h
- lltexlayer.h
- lltexlayerparams.h
lltextureatlas.h
lltextureatlasmanager.h
lltexturecache.h
@@ -1189,18 +1187,18 @@ set(viewer_HEADER_FILES
llviewershadermgr.h
llviewerstats.h
llviewerstatsrecorder.h
+ llviewertexlayer.h
llviewertexteditor.h
llviewertexture.h
llviewertextureanim.h
llviewertexturelist.h
llviewerthrottle.h
- llviewervisualparam.h
+ llviewerwearable.h
llviewerwindow.h
llviewerwindowlistener.h
llvlcomposition.h
llvlmanager.h
llvoavatar.h
- llvoavatardefines.h
llvoavatarself.h
llvocache.h
llvograss.h
@@ -1221,10 +1219,8 @@ set(viewer_HEADER_FILES
llwatchdog.h
llwaterparammanager.h
llwaterparamset.h
- llwearable.h
llwearableitemslist.h
llwearablelist.h
- llwearabletype.h
llweb.h
llwebprofile.h
llwebsharing.h
@@ -1251,6 +1247,22 @@ set(viewer_HEADER_FILES
source_group("CMake Rules" FILES ViewerInstall.cmake)
+# the viewer_version.txt file created here is for passing to viewer_manifest
+# the summary.json file is created for the benefit of the TeamCity builds, where
+# it is used to provide descriptive information to the build results page
+add_custom_target(generate_viewer_version ALL
+ COMMAND printf '${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}' > ${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
+ COMMAND printf '{"Type":"viewer","Version":"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}"}' > ${CMAKE_BINARY_DIR}/summary.json
+ COMMENT Generating viewer_version.txt for manifest processing
+ )
+
+set_source_files_properties(
+ llversioninfo.cpp tests/llversioninfo_test.cpp
+ PROPERTIES
+ DEPENDS generate_viewer_version # dummy dependency to force recompile every time
+ COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" # see BuildVersion.cmake
+ )
+
if (DARWIN)
LIST(APPEND viewer_SOURCE_FILES llappviewermacosx.cpp)
@@ -1328,15 +1340,17 @@ if (WINDOWS)
# Replace the icons with the appropriate ones for the channel
# ('test' is the default)
set(ICON_PATH "test")
+ set(VIEWER_MACOSX_PHASE "d")
string(TOLOWER ${VIEWER_CHANNEL} channel_lower)
if(channel_lower MATCHES "^second life release")
set(ICON_PATH "release")
- elseif(channel_lower MATCHES "^second life beta viewer")
+ set(VIEWER_MACOSX_PHASE "f")
+ elseif(channel_lower MATCHES "^second life beta")
set(ICON_PATH "beta")
- elseif(channel_lower MATCHES "^second life development")
- set(ICON_PATH "development")
- elseif(channel_lower MATCHES "project")
+ set(VIEWER_MACOSX_PHASE "b")
+ elseif(channel_lower MATCHES "^second life project")
set(ICON_PATH "project")
+ set(VIEWER_MACOSX_PHASE "a")
endif()
message("Copying icons for ${ICON_PATH}")
execute_process(
@@ -1405,11 +1419,18 @@ if (WINDOWS)
set_source_files_properties(${viewer_RESOURCE_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/res/viewerRes.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/viewerRes.rc
+ )
set(viewer_RESOURCE_FILES
- res/viewerRes.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/viewerRes.rc
${viewer_RESOURCE_FILES}
)
+ set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/viewerRes.rc
+ PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/res"
+ )
+
SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES})
if (NOT STANDALONE)
@@ -1542,29 +1563,12 @@ endif (WINDOWS)
if (OPENAL)
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
-endif (OPENAL)
-
-if (FMOD)
- set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD")
+endif (OPENAL)
- if (DARWIN)
- set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp)
- add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES})
- set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY})
- set_target_properties(
- fmodwrapper
- PROPERTIES
- BUILD_WITH_INSTALL_RPATH 1
- INSTALL_NAME_DIR "@executable_path/../Resources"
- LINK_FLAGS "-unexported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp"
- )
- set(FMODWRAPPER_LIBRARY fmodwrapper)
- target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES})
- else (DARWIN)
- # fmodwrapper unnecessary on linux or windows
- set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY})
- endif (DARWIN)
-endif (FMOD)
+if (FMODEX)
+ set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
+ set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY})
+endif (FMODEX)
set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
@@ -1579,6 +1583,12 @@ add_executable(${VIEWER_BINARY_NAME}
${viewer_SOURCE_FILES}
)
+if (SDL_FOUND)
+ set_property(TARGET ${VIEWER_BINARY_NAME}
+ PROPERTY COMPILE_DEFINITIONS LL_SDL=1
+ )
+endif (SDL_FOUND)
+
# add package files
file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST
${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py)
@@ -1639,9 +1649,6 @@ if (WINDOWS)
${SHARED_LIB_STAGING_DIR}/Release/openjpeg.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/openjpeg.dll
${SHARED_LIB_STAGING_DIR}/Debug/openjpegd.dll
- ${SHARED_LIB_STAGING_DIR}/Release/fmod.dll
- ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/fmod.dll
${SHARED_LIB_STAGING_DIR}/Release/msvcr100.dll
${SHARED_LIB_STAGING_DIR}/Release/msvcp100.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/msvcr100.dll
@@ -1706,6 +1713,14 @@ if (WINDOWS)
windows-updater
)
+ if (FMODEX)
+ list(APPEND COPY_INPUT_DEPENDENCIES
+ ${SHARED_LIB_STAGING_DIR}/Release/fmodex.dll
+ ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmodex.dll
+ ${SHARED_LIB_STAGING_DIR}/Debug/fmodexL.dll
+ )
+ endif (FMODEX)
+
add_custom_command(
OUTPUT ${CMAKE_CFG_INTDIR}/copy_touched.bat
COMMAND ${PYTHON_EXECUTABLE}
@@ -1718,10 +1733,13 @@ if (WINDOWS)
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
--grid=${GRID}
+ --channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/copy_touched.bat
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ generate_viewer_version
stage_third_party_libs
${COPY_INPUT_DEPENDENCIES}
COMMENT "Performing viewer_manifest copy"
@@ -1780,21 +1798,23 @@ if (WINDOWS)
--build=${CMAKE_CURRENT_BINARY_DIR}
--buildtype=${CMAKE_BUILD_TYPE}
--channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
--grid=${GRID}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
DEPENDS
${VIEWER_BINARY_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ ${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
${COPY_INPUT_DEPENDENCIES}
)
add_custom_target(package ALL DEPENDS
${CMAKE_CFG_INTDIR}/touched.bat
windows-setup-build-all
+ generate_viewer_version
)
# temporarily disable packaging of event_host until hg subrepos get
# sorted out on the parabuild cluster...
@@ -1846,6 +1866,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${viewer_LIBRARIES}
${BOOST_PROGRAM_OPTIONS_LIBRARY}
${BOOST_REGEX_LIBRARY}
+ ${BOOST_CONTEXT_LIBRARY}
${DBUSGLIB_LIBRARIES}
${OPENGL_LIBRARIES}
${FMODWRAPPER_LIBRARY} # must come after LLAudio
@@ -1864,27 +1885,14 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${LLPHYSICS_LIBRARIES}
${LLPHYSICSEXTENSIONS_LIBRARIES}
${TCMALLOC_LIBRARIES}
+ ${LLAPPEARANCE_LIBRARIES}
)
-if (USE_KDU)
- target_link_libraries(${VIEWER_BINARY_NAME}
- ${LLKDU_LIBRARIES}
- ${KDU_LIBRARY}
- )
-else (USE_KDU)
- target_link_libraries(${VIEWER_BINARY_NAME}
- ${LLIMAGEJ2COJ_LIBRARIES}
- )
-endif (USE_KDU)
-
-build_version(viewer)
-
set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH
"Path to artwork files.")
-
if (LINUX)
- set(product SecondLife-${ARCH}-${viewer_VERSION})
+ set(product SecondLife-${ARCH}-${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION})
# These are the generated targets that are copied to package/
set(COPY_INPUT_DEPENDENCIES
@@ -1906,20 +1914,22 @@ if (LINUX)
--build=${CMAKE_CURRENT_BINARY_DIR}
--buildtype=${CMAKE_BUILD_TYPE}
--channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/packaged
--grid=${GRID}
--installer_name=${product}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ generate_viewer_version
${COPY_INPUT_DEPENDENCIES}
)
if (PACKAGE)
endif (PACKAGE)
+
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched
COMMAND ${PYTHON_EXECUTABLE}
@@ -1933,9 +1943,12 @@ if (LINUX)
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/packaged
--grid=${GRID}
+ --channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--source=${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ generate_viewer_version
${COPY_INPUT_DEPENDENCIES}
COMMENT "Performing viewer_manifest copy"
)
@@ -1952,20 +1965,26 @@ endif (LINUX)
if (DARWIN)
set(product "Second Life")
+
set_target_properties(
${VIEWER_BINARY_NAME}
PROPERTIES
OUTPUT_NAME "${product}"
- MACOSX_BUNDLE_INFO_STRING "info string - localize me"
+ MACOSX_BUNDLE_INFO_STRING "Second Life Viewer"
MACOSX_BUNDLE_ICON_FILE "secondlife.icns"
- MACOSX_BUNDLE_GUI_IDENTIFIER "Second Life"
- MACOSX_BUNDLE_LONG_VERSION_STRING "ververver"
+ MACOSX_BUNDLE_GUI_IDENTIFIER "com.secondlife.indra.viewer"
+ MACOSX_BUNDLE_LONG_VERSION_STRING "${VIEWER_CHANNEL} ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}"
MACOSX_BUNDLE_BUNDLE_NAME "Second Life"
- MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf"
- MACOSX_BUNDLE_BUNDLE_VERSION "asdf"
- MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer"
+ MACOSX_BUNDLE_SHORT_VERSION_STRING "${VIEWER_SHORT_VERSION}"
+ MACOSX_BUNDLE_BUNDLE_VERSION "${VIEWER_SHORT_VERSION}${VIEWER_MACOSX_PHASE}${VIEWER_REVISION}"
+ MACOSX_BUNDLE_COPYRIGHT "Copyright © Linden Research, Inc. 2007"
)
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist"
+ "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app/Contents/Info.plist"
+ )
+
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
COMMAND ${PYTHON_EXECUTABLE}
@@ -1978,11 +1997,16 @@ if (DARWIN)
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
--grid=${GRID}
+ --channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--source=${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ DEPENDS
+ ${VIEWER_BINARY_NAME}
+ ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ generate_viewer_version
)
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-updater mac-crash-logger)
+ add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-crash-logger)
if (ENABLE_SIGNING)
set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
@@ -1992,6 +2016,7 @@ if (DARWIN)
if (PACKAGE)
add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME})
+ add_dependencies(package generate_viewer_version)
add_custom_command(
TARGET package POST_BUILD
@@ -2005,12 +2030,14 @@ if (DARWIN)
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
--grid=${GRID}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
+ --channel=${VIEWER_CHANNEL}
+ --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
${SIGNING_SETTING}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ generate_viewer_version
)
endif (PACKAGE)
endif (DARWIN)
@@ -2035,12 +2062,11 @@ if (PACKAGE)
# *TODO: Generate these search dirs in the cmake files related to each binary.
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/llplugin/slplugin/${CMAKE_CFG_INTDIR}")
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/mac_crash_logger/${CMAKE_CFG_INTDIR}")
- list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/mac_updater/${CMAKE_CFG_INTDIR}")
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/gstreamer010/${CMAKE_CFG_INTDIR}")
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/quicktime/${CMAKE_CFG_INTDIR}")
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/webkit/${CMAKE_CFG_INTDIR}")
set(VIEWER_SYMBOL_FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-symbols-darwin.tar.bz2")
- set(VIEWER_EXE_GLOBS "'Second Life' SLPlugin mac-updater mac-crash-logger")
+ set(VIEWER_EXE_GLOBS "'Second Life' SLPlugin mac-crash-logger")
set(VIEWER_LIB_GLOB "*.dylib")
endif (DARWIN)
if (LINUX)
@@ -2096,6 +2122,15 @@ if (LL_TESTS)
)
set_source_files_properties(
+ llworldmap.cpp
+ llworldmipmap.cpp
+ PROPERTIES
+ LL_TEST_ADDITIONAL_SOURCE_FILES
+ tests/llviewertexture_stub.cpp
+ #llviewertexturelist.cpp
+ )
+
+ set_source_files_properties(
lltranslate.cpp
PROPERTIES
LL_TEST_ADDITIONAL_LIBRARIES "${JSONCPP_LIBRARIES}"
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings
index 5c7cacedec..041b8cea0b 100644..100755
--- a/indra/newview/English.lproj/InfoPlist.strings
+++ b/indra/newview/English.lproj/InfoPlist.strings
@@ -2,6 +2,6 @@
CFBundleName = "Second Life";
-CFBundleShortVersionString = "Second Life version 2.1.0.13828";
-CFBundleGetInfoString = "Second Life version 2.1.0.13828, Copyright 2004-2009 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version %%VERSION%%";
+CFBundleGetInfoString = "Second Life version %%VERSION%%, Copyright 2004 Linden Research, Inc.";
diff --git a/indra/newview/English.lproj/language.txt b/indra/newview/English.lproj/language.txt
index bc0aa577f9..bc0aa577f9 100644..100755
--- a/indra/newview/English.lproj/language.txt
+++ b/indra/newview/English.lproj/language.txt
diff --git a/indra/newview/German.lproj/language.txt b/indra/newview/German.lproj/language.txt
index c42e816f93..c42e816f93 100644..100755
--- a/indra/newview/German.lproj/language.txt
+++ b/indra/newview/German.lproj/language.txt
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index f7b11b217c..a19844f11c 100644..100755
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -60,7 +60,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
- <string>2.1.0.13828</string>
+ <string>${VIEWER_VERSION_MAJOR}.${VIEWER_VERSION_MINOR}.${VIEWER_VERSION_PATCH}.${VIEWER_VERSION_REVISION}</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
diff --git a/indra/newview/Info-SecondLifeVorbis.plist b/indra/newview/Info-SecondLifeVorbis.plist
index 9cb367eec1..9cb367eec1 100644..100755
--- a/indra/newview/Info-SecondLifeVorbis.plist
+++ b/indra/newview/Info-SecondLifeVorbis.plist
diff --git a/indra/newview/Japanese.lproj/language.txt b/indra/newview/Japanese.lproj/language.txt
index c6e3ab6f3c..c6e3ab6f3c 100644..100755
--- a/indra/newview/Japanese.lproj/language.txt
+++ b/indra/newview/Japanese.lproj/language.txt
diff --git a/indra/newview/Korean.lproj/language.txt b/indra/newview/Korean.lproj/language.txt
index b03ec72ee0..b03ec72ee0 100644..100755
--- a/indra/newview/Korean.lproj/language.txt
+++ b/indra/newview/Korean.lproj/language.txt
diff --git a/indra/newview/SecondLife.nib/classes.nib b/indra/newview/SecondLife.nib/classes.nib
index ea58db1189..ea58db1189 100644..100755
--- a/indra/newview/SecondLife.nib/classes.nib
+++ b/indra/newview/SecondLife.nib/classes.nib
diff --git a/indra/newview/SecondLife.nib/info.nib b/indra/newview/SecondLife.nib/info.nib
index 1b531de104..1b531de104 100644..100755
--- a/indra/newview/SecondLife.nib/info.nib
+++ b/indra/newview/SecondLife.nib/info.nib
diff --git a/indra/newview/SecondLife.nib/objects.xib b/indra/newview/SecondLife.nib/objects.xib
index b7ff30f2b2..b7ff30f2b2 100644..100755
--- a/indra/newview/SecondLife.nib/objects.xib
+++ b/indra/newview/SecondLife.nib/objects.xib
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
new file mode 100644
index 0000000000..65afb3b886
--- /dev/null
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -0,0 +1 @@
+3.5.4
diff --git a/indra/newview/VertexCache.h b/indra/newview/VertexCache.h
index 0eadad7e01..0eadad7e01 100644..100755
--- a/indra/newview/VertexCache.h
+++ b/indra/newview/VertexCache.h
diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake
index 0b0d3e2adc..0b0d3e2adc 100644..100755
--- a/indra/newview/ViewerInstall.cmake
+++ b/indra/newview/ViewerInstall.cmake
diff --git a/indra/newview/VorbisFramework.h b/indra/newview/VorbisFramework.h
index 874a22fc30..874a22fc30 100644..100755
--- a/indra/newview/VorbisFramework.h
+++ b/indra/newview/VorbisFramework.h
diff --git a/indra/newview/app_settings/CA.pem b/indra/newview/app_settings/CA.pem
index 8c1b9a1f37..8c1b9a1f37 100644..100755
--- a/indra/newview/app_settings/CA.pem
+++ b/indra/newview/app_settings/CA.pem
diff --git a/indra/newview/app_settings/anim.ini b/indra/newview/app_settings/anim.ini
index 63c84e544d..63c84e544d 100644..100755
--- a/indra/newview/app_settings/anim.ini
+++ b/indra/newview/app_settings/anim.ini
diff --git a/indra/newview/app_settings/autoreplace.xml b/indra/newview/app_settings/autoreplace.xml
index 09d19f7b04..09d19f7b04 100644..100755
--- a/indra/newview/app_settings/autoreplace.xml
+++ b/indra/newview/app_settings/autoreplace.xml
diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index 7ab7787d77..7ab7787d77 100644..100755
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 4659673333..4659673333 100644..100755
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
diff --git a/indra/newview/app_settings/foldertypes.xml b/indra/newview/app_settings/foldertypes.xml
index 0d539177f3..0d539177f3 100644..100755
--- a/indra/newview/app_settings/foldertypes.xml
+++ b/indra/newview/app_settings/foldertypes.xml
diff --git a/indra/newview/app_settings/grass.xml b/indra/newview/app_settings/grass.xml
index 4fc3b798af..4fc3b798af 100644..100755
--- a/indra/newview/app_settings/grass.xml
+++ b/indra/newview/app_settings/grass.xml
diff --git a/indra/newview/app_settings/high_graphics.xml b/indra/newview/app_settings/high_graphics.xml
index 5bc2e1b7e6..5bc2e1b7e6 100644..100755
--- a/indra/newview/app_settings/high_graphics.xml
+++ b/indra/newview/app_settings/high_graphics.xml
diff --git a/indra/newview/app_settings/ignorable_dialogs.xml b/indra/newview/app_settings/ignorable_dialogs.xml
index 17d3d3c9c5..17d3d3c9c5 100644..100755
--- a/indra/newview/app_settings/ignorable_dialogs.xml
+++ b/indra/newview/app_settings/ignorable_dialogs.xml
diff --git a/indra/newview/app_settings/keys.xml b/indra/newview/app_settings/keys.xml
index 6e3673e7d9..6e3673e7d9 100644..100755
--- a/indra/newview/app_settings/keys.xml
+++ b/indra/newview/app_settings/keys.xml
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 6120f22ba4..f0d8b77afd 100644..100755
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -92,6 +92,9 @@ PERMISSION_CHANGE_LINKS Passed to llRequestPermissions library function to req
PERMISSION_TRACK_CAMERA Passed to llRequestPermissions library function to request permission to track agent's camera
PERMISSION_CONTROL_CAMERA Passed to llRequestPermissions library function to request permission to change agent's camera
PERMISSION_TELEPORT Passed to llRequestPermissions library function to request permission to teleport agent
+SCRIPT_PERMISSION_SILENT_ESTATE_MANAGEMENT Passed to llRequestPermissions library function to request permission to silently modify estate access lists
+PERMISSION_OVERRIDE_ANIMATIONS Passed to llRequestPermissions library function to request permission to override animations on agent
+PERMISSION_RETURN_OBJECTS Passed to llRequestPermissions library function to request permission to return objects
DEBUG_CHANNEL Chat channel reserved for debug and error messages from scripts
PUBLIC_CHANNEL Chat channel that broadcasts to all nearby users
diff --git a/indra/newview/app_settings/lindenlab.pem b/indra/newview/app_settings/lindenlab.pem
index eddae0426d..eddae0426d 100644..100755
--- a/indra/newview/app_settings/lindenlab.pem
+++ b/indra/newview/app_settings/lindenlab.pem
diff --git a/indra/newview/app_settings/llsd.xsd b/indra/newview/app_settings/llsd.xsd
index 34612d9faa..34612d9faa 100644..100755
--- a/indra/newview/app_settings/llsd.xsd
+++ b/indra/newview/app_settings/llsd.xsd
diff --git a/indra/newview/app_settings/logcontrol.xml b/indra/newview/app_settings/logcontrol.xml
index 92a241857e..92a241857e 100644..100755
--- a/indra/newview/app_settings/logcontrol.xml
+++ b/indra/newview/app_settings/logcontrol.xml
diff --git a/indra/newview/app_settings/low_graphics.xml b/indra/newview/app_settings/low_graphics.xml
index ca1dae0b86..ca1dae0b86 100644..100755
--- a/indra/newview/app_settings/low_graphics.xml
+++ b/indra/newview/app_settings/low_graphics.xml
diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml
index 01822fe64c..01822fe64c 100644..100755
--- a/indra/newview/app_settings/mid_graphics.xml
+++ b/indra/newview/app_settings/mid_graphics.xml
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 4c305e1d60..f356cff9d8 100644..100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -291,6 +291,17 @@
<key>Value</key>
<real>1.0</real>
</map>
+ <key>AudioLevelUnderwaterRolloff</key>
+ <map>
+ <key>Comment</key>
+ <string>Controls the distance-based dropoff of audio volume underwater(fraction or multiple of default audio rolloff)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>5.0</real>
+ </map>
<key>AudioLevelSFX</key>
<map>
<key>Comment</key>
@@ -1894,6 +1905,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>CoroutineStackSize</key>
+ <map>
+ <key>Comment</key>
+ <string>Size (in bytes) for each coroutine stack</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>262144</integer>
+ </map>
<key>CreateToolCopyCenters</key>
<map>
<key>Comment</key>
@@ -2004,6 +2026,39 @@
<key>Value</key>
<string />
</map>
+ <key>DebugAvatarAppearanceMessage</key>
+ <map>
+ <key>Comment</key>
+ <string>Dump a bunch of XML files when handling appearance messages</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>DebugAvatarExperimentalServerAppearanceUpdate</key>
+ <map>
+ <key>Comment</key>
+ <string>Experiment with sending full cof_contents instead of cof_version</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>DebugAvatarAppearanceServiceURLOverride</key>
+ <map>
+ <key>Comment</key>
+ <string>URL to use for baked texture requests; overrides value returned by login server.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string />
+ </map>
<key>DebugAvatarRezTime</key>
<map>
<key>Comment</key>
@@ -2026,6 +2081,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>DebugAvatarCompositeBaked</key>
+ <map>
+ <key>Comment</key>
+ <string>Colorize avatar meshes based on baked/composite state.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DebugBeaconLineWidth</key>
<map>
<key>Comment</key>
@@ -2037,6 +2103,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>DebugForceAppearanceRequestFailure</key>
+ <map>
+ <key>Comment</key>
+ <string>Request wrong cof version to test the failure path for server appearance update requests.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DebugHideEmptySystemFolders</key>
<map>
<key>Comment</key>
@@ -4381,6 +4458,28 @@
<key>Value</key>
<real>1.0</real>
</map>
+ <key>InventoryDebugSimulateOpFailureRate</key>
+ <map>
+ <key>Comment</key>
+ <string>Rate at which we simulate failures of copy/link requests in some operations</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.0</real>
+ </map>
+ <key>InventoryDebugSimulateLateOpRate</key>
+ <map>
+ <key>Comment</key>
+ <string>Rate at which we simulate late-completing copy/link requests in some operations</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.0</real>
+ </map>
<key>InventoryDisplayInbox</key>
<map>
<key>Comment</key>
@@ -8903,6 +9002,28 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>DisableAllRenderTypes</key>
+ <map>
+ <key>Comment</key>
+ <string>Disables all rendering types.</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>DisableAllRenderFeatures</key>
+ <map>
+ <key>Comment</key>
+ <string>Disables all rendering features.</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>RenderHUDInSnapshot</key>
<map>
<key>Comment</key>
@@ -11084,7 +11205,7 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
- <integer>0.0</integer>
+ <real>0.0</real>
</map>
<key>TextureFetchUpdateSkipLowPriority</key>
<map>
@@ -12340,6 +12461,17 @@
<key>Value</key>
<integer>3</integer>
</map>
+ <key>UpdaterWillingToTest</key>
+ <map>
+ <key>Comment</key>
+ <string>Allow upgrades to release candidate viewers with new features and fixes.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>UpdaterServiceCheckPeriod</key>
<map>
<key>Comment</key>
@@ -12373,16 +12505,16 @@
<key>Value</key>
<string>update</string>
</map>
- <key>UpdaterServiceProtocolVersion</key>
+ <key>UpdaterWillingToTest</key>
<map>
<key>Comment</key>
- <string>The update protocol version to use.</string>
+ <string>Whether or not the updater should offer test candidate upgrades.</string>
<key>Persist</key>
- <integer>0</integer>
+ <integer>1</integer>
<key>Type</key>
- <string>String</string>
+ <string>Boolean</string>
<key>Value</key>
- <string>v1.0</string>
+ <string>1</string>
</map>
<key>UploadBakedTexOld</key>
<map>
@@ -12723,6 +12855,7 @@
<key>Type</key>
<string>LLSD</string>
<key>Value</key>
+ <string/>
</map>
<key>VFSOldSize</key>
<map>
@@ -13340,6 +13473,28 @@
<key>Value</key>
<integer>-1</integer>
</map>
+ <key>MaxFPS</key>
+ <map>
+ <key>Comment</key>
+ <string>Yield some time to the local host if we reach a threshold framerate.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>-1.0</real>
+ </map>
+ <key>ForcePeriodicRenderingTime</key>
+ <map>
+ <key>Comment</key>
+ <string>Periodically enable all rendering masks for a single frame.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>-1.0</real>
+ </map>
<key>ZoomDirect</key>
<map>
<key>Comment</key>
@@ -14325,5 +14480,49 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DisablePrecacheDelayAfterTeleporting</key>
+ <map>
+ <key>Comment</key>
+ <string>Disables the artificial delay in the viewer that precaches some incoming assets</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>FMODExProfilerEnable</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable profiler tool if using FMOD Ex</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>FMODExDecodeBufferSize</key>
+ <map>
+ <key>Comment</key>
+ <string>Sets the streaming decode buffer size (in milliseconds)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>1000</integer>
+ </map>
+ <key>FMODExStreamBufferSize</key>
+ <map>
+ <key>Comment</key>
+ <string>Sets the streaming buffer size (in milliseconds)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>7000</integer>
+ </map>
</map>
</llsd>
diff --git a/indra/newview/app_settings/settings_crash_behavior.xml b/indra/newview/app_settings/settings_crash_behavior.xml
index 97651ff4ca..97651ff4ca 100644..100755
--- a/indra/newview/app_settings/settings_crash_behavior.xml
+++ b/indra/newview/app_settings/settings_crash_behavior.xml
diff --git a/indra/newview/app_settings/settings_files.xml b/indra/newview/app_settings/settings_files.xml
index bfc09286e3..bfc09286e3 100644..100755
--- a/indra/newview/app_settings/settings_files.xml
+++ b/indra/newview/app_settings/settings_files.xml
diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml
index 01a70f2671..01a70f2671 100644..100755
--- a/indra/newview/app_settings/settings_minimal.xml
+++ b/indra/newview/app_settings/settings_minimal.xml
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index ada374f892..590f41283b 100644..100755
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -292,6 +292,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>NearbyChatIsNotCollapsed</key>
+ <map>
+ <key>Comment</key>
+ <string>Saving expanded/collapsed state of the nearby chat between sessions</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>ShowFavoritesOnLogin</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
index b631ecb7d2..b631ecb7d2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
index bc63d07d72..bc63d07d72 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
index 19203ab670..19203ab670 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl b/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
index 4296e551db..4296e551db 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl b/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
index 82db15c3ae..82db15c3ae 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
index 43ed41a205..43ed41a205 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
index 7a35905280..7a35905280 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
index 78b5328c9a..78b5328c9a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index dd87ddb330..dd87ddb330 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl
index beb3290187..beb3290187 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl
index 1113a9845b..1113a9845b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaNonIndexedNoColorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl
index 5a0e8ff684..5a0e8ff684 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
index cf38a2f4f7..cf38a2f4f7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl
index 22c9a4d14e..22c9a4d14e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl
index 81961d7746..81961d7746 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaNoColorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaNoColorV.glsl
index 5f395801e5..5f395801e5 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaNoColorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaNoColorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
index d6149fcc32..d6149fcc32 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarEyesV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarEyesV.glsl
index 01ffb862f7..01ffb862f7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarEyesV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarEyesV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
index bfd9b9b3eb..bfd9b9b3eb 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
index 3686f2f647..3686f2f647 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
index 23feb09d72..23feb09d72 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
index 1bd8fee7c9..1bd8fee7c9 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
index f400eb7a5b..f400eb7a5b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
index 212f7e56ad..212f7e56ad 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
index 23c4ea2fff..23c4ea2fff 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl
index 8ba75010a2..8ba75010a2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
index c8d38bb8f7..c8d38bb8f7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl
index 1d8ca04ccd..1d8ca04ccd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
index 17f425475c..17f425475c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
index ccbc3c557c..ccbc3c557c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl
index c1fa9e4aac..c1fa9e4aac 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl
index 4c68123fac..4c68123fac 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl
index ad65c7d330..ad65c7d330 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseAlphaMaskNoColorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
index 86390bdd83..86390bdd83 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl
index 788b966af8..788b966af8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseNoColorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseNoColorV.glsl
index 9461e3e32e..9461e3e32e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseNoColorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseNoColorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
index a74290bfcd..a74290bfcd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
index 76d29b1df7..76d29b1df7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl
index a425e5062e..a425e5062e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl
index 6aa4d7b4ed..6aa4d7b4ed 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/emissiveV.glsl b/indra/newview/app_settings/shaders/class1/deferred/emissiveV.glsl
index 115b04797f..115b04797f 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/emissiveV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/emissiveV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
index 36433a5827..36433a5827 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
index 2e6982d101..2e6982d101 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl
index 2cef8f2a5d..2cef8f2a5d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fxaaF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
index da1b234240..da1b234240 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
index bc0719cb82..bc0719cb82 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
index 42266e9378..42266e9378 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
index dcf474824d..dcf474824d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
index f2dc60aa5d..f2dc60aa5d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
index 7e79317543..7e79317543 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
index eefefa640d..eefefa640d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
index bff87cb6aa..bff87cb6aa 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl b/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl
index 62cfa5c316..62cfa5c316 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/normgenF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/normgenV.glsl b/indra/newview/app_settings/shaders/class1/deferred/normgenV.glsl
index 9bceae05b7..9bceae05b7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/normgenV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/normgenV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
index 75757b26c8..75757b26c8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
index 9491421236..9491421236 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
index bf362e21a4..bf362e21a4 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
index eb5beeef39..eb5beeef39 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoTCV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoTCV.glsl
index bd0cb50464..bd0cb50464 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoTCV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoTCV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
index 8edf5b2723..8edf5b2723 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
index 96f9628424..96f9628424 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl
index bced4a5577..bced4a5577 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskV.glsl
index c1f2d90712..c1f2d90712 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowCubeV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowCubeV.glsl
index 6195e2f1ec..6195e2f1ec 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowCubeV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowCubeV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
index 7e55fdc12a..7e55fdc12a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
index 8b46e81f90..8b46e81f90 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl
index faa54a316e..faa54a316e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/skyF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl b/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl
index 7c02d31d43..7c02d31d43 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/skyV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index 89448e2167..89448e2167 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
index c6031fc45a..c6031fc45a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
index cca63872de..cca63872de 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl
index 821058804c..821058804c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/starsF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/starsV.glsl b/indra/newview/app_settings/shaders/class1/deferred/starsV.glsl
index 8bc5b06379..8bc5b06379 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/starsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/starsV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
index 5ca817aff6..5ca817aff6 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
index 47e9d15fbc..47e9d15fbc 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightNoFragCoordV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
index bac74cbbef..bac74cbbef 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
index 473d6df8fa..473d6df8fa 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
index daf1cc7ea2..daf1cc7ea2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
index 5effee4e4e..5effee4e4e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
index da253846ef..da253846ef 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl
index d4d2f5f571..d4d2f5f571 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeShadowV.glsl
index e472a75304..e472a75304 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/treeShadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeShadowV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
index 3b6571a24a..3b6571a24a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
index 3427d6db57..1ae006bc8a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
@@ -151,8 +151,8 @@ void main()
//spec *= shadow;
//color.rgb += spec * specular;
- //color.rgb = atmosTransport(color.rgb);
- //color.rgb = scaleSoftClip(color.rgb);
+ color.rgb = atmosTransport(color.rgb);
+ color.rgb = scaleSoftClip(color.rgb);
//color.a = spec * sunAngle2;
//wavef.z *= 0.1f;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
index 9734acf005..ece34dcc4e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
@@ -85,7 +85,7 @@ void main()
pos.w = 1.0;
pos = modelview_matrix*pos;
- calcAtmospherics(pos.xyz);
+ calcAtmospherics(view.xyz);
//pass wave parameters to pixel shader
vec2 bigWave = (v.xy) * vec2(0.04,0.04) + d1 * time * 0.055;
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
index 0f5eb288fd..0f5eb288fd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
index 1396dc6973..1396dc6973 100644..100755
--- a/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
index c1f6af9f57..c1f6af9f57 100644..100755
--- a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowV.glsl b/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
index cdb2281578..cdb2281578 100644..100755
--- a/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
index 668a710c04..668a710c04 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
index d09c5f9247..d09c5f9247 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
index a956562396..a956562396 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
index 0d8dab0a41..0d8dab0a41 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
index 79bffab745..79bffab745 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
index 4bdfce9260..4bdfce9260 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterV.glsl b/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
index f66ba1d2d9..5aff156eae 100644..100755
--- a/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
@@ -28,6 +28,7 @@ uniform mat4 modelview_projection_matrix;
ATTRIBUTE vec3 position;
+
void calcAtmospherics(vec3 inPositionEye);
uniform vec2 d1;
@@ -48,41 +49,40 @@ float wave(vec2 v, float t, float f, vec2 d, float s)
void main()
{
//transform vertex
+ vec4 pos = vec4(position.xyz, 1.0);
mat4 modelViewProj = modelview_projection_matrix;
vec4 oPosition;
//get view vector
vec3 oEyeVec;
- oEyeVec.xyz = position.xyz-eyeVec;
+ oEyeVec.xyz = pos.xyz-eyeVec;
float d = length(oEyeVec.xy);
float ld = min(d, 2560.0);
- vec3 lpos = position;
- lpos.xy = eyeVec.xy + oEyeVec.xy/d*ld;
+ pos.xy = eyeVec.xy + oEyeVec.xy/d*ld;
view.xyz = oEyeVec;
d = clamp(ld/1536.0-0.5, 0.0, 1.0);
d *= d;
- oPosition = vec4(lpos, 1.0);
+ oPosition = vec4(position, 1.0);
oPosition.z = mix(oPosition.z, max(eyeVec.z*0.75, 0.0), d);
oPosition = modelViewProj * oPosition;
+
refCoord.xyz = oPosition.xyz + vec3(0,0,0.2);
//get wave position parameter (create sweeping horizontal waves)
- vec3 v = lpos;
+ vec3 v = pos.xyz;
v.x += (cos(v.x*0.08/*+time*0.01*/)+sin(v.y*0.02))*6.0;
//push position for further horizon effect.
- vec4 pos;
pos.xyz = oEyeVec.xyz*(waterHeight/oEyeVec.z);
pos.w = 1.0;
pos = modelview_matrix*pos;
- calcAtmospherics(pos.xyz);
-
+ calcAtmospherics(view.xyz);
//pass wave parameters to pixel shader
vec2 bigWave = (v.xy) * vec2(0.04,0.04) + d1 * time * 0.055;
diff --git a/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl b/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl
index f520f301d9..f520f301d9 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/alphamaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/alphamaskV.glsl b/indra/newview/app_settings/shaders/class1/interface/alphamaskV.glsl
index 3580d1f27b..3580d1f27b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/alphamaskV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/alphamaskV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/clipF.glsl b/indra/newview/app_settings/shaders/class1/interface/clipF.glsl
index ac2bc8703b..ac2bc8703b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/clipF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/clipF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/clipV.glsl b/indra/newview/app_settings/shaders/class1/interface/clipV.glsl
index e376b25a71..e376b25a71 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/clipV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/clipV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl b/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl
index a96d04cc39..a96d04cc39 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/customalphaF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/customalphaV.glsl b/indra/newview/app_settings/shaders/class1/interface/customalphaV.glsl
index 890474d6d8..890474d6d8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/customalphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/customalphaV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/debugF.glsl b/indra/newview/app_settings/shaders/class1/interface/debugF.glsl
index 67c6baddbb..67c6baddbb 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/debugF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/debugF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/debugV.glsl b/indra/newview/app_settings/shaders/class1/interface/debugV.glsl
index f4d704577a..f4d704577a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/debugV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/debugV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
index ed803de277..ed803de277 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
index 59520bb99f..59520bb99f 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAV.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAV.glsl
index 058f3b1b82..058f3b1b82 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineV.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineV.glsl
index f7970b7f78..f7970b7f78 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
index 6cc9bbbea2..6cc9bbbea2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
index 9bf7b60eb7..9bf7b60eb7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/occlusionCubeV.glsl b/indra/newview/app_settings/shaders/class1/interface/occlusionCubeV.glsl
index 5c479d27a9..5c479d27a9 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/occlusionCubeV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/occlusionCubeV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl b/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl
index db130e456c..db130e456c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/occlusionF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/occlusionV.glsl b/indra/newview/app_settings/shaders/class1/interface/occlusionV.glsl
index c26fa08ddc..c26fa08ddc 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/occlusionV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/occlusionV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl
index 415181126b..415181126b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorV.glsl b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorV.glsl
index 6b9986c8d7..6b9986c8d7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/onetexturenocolorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/pathfindingF.glsl b/indra/newview/app_settings/shaders/class1/interface/pathfindingF.glsl
index 7379360e17..7379360e17 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/pathfindingF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/pathfindingF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/pathfindingNoNormalV.glsl b/indra/newview/app_settings/shaders/class1/interface/pathfindingNoNormalV.glsl
index 19fa607307..19fa607307 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/pathfindingNoNormalV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/pathfindingNoNormalV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/pathfindingV.glsl b/indra/newview/app_settings/shaders/class1/interface/pathfindingV.glsl
index 91f252cf1e..91f252cf1e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/pathfindingV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/pathfindingV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl
index 67dc500493..67dc500493 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl
index c58f9dfdaf..c58f9dfdaf 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl b/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl
index 772bb374e8..772bb374e8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/splattexturerectF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl b/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl
index 641d670c26..641d670c26 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl b/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl
index 95679e93e7..95679e93e7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/twotextureaddF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/twotextureaddV.glsl b/indra/newview/app_settings/shaders/class1/interface/twotextureaddV.glsl
index 3c2f297f7f..3c2f297f7f 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/twotextureaddV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/twotextureaddV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/uiF.glsl b/indra/newview/app_settings/shaders/class1/interface/uiF.glsl
index 299bfb72aa..299bfb72aa 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/uiF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/uiF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/interface/uiV.glsl b/indra/newview/app_settings/shaders/class1/interface/uiV.glsl
index 220dafef25..220dafef25 100644..100755
--- a/indra/newview/app_settings/shaders/class1/interface/uiV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/uiV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
index cf29939cb2..cf29939cb2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
index 4070d41f47..4070d41f47 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
index d6ebfcb825..d6ebfcb825 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl
index 6c34643aab..6c34643aab 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
index 2ff7f795b0..2ff7f795b0 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl
index f4477bd29a..f4477bd29a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl
index 2738ff8947..2738ff8947 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
index 777c8b45bb..777c8b45bb 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
index 4fa3b1d939..4fa3b1d939 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
index 58984a4263..58984a4263 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
index a39b7205d7..a39b7205d7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl
index 99a6fe85fe..9c82056fd7 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl
@@ -31,7 +31,7 @@ out vec4 frag_color;
uniform float minimum_alpha;
-vec4 diffuseLookup(vec2 texcoord);
+/* vec4 diffuseLookup(vec2 texcoord); */
vec3 fullbrightAtmosTransport(vec3 light);
vec4 applyWaterFog(vec4 color);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
index df182168f3..d3dacf9bc4 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
@@ -32,7 +32,7 @@ out vec4 frag_color;
VARYING vec4 vertex_color;
VARYING vec2 vary_texcoord0;
-vec4 diffuseLookup(vec2 texcoord);
+/* vec4 diffuseLookup(vec2 texcoord); */
vec3 fullbrightAtmosTransport(vec3 light);
vec4 applyWaterFog(vec4 color);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl
index 63f92a8844..63f92a8844 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl
index 0e68091e7c..0e68091e7c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
index 85cddc647d..85cddc647d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
index a9288b3df6..a9288b3df6 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
index 0aca768021..0aca768021 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
index 52e3b2ad02..52e3b2ad02 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
index 474d5ea496..474d5ea496 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
index d2a4c47aac..d2a4c47aac 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
index f3bd662364..f3bd662364 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
index 24bf9b3cee..24bf9b3cee 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
index 8045809b82..8045809b82 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl
index b68240ba0d..b68240ba0d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl
index da3b20012d..da3b20012d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
index 00609e93cd..00609e93cd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl
index 13ecb7a636..13ecb7a636 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
index 7059ff31ae..7059ff31ae 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
index 41288c21c1..41288c21c1 100644..100755
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl b/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl
index d55f0db530..d55f0db530 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/bumpF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/bumpV.glsl b/indra/newview/app_settings/shaders/class1/objects/bumpV.glsl
index a7738087dc..a7738087dc 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/bumpV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/bumpV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/emissiveSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/objects/emissiveSkinnedV.glsl
index 8494ffba52..8494ffba52 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/emissiveSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/emissiveSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl b/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
index e984deb0c8..e984deb0c8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/emissiveV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
index a54c0caf81..a54c0caf81 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
index 5d6f14230c..5d6f14230c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightNoColorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
index b312665032..b312665032 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinySkinnedV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinySkinnedV.glsl
index 79b552ee1a..79b552ee1a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinySkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinySkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
index 34bd8d445a..34bd8d445a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
index e1f3919907..e1f3919907 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightSkinnedV.glsl
index eff75435a9..eff75435a9 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
index fc20d3270e..fc20d3270e 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
index 5d0ea0a8dd..5d0ea0a8dd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl b/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl
index add437d144..add437d144 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/impostorF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/impostorV.glsl b/indra/newview/app_settings/shaders/class1/objects/impostorV.glsl
index e90dbb115a..e90dbb115a 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/impostorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/impostorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/indexedTextureF.glsl b/indra/newview/app_settings/shaders/class1/objects/indexedTextureF.glsl
index 254c1d4fc2..254c1d4fc2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/indexedTextureF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/indexedTextureF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl b/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl
index ca29bf3143..ca29bf3143 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/indexedTextureV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/nonindexedTextureV.glsl b/indra/newview/app_settings/shaders/class1/objects/nonindexedTextureV.glsl
index 80ea286ac0..80ea286ac0 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/nonindexedTextureV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/nonindexedTextureV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/previewF.glsl b/indra/newview/app_settings/shaders/class1/objects/previewF.glsl
index 284da3d0ac..284da3d0ac 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/previewF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/previewF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/previewV.glsl b/indra/newview/app_settings/shaders/class1/objects/previewV.glsl
index 7f3f84398b..7f3f84398b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/previewV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/previewV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
index f8f88e2577..f8f88e2577 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinySimpleSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/objects/shinySimpleSkinnedV.glsl
index 591d6fc5c9..591d6fc5c9 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/shinySimpleSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinySimpleSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
index fdb3453cc5..fdb3453cc5 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
index 1e72e23eef..1e72e23eef 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
index 29a2ce617b..29a2ce617b 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleNoColorV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleNoColorV.glsl
index 0be52a52af..0be52a52af 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleNoColorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleNoColorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
index cb80697d15..cb80697d15 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleNonIndexedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleSkinnedV.glsl
index 1c6e53b187..1c6e53b187 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
index d4dee78793..d4dee78793 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleTexGenV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
index 37a20383e2..37a20383e2 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
index 2e87ac5bbc..2e87ac5bbc 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/objects/treeV.glsl b/indra/newview/app_settings/shaders/class1/objects/treeV.glsl
index fa01a27ec0..fa01a27ec0 100644..100755
--- a/indra/newview/app_settings/shaders/class1/objects/treeV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/treeV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl b/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
index 44f1aa34a0..44f1aa34a0 100644..100755
--- a/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
+++ b/indra/newview/app_settings/shaders/class1/transform/binormalV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/transform/colorV.glsl b/indra/newview/app_settings/shaders/class1/transform/colorV.glsl
index 59c4a7d895..59c4a7d895 100644..100755
--- a/indra/newview/app_settings/shaders/class1/transform/colorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/transform/colorV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/transform/normalV.glsl b/indra/newview/app_settings/shaders/class1/transform/normalV.glsl
index a213aa0ae8..a213aa0ae8 100644..100755
--- a/indra/newview/app_settings/shaders/class1/transform/normalV.glsl
+++ b/indra/newview/app_settings/shaders/class1/transform/normalV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/transform/positionV.glsl b/indra/newview/app_settings/shaders/class1/transform/positionV.glsl
index 01eed18de4..01eed18de4 100644..100755
--- a/indra/newview/app_settings/shaders/class1/transform/positionV.glsl
+++ b/indra/newview/app_settings/shaders/class1/transform/positionV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl b/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
index 0e074f3cec..0e074f3cec 100644..100755
--- a/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
+++ b/indra/newview/app_settings/shaders/class1/transform/texcoordV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
index aacc503e13..aacc503e13 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
index 6ff860362c..6ff860362c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
index 76d7d5059d..76d7d5059d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
index 8bdae328bd..8bdae328bd 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
index 8ec9ae617c..8ec9ae617c 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
index 636d4af006..636d4af006 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
index 8afcc20f6d..8afcc20f6d 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
index 62f4e51449..62f4e51449 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
diff --git a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
index 7c95ecdb14..7c95ecdb14 100644..100755
--- a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl b/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
index 5af9f5c902..5af9f5c902 100644..100755
--- a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
+++ b/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
index 12706f130b..12706f130b 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl
index 228dc104ac..228dc104ac 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl
index c3950a10e1..c3950a10e1 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl
index 9629cfe824..9629cfe824 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
index 1586aab0f2..1586aab0f2 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
index 44aaa98b97..44aaa98b97 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
index 5621e47ab7..5621e47ab7 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index 9df9d75905..9df9d75905 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
index c840d72784..c840d72784 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
index 6d6ad6d565..6d6ad6d565 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
index 890486c4b1..890486c4b1 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl
index 2dcd3d656f..2dcd3d656f 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
index bc5eb5181d..bc5eb5181d 100644..100755
--- a/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
index 3acf9fe883..3acf9fe883 100644..100755
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
index c9987ef3b9..c9987ef3b9 100644..100755
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
index fea3cbf69b..fea3cbf69b 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
index 62a034ce05..62a034ce05 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
index da3d922017..da3d922017 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
index 765b0927c3..765b0927c3 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
index 99dbee15ee..99dbee15ee 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
index 163ef26444..163ef26444 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
index 553f6752e6..553f6752e6 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
index 96c70651b1..96c70651b1 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
index c1dd45cd67..c1dd45cd67 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
index 478373d729..478373d729 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
index e2a2367626..e2a2367626 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
index 3788ddaf2d..3788ddaf2d 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
diff --git a/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
index 8a8e4cb0f6..8a8e4cb0f6 100644..100755
--- a/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
diff --git a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl b/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
index 721054b5ad..721054b5ad 100644..100755
--- a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
diff --git a/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
index e043ac873e..e043ac873e 100644..100755
--- a/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
diff --git a/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
index dadff40933..dadff40933 100644..100755
--- a/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
diff --git a/indra/newview/app_settings/shaders/shader_hierarchy.txt b/indra/newview/app_settings/shaders/shader_hierarchy.txt
index d8bbf69b38..d8bbf69b38 100644..100755
--- a/indra/newview/app_settings/shaders/shader_hierarchy.txt
+++ b/indra/newview/app_settings/shaders/shader_hierarchy.txt
diff --git a/indra/newview/app_settings/static_data.db2 b/indra/newview/app_settings/static_data.db2
index f85aa81601..f85aa81601 100644..100755
--- a/indra/newview/app_settings/static_data.db2
+++ b/indra/newview/app_settings/static_data.db2
Binary files differ
diff --git a/indra/newview/app_settings/static_index.db2 b/indra/newview/app_settings/static_index.db2
index a5440f96f2..a5440f96f2 100644..100755
--- a/indra/newview/app_settings/static_index.db2
+++ b/indra/newview/app_settings/static_index.db2
Binary files differ
diff --git a/indra/newview/app_settings/std_bump.ini b/indra/newview/app_settings/std_bump.ini
index 561e04c33c..561e04c33c 100644..100755
--- a/indra/newview/app_settings/std_bump.ini
+++ b/indra/newview/app_settings/std_bump.ini
diff --git a/indra/newview/app_settings/toolbars.xml b/indra/newview/app_settings/toolbars.xml
index 29c019719d..29c019719d 100644..100755
--- a/indra/newview/app_settings/toolbars.xml
+++ b/indra/newview/app_settings/toolbars.xml
diff --git a/indra/newview/app_settings/trees.xml b/indra/newview/app_settings/trees.xml
index 213ee85fc7..213ee85fc7 100644..100755
--- a/indra/newview/app_settings/trees.xml
+++ b/indra/newview/app_settings/trees.xml
diff --git a/indra/newview/app_settings/ultra_graphics.xml b/indra/newview/app_settings/ultra_graphics.xml
index 71459e5470..71459e5470 100644..100755
--- a/indra/newview/app_settings/ultra_graphics.xml
+++ b/indra/newview/app_settings/ultra_graphics.xml
diff --git a/indra/newview/app_settings/viewerart.xml b/indra/newview/app_settings/viewerart.xml
index d56efeae09..d56efeae09 100644..100755
--- a/indra/newview/app_settings/viewerart.xml
+++ b/indra/newview/app_settings/viewerart.xml
diff --git a/indra/newview/app_settings/windlight/clouds2.tga b/indra/newview/app_settings/windlight/clouds2.tga
index c95ce7fec4..c95ce7fec4 100644..100755
--- a/indra/newview/app_settings/windlight/clouds2.tga
+++ b/indra/newview/app_settings/windlight/clouds2.tga
Binary files differ
diff --git a/indra/newview/app_settings/windlight/days/Colder%20Tones.xml b/indra/newview/app_settings/windlight/days/Colder%20Tones.xml
index 63d0b099e1..63d0b099e1 100644..100755
--- a/indra/newview/app_settings/windlight/days/Colder%20Tones.xml
+++ b/indra/newview/app_settings/windlight/days/Colder%20Tones.xml
diff --git a/indra/newview/app_settings/windlight/days/Default.xml b/indra/newview/app_settings/windlight/days/Default.xml
index 3d3afd5075..3d3afd5075 100644..100755
--- a/indra/newview/app_settings/windlight/days/Default.xml
+++ b/indra/newview/app_settings/windlight/days/Default.xml
diff --git a/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml b/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml
index f75b52e6ed..f75b52e6ed 100644..100755
--- a/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml
+++ b/indra/newview/app_settings/windlight/days/Dynamic%20Richness.xml
diff --git a/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml b/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml
index 6dc1ba9f4d..6dc1ba9f4d 100644..100755
--- a/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml
+++ b/indra/newview/app_settings/windlight/days/Pirate%27s%20Dream.xml
diff --git a/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml b/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml
index 302af5a9ba..302af5a9ba 100644..100755
--- a/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml
+++ b/indra/newview/app_settings/windlight/days/Psycho%20Strobe%21.xml
diff --git a/indra/newview/app_settings/windlight/days/Tropicalia.xml b/indra/newview/app_settings/windlight/days/Tropicalia.xml
index 89a56d4a13..89a56d4a13 100644..100755
--- a/indra/newview/app_settings/windlight/days/Tropicalia.xml
+++ b/indra/newview/app_settings/windlight/days/Tropicalia.xml
diff --git a/indra/newview/app_settings/windlight/days/Weird-O.xml b/indra/newview/app_settings/windlight/days/Weird-O.xml
index 1e312f2464..1e312f2464 100644..100755
--- a/indra/newview/app_settings/windlight/days/Weird-O.xml
+++ b/indra/newview/app_settings/windlight/days/Weird-O.xml
diff --git a/indra/newview/app_settings/windlight/postprocesseffects.xml b/indra/newview/app_settings/windlight/postprocesseffects.xml
index 60fbfd3483..60fbfd3483 100644..100755
--- a/indra/newview/app_settings/windlight/postprocesseffects.xml
+++ b/indra/newview/app_settings/windlight/postprocesseffects.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D12AM.xml b/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
index 0aba31214a..0aba31214a 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D12PM.xml b/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
index 119b3e1418..119b3e1418 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D3AM.xml b/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
index f790d3d961..f790d3d961 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D3PM.xml b/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
index ec9706773e..ec9706773e 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D6AM.xml b/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
index bbc7aeec59..bbc7aeec59 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D6PM.xml b/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
index ebf08e1a3f..ebf08e1a3f 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D9AM.xml b/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
index 413e3a27d9..413e3a27d9 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
diff --git a/indra/newview/app_settings/windlight/skies/A%2D9PM.xml b/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
index 292f6713b7..292f6713b7 100644..100755
--- a/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
+++ b/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
diff --git a/indra/newview/app_settings/windlight/skies/Barcelona.xml b/indra/newview/app_settings/windlight/skies/Barcelona.xml
index ea9cab8fbb..ea9cab8fbb 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Barcelona.xml
+++ b/indra/newview/app_settings/windlight/skies/Barcelona.xml
diff --git a/indra/newview/app_settings/windlight/skies/Blizzard.xml b/indra/newview/app_settings/windlight/skies/Blizzard.xml
index d17d2790a8..d17d2790a8 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Blizzard.xml
+++ b/indra/newview/app_settings/windlight/skies/Blizzard.xml
diff --git a/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml b/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
index 570f059961..570f059961 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
+++ b/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
diff --git a/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml b/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
index 4925b29eea..4925b29eea 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
+++ b/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
diff --git a/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml b/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
index f4736cf4c6..f4736cf4c6 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
+++ b/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
diff --git a/indra/newview/app_settings/windlight/skies/Default.xml b/indra/newview/app_settings/windlight/skies/Default.xml
index 13a2c75046..13a2c75046 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Default.xml
+++ b/indra/newview/app_settings/windlight/skies/Default.xml
diff --git a/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml b/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
index b2a611163d..b2a611163d 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
+++ b/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
diff --git a/indra/newview/app_settings/windlight/skies/Fine%20Day.xml b/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
index e053815be1..e053815be1 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
+++ b/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
diff --git a/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml b/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
index 8576ec125c..8576ec125c 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
+++ b/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
diff --git a/indra/newview/app_settings/windlight/skies/Foggy.xml b/indra/newview/app_settings/windlight/skies/Foggy.xml
index cb7395d589..cb7395d589 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Foggy.xml
+++ b/indra/newview/app_settings/windlight/skies/Foggy.xml
diff --git a/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml b/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
index 32be0d25e6..32be0d25e6 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
+++ b/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
diff --git a/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml b/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
index ae16b2d135..ae16b2d135 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
+++ b/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
diff --git a/indra/newview/app_settings/windlight/skies/Gelatto.xml b/indra/newview/app_settings/windlight/skies/Gelatto.xml
index 66b3d317b8..66b3d317b8 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Gelatto.xml
+++ b/indra/newview/app_settings/windlight/skies/Gelatto.xml
diff --git a/indra/newview/app_settings/windlight/skies/Ghost.xml b/indra/newview/app_settings/windlight/skies/Ghost.xml
index 447202ed51..447202ed51 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Ghost.xml
+++ b/indra/newview/app_settings/windlight/skies/Ghost.xml
diff --git a/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml b/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
index 098844e16e..098844e16e 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
+++ b/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midday%201.xml b/indra/newview/app_settings/windlight/skies/Midday%201.xml
index 13a2c75046..13a2c75046 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midday%201.xml
+++ b/indra/newview/app_settings/windlight/skies/Midday%201.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midday%202.xml b/indra/newview/app_settings/windlight/skies/Midday%202.xml
index 04f2ba85ee..04f2ba85ee 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midday%202.xml
+++ b/indra/newview/app_settings/windlight/skies/Midday%202.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midday%203.xml b/indra/newview/app_settings/windlight/skies/Midday%203.xml
index a23dcab60b..a23dcab60b 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midday%203.xml
+++ b/indra/newview/app_settings/windlight/skies/Midday%203.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midday%204.xml b/indra/newview/app_settings/windlight/skies/Midday%204.xml
index 255e314e0f..255e314e0f 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midday%204.xml
+++ b/indra/newview/app_settings/windlight/skies/Midday%204.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midday.xml b/indra/newview/app_settings/windlight/skies/Midday.xml
index 119b3e1418..119b3e1418 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midday.xml
+++ b/indra/newview/app_settings/windlight/skies/Midday.xml
diff --git a/indra/newview/app_settings/windlight/skies/Midnight.xml b/indra/newview/app_settings/windlight/skies/Midnight.xml
index 0aba31214a..0aba31214a 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Midnight.xml
+++ b/indra/newview/app_settings/windlight/skies/Midnight.xml
diff --git a/indra/newview/app_settings/windlight/skies/Night.xml b/indra/newview/app_settings/windlight/skies/Night.xml
index c4938949ce..c4938949ce 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Night.xml
+++ b/indra/newview/app_settings/windlight/skies/Night.xml
diff --git a/indra/newview/app_settings/windlight/skies/Pirate.xml b/indra/newview/app_settings/windlight/skies/Pirate.xml
index dcb9c27ba4..dcb9c27ba4 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Pirate.xml
+++ b/indra/newview/app_settings/windlight/skies/Pirate.xml
diff --git a/indra/newview/app_settings/windlight/skies/Purple.xml b/indra/newview/app_settings/windlight/skies/Purple.xml
index 0e9ac3f36e..0e9ac3f36e 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Purple.xml
+++ b/indra/newview/app_settings/windlight/skies/Purple.xml
diff --git a/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml b/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
index 70df6b0e60..70df6b0e60 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
+++ b/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
diff --git a/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml b/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
index 4c44a1bdb2..4c44a1bdb2 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
+++ b/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
diff --git a/indra/newview/app_settings/windlight/skies/Sunrise.xml b/indra/newview/app_settings/windlight/skies/Sunrise.xml
index bbc7aeec59..bbc7aeec59 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Sunrise.xml
+++ b/indra/newview/app_settings/windlight/skies/Sunrise.xml
diff --git a/indra/newview/app_settings/windlight/skies/Sunset.xml b/indra/newview/app_settings/windlight/skies/Sunset.xml
index ebf08e1a3f..ebf08e1a3f 100644..100755
--- a/indra/newview/app_settings/windlight/skies/Sunset.xml
+++ b/indra/newview/app_settings/windlight/skies/Sunset.xml
diff --git a/indra/newview/app_settings/windlight/water/Default.xml b/indra/newview/app_settings/windlight/water/Default.xml
index dce4148c7d..dce4148c7d 100644..100755
--- a/indra/newview/app_settings/windlight/water/Default.xml
+++ b/indra/newview/app_settings/windlight/water/Default.xml
diff --git a/indra/newview/app_settings/windlight/water/Glassy.xml b/indra/newview/app_settings/windlight/water/Glassy.xml
index 01183e4687..01183e4687 100644..100755
--- a/indra/newview/app_settings/windlight/water/Glassy.xml
+++ b/indra/newview/app_settings/windlight/water/Glassy.xml
diff --git a/indra/newview/app_settings/windlight/water/Murky.xml b/indra/newview/app_settings/windlight/water/Murky.xml
index 1d9e022422..1d9e022422 100644..100755
--- a/indra/newview/app_settings/windlight/water/Murky.xml
+++ b/indra/newview/app_settings/windlight/water/Murky.xml
diff --git a/indra/newview/app_settings/windlight/water/Pond.xml b/indra/newview/app_settings/windlight/water/Pond.xml
index 59e3c441ea..59e3c441ea 100644..100755
--- a/indra/newview/app_settings/windlight/water/Pond.xml
+++ b/indra/newview/app_settings/windlight/water/Pond.xml
diff --git a/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml b/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
index 6dbc4e8719..6dbc4e8719 100644..100755
--- a/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
+++ b/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
diff --git a/indra/newview/app_settings/windlight/water/Second%20Plague.xml b/indra/newview/app_settings/windlight/water/Second%20Plague.xml
index 137483ab64..137483ab64 100644..100755
--- a/indra/newview/app_settings/windlight/water/Second%20Plague.xml
+++ b/indra/newview/app_settings/windlight/water/Second%20Plague.xml
diff --git a/indra/newview/app_settings/windlight/water/Valdez.xml b/indra/newview/app_settings/windlight/water/Valdez.xml
index eb70a142e0..eb70a142e0 100644..100755
--- a/indra/newview/app_settings/windlight/water/Valdez.xml
+++ b/indra/newview/app_settings/windlight/water/Valdez.xml
diff --git a/indra/newview/build_win32_appConfig.py b/indra/newview/build_win32_appConfig.py
index 9fdceee1be..9fdceee1be 100644..100755
--- a/indra/newview/build_win32_appConfig.py
+++ b/indra/newview/build_win32_appConfig.py
diff --git a/indra/newview/character/attentions.xml b/indra/newview/character/attentions.xml
index be9a2b28fc..be9a2b28fc 100644..100755
--- a/indra/newview/character/attentions.xml
+++ b/indra/newview/character/attentions.xml
diff --git a/indra/newview/character/attentionsN.xml b/indra/newview/character/attentionsN.xml
index e7d9bb6a16..e7d9bb6a16 100644..100755
--- a/indra/newview/character/attentionsN.xml
+++ b/indra/newview/character/attentionsN.xml
diff --git a/indra/newview/character/avatar_eye.llm b/indra/newview/character/avatar_eye.llm
index 8c6e74e1de..8c6e74e1de 100644..100755
--- a/indra/newview/character/avatar_eye.llm
+++ b/indra/newview/character/avatar_eye.llm
Binary files differ
diff --git a/indra/newview/character/avatar_eye_1.llm b/indra/newview/character/avatar_eye_1.llm
index 7a3b0d6f28..7a3b0d6f28 100644..100755
--- a/indra/newview/character/avatar_eye_1.llm
+++ b/indra/newview/character/avatar_eye_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_eyelashes.llm b/indra/newview/character/avatar_eyelashes.llm
index 99995b5758..99995b5758 100644..100755
--- a/indra/newview/character/avatar_eyelashes.llm
+++ b/indra/newview/character/avatar_eyelashes.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair.llm b/indra/newview/character/avatar_hair.llm
index df99de8db7..df99de8db7 100644..100755
--- a/indra/newview/character/avatar_hair.llm
+++ b/indra/newview/character/avatar_hair.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair_1.llm b/indra/newview/character/avatar_hair_1.llm
index 6de31fdc23..6de31fdc23 100644..100755
--- a/indra/newview/character/avatar_hair_1.llm
+++ b/indra/newview/character/avatar_hair_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair_2.llm b/indra/newview/character/avatar_hair_2.llm
index 47d02ba9ce..47d02ba9ce 100644..100755
--- a/indra/newview/character/avatar_hair_2.llm
+++ b/indra/newview/character/avatar_hair_2.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair_3.llm b/indra/newview/character/avatar_hair_3.llm
index 107f9e2a53..107f9e2a53 100644..100755
--- a/indra/newview/character/avatar_hair_3.llm
+++ b/indra/newview/character/avatar_hair_3.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair_4.llm b/indra/newview/character/avatar_hair_4.llm
index 1b9a12a0ca..1b9a12a0ca 100644..100755
--- a/indra/newview/character/avatar_hair_4.llm
+++ b/indra/newview/character/avatar_hair_4.llm
Binary files differ
diff --git a/indra/newview/character/avatar_hair_5.llm b/indra/newview/character/avatar_hair_5.llm
index 1b9a12a0ca..1b9a12a0ca 100644..100755
--- a/indra/newview/character/avatar_hair_5.llm
+++ b/indra/newview/character/avatar_hair_5.llm
Binary files differ
diff --git a/indra/newview/character/avatar_head.llm b/indra/newview/character/avatar_head.llm
index 8d8b5e0442..8d8b5e0442 100644..100755
--- a/indra/newview/character/avatar_head.llm
+++ b/indra/newview/character/avatar_head.llm
Binary files differ
diff --git a/indra/newview/character/avatar_head_1.llm b/indra/newview/character/avatar_head_1.llm
index 26291e6584..26291e6584 100644..100755
--- a/indra/newview/character/avatar_head_1.llm
+++ b/indra/newview/character/avatar_head_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_head_2.llm b/indra/newview/character/avatar_head_2.llm
index c2b808b1a6..c2b808b1a6 100644..100755
--- a/indra/newview/character/avatar_head_2.llm
+++ b/indra/newview/character/avatar_head_2.llm
Binary files differ
diff --git a/indra/newview/character/avatar_head_3.llm b/indra/newview/character/avatar_head_3.llm
index a0676b1f1c..a0676b1f1c 100644..100755
--- a/indra/newview/character/avatar_head_3.llm
+++ b/indra/newview/character/avatar_head_3.llm
Binary files differ
diff --git a/indra/newview/character/avatar_head_4.llm b/indra/newview/character/avatar_head_4.llm
index 5035585770..5035585770 100644..100755
--- a/indra/newview/character/avatar_head_4.llm
+++ b/indra/newview/character/avatar_head_4.llm
Binary files differ
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 99dbfcae51..284e9c44b2 100644..100755
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -1084,6 +1084,23 @@
scale="0 0 .5" />
</param_skeleton>
</param>
+
+ <param
+ id="11001"
+ group="0"
+ name="Hover"
+ wearable="shape"
+ edit_group="shape_body"
+ edit_group_order="4"
+ label_min="Lower"
+ label_max="Higher"
+ value_min="-2"
+ value_max="2"
+ value_default="0"
+ camera_distance="2.5">
+ <param_skeleton />
+ </param>
+
</skeleton>
<mesh
@@ -12291,6 +12308,17 @@ render_pass="bump">
<param_driver />
</param>
+ <param
+ id="11000"
+ group="0"
+ name="AppearanceMessage_Version"
+ label="AppearanceMessage Version"
+ value_default="0"
+ value_min="0"
+ value_max="255">
+ <param_driver />
+ </param>
+
</driver_parameters>
<morph_masks>
diff --git a/indra/newview/character/avatar_lower_body.llm b/indra/newview/character/avatar_lower_body.llm
index 0420899739..0420899739 100644..100755
--- a/indra/newview/character/avatar_lower_body.llm
+++ b/indra/newview/character/avatar_lower_body.llm
Binary files differ
diff --git a/indra/newview/character/avatar_lower_body_1.llm b/indra/newview/character/avatar_lower_body_1.llm
index 1394eb848b..1394eb848b 100644..100755
--- a/indra/newview/character/avatar_lower_body_1.llm
+++ b/indra/newview/character/avatar_lower_body_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_lower_body_2.llm b/indra/newview/character/avatar_lower_body_2.llm
index 0da9c1249e..0da9c1249e 100644..100755
--- a/indra/newview/character/avatar_lower_body_2.llm
+++ b/indra/newview/character/avatar_lower_body_2.llm
Binary files differ
diff --git a/indra/newview/character/avatar_lower_body_3.llm b/indra/newview/character/avatar_lower_body_3.llm
index f3c49a1568..f3c49a1568 100644..100755
--- a/indra/newview/character/avatar_lower_body_3.llm
+++ b/indra/newview/character/avatar_lower_body_3.llm
Binary files differ
diff --git a/indra/newview/character/avatar_lower_body_4.llm b/indra/newview/character/avatar_lower_body_4.llm
index e71721063e..e71721063e 100644..100755
--- a/indra/newview/character/avatar_lower_body_4.llm
+++ b/indra/newview/character/avatar_lower_body_4.llm
Binary files differ
diff --git a/indra/newview/character/avatar_skeleton.xml b/indra/newview/character/avatar_skeleton.xml
index 5e73804f2d..5e73804f2d 100644..100755
--- a/indra/newview/character/avatar_skeleton.xml
+++ b/indra/newview/character/avatar_skeleton.xml
diff --git a/indra/newview/character/avatar_skirt.llm b/indra/newview/character/avatar_skirt.llm
index 08ce3d1700..08ce3d1700 100644..100755
--- a/indra/newview/character/avatar_skirt.llm
+++ b/indra/newview/character/avatar_skirt.llm
Binary files differ
diff --git a/indra/newview/character/avatar_skirt_1.llm b/indra/newview/character/avatar_skirt_1.llm
index 88076c321f..88076c321f 100644..100755
--- a/indra/newview/character/avatar_skirt_1.llm
+++ b/indra/newview/character/avatar_skirt_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_skirt_2.llm b/indra/newview/character/avatar_skirt_2.llm
index 73b3effbc6..73b3effbc6 100644..100755
--- a/indra/newview/character/avatar_skirt_2.llm
+++ b/indra/newview/character/avatar_skirt_2.llm
Binary files differ
diff --git a/indra/newview/character/avatar_skirt_3.llm b/indra/newview/character/avatar_skirt_3.llm
index ded546fdea..ded546fdea 100644..100755
--- a/indra/newview/character/avatar_skirt_3.llm
+++ b/indra/newview/character/avatar_skirt_3.llm
Binary files differ
diff --git a/indra/newview/character/avatar_skirt_4.llm b/indra/newview/character/avatar_skirt_4.llm
index b9d5cb945e..b9d5cb945e 100644..100755
--- a/indra/newview/character/avatar_skirt_4.llm
+++ b/indra/newview/character/avatar_skirt_4.llm
Binary files differ
diff --git a/indra/newview/character/avatar_upper_body.llm b/indra/newview/character/avatar_upper_body.llm
index da7d990540..da7d990540 100644..100755
--- a/indra/newview/character/avatar_upper_body.llm
+++ b/indra/newview/character/avatar_upper_body.llm
Binary files differ
diff --git a/indra/newview/character/avatar_upper_body_1.llm b/indra/newview/character/avatar_upper_body_1.llm
index 31e104cc20..31e104cc20 100644..100755
--- a/indra/newview/character/avatar_upper_body_1.llm
+++ b/indra/newview/character/avatar_upper_body_1.llm
Binary files differ
diff --git a/indra/newview/character/avatar_upper_body_2.llm b/indra/newview/character/avatar_upper_body_2.llm
index c1f4199b9c..c1f4199b9c 100644..100755
--- a/indra/newview/character/avatar_upper_body_2.llm
+++ b/indra/newview/character/avatar_upper_body_2.llm
Binary files differ
diff --git a/indra/newview/character/avatar_upper_body_3.llm b/indra/newview/character/avatar_upper_body_3.llm
index 9e89ed8b3e..9e89ed8b3e 100644..100755
--- a/indra/newview/character/avatar_upper_body_3.llm
+++ b/indra/newview/character/avatar_upper_body_3.llm
Binary files differ
diff --git a/indra/newview/character/avatar_upper_body_4.llm b/indra/newview/character/avatar_upper_body_4.llm
index ec836d1dc3..ec836d1dc3 100644..100755
--- a/indra/newview/character/avatar_upper_body_4.llm
+++ b/indra/newview/character/avatar_upper_body_4.llm
Binary files differ
diff --git a/indra/newview/character/blush_alpha.tga b/indra/newview/character/blush_alpha.tga
index 05be7e7e3d..05be7e7e3d 100644..100755
--- a/indra/newview/character/blush_alpha.tga
+++ b/indra/newview/character/blush_alpha.tga
Binary files differ
diff --git a/indra/newview/character/body_skingrain.tga b/indra/newview/character/body_skingrain.tga
index 7264baac14..7264baac14 100644..100755
--- a/indra/newview/character/body_skingrain.tga
+++ b/indra/newview/character/body_skingrain.tga
Binary files differ
diff --git a/indra/newview/character/bodyfreckles_alpha.tga b/indra/newview/character/bodyfreckles_alpha.tga
index d30ab3d122..d30ab3d122 100644..100755
--- a/indra/newview/character/bodyfreckles_alpha.tga
+++ b/indra/newview/character/bodyfreckles_alpha.tga
Binary files differ
diff --git a/indra/newview/character/bump_face_wrinkles.tga b/indra/newview/character/bump_face_wrinkles.tga
index 54bf7a55be..54bf7a55be 100644..100755
--- a/indra/newview/character/bump_face_wrinkles.tga
+++ b/indra/newview/character/bump_face_wrinkles.tga
Binary files differ
diff --git a/indra/newview/character/bump_head_base.tga b/indra/newview/character/bump_head_base.tga
index fa3568573a..fa3568573a 100644..100755
--- a/indra/newview/character/bump_head_base.tga
+++ b/indra/newview/character/bump_head_base.tga
Binary files differ
diff --git a/indra/newview/character/bump_lowerbody_base.tga b/indra/newview/character/bump_lowerbody_base.tga
index 498ea3c721..498ea3c721 100644..100755
--- a/indra/newview/character/bump_lowerbody_base.tga
+++ b/indra/newview/character/bump_lowerbody_base.tga
Binary files differ
diff --git a/indra/newview/character/bump_pants_wrinkles.tga b/indra/newview/character/bump_pants_wrinkles.tga
index cca72415e8..cca72415e8 100644..100755
--- a/indra/newview/character/bump_pants_wrinkles.tga
+++ b/indra/newview/character/bump_pants_wrinkles.tga
Binary files differ
diff --git a/indra/newview/character/bump_shirt_wrinkles.tga b/indra/newview/character/bump_shirt_wrinkles.tga
index 9e0d757a48..9e0d757a48 100644..100755
--- a/indra/newview/character/bump_shirt_wrinkles.tga
+++ b/indra/newview/character/bump_shirt_wrinkles.tga
Binary files differ
diff --git a/indra/newview/character/bump_upperbody_base.tga b/indra/newview/character/bump_upperbody_base.tga
index e57d6352e6..e57d6352e6 100644..100755
--- a/indra/newview/character/bump_upperbody_base.tga
+++ b/indra/newview/character/bump_upperbody_base.tga
Binary files differ
diff --git a/indra/newview/character/checkerboard.tga b/indra/newview/character/checkerboard.tga
index 1950d7403d..1950d7403d 100644..100755
--- a/indra/newview/character/checkerboard.tga
+++ b/indra/newview/character/checkerboard.tga
Binary files differ
diff --git a/indra/newview/character/eyebrows_alpha.tga b/indra/newview/character/eyebrows_alpha.tga
index c363e482e1..c363e482e1 100644..100755
--- a/indra/newview/character/eyebrows_alpha.tga
+++ b/indra/newview/character/eyebrows_alpha.tga
Binary files differ
diff --git a/indra/newview/character/eyeliner_alpha.tga b/indra/newview/character/eyeliner_alpha.tga
index 1611eb3355..1611eb3355 100644..100755
--- a/indra/newview/character/eyeliner_alpha.tga
+++ b/indra/newview/character/eyeliner_alpha.tga
Binary files differ
diff --git a/indra/newview/character/eyeshadow_inner_alpha.tga b/indra/newview/character/eyeshadow_inner_alpha.tga
index 37d7919395..37d7919395 100644..100755
--- a/indra/newview/character/eyeshadow_inner_alpha.tga
+++ b/indra/newview/character/eyeshadow_inner_alpha.tga
Binary files differ
diff --git a/indra/newview/character/eyeshadow_outer_alpha.tga b/indra/newview/character/eyeshadow_outer_alpha.tga
index 00eef9d9f7..00eef9d9f7 100644..100755
--- a/indra/newview/character/eyeshadow_outer_alpha.tga
+++ b/indra/newview/character/eyeshadow_outer_alpha.tga
Binary files differ
diff --git a/indra/newview/character/eyewhite.tga b/indra/newview/character/eyewhite.tga
index a720496988..a720496988 100644..100755
--- a/indra/newview/character/eyewhite.tga
+++ b/indra/newview/character/eyewhite.tga
Binary files differ
diff --git a/indra/newview/character/facehair_chincurtains_alpha.tga b/indra/newview/character/facehair_chincurtains_alpha.tga
index b10397063c..b10397063c 100644..100755
--- a/indra/newview/character/facehair_chincurtains_alpha.tga
+++ b/indra/newview/character/facehair_chincurtains_alpha.tga
Binary files differ
diff --git a/indra/newview/character/facehair_moustache_alpha.tga b/indra/newview/character/facehair_moustache_alpha.tga
index 4068c4f2b1..4068c4f2b1 100644..100755
--- a/indra/newview/character/facehair_moustache_alpha.tga
+++ b/indra/newview/character/facehair_moustache_alpha.tga
Binary files differ
diff --git a/indra/newview/character/facehair_sideburns_alpha.tga b/indra/newview/character/facehair_sideburns_alpha.tga
index acddc2d9bd..acddc2d9bd 100644..100755
--- a/indra/newview/character/facehair_sideburns_alpha.tga
+++ b/indra/newview/character/facehair_sideburns_alpha.tga
Binary files differ
diff --git a/indra/newview/character/facehair_soulpatch_alpha.tga b/indra/newview/character/facehair_soulpatch_alpha.tga
index 687091a29f..687091a29f 100644..100755
--- a/indra/newview/character/facehair_soulpatch_alpha.tga
+++ b/indra/newview/character/facehair_soulpatch_alpha.tga
Binary files differ
diff --git a/indra/newview/character/freckles_alpha.tga b/indra/newview/character/freckles_alpha.tga
index a9a4ec0735..a9a4ec0735 100644..100755
--- a/indra/newview/character/freckles_alpha.tga
+++ b/indra/newview/character/freckles_alpha.tga
Binary files differ
diff --git a/indra/newview/character/genepool.xml b/indra/newview/character/genepool.xml
index 52300c2bab..52300c2bab 100644..100755
--- a/indra/newview/character/genepool.xml
+++ b/indra/newview/character/genepool.xml
diff --git a/indra/newview/character/glove_length_alpha.tga b/indra/newview/character/glove_length_alpha.tga
index db89ad57e7..db89ad57e7 100644..100755
--- a/indra/newview/character/glove_length_alpha.tga
+++ b/indra/newview/character/glove_length_alpha.tga
Binary files differ
diff --git a/indra/newview/character/gloves_fingers_alpha.tga b/indra/newview/character/gloves_fingers_alpha.tga
index dba2eec277..dba2eec277 100644..100755
--- a/indra/newview/character/gloves_fingers_alpha.tga
+++ b/indra/newview/character/gloves_fingers_alpha.tga
Binary files differ
diff --git a/indra/newview/character/head_alpha.tga b/indra/newview/character/head_alpha.tga
index 8164525353..8164525353 100644..100755
--- a/indra/newview/character/head_alpha.tga
+++ b/indra/newview/character/head_alpha.tga
Binary files differ
diff --git a/indra/newview/character/head_color.tga b/indra/newview/character/head_color.tga
index 74b1b3078b..74b1b3078b 100644..100755
--- a/indra/newview/character/head_color.tga
+++ b/indra/newview/character/head_color.tga
Binary files differ
diff --git a/indra/newview/character/head_hair.tga b/indra/newview/character/head_hair.tga
index 5321f35204..5321f35204 100644..100755
--- a/indra/newview/character/head_hair.tga
+++ b/indra/newview/character/head_hair.tga
Binary files differ
diff --git a/indra/newview/character/head_highlights_alpha.tga b/indra/newview/character/head_highlights_alpha.tga
index 8dc5239f97..8dc5239f97 100644..100755
--- a/indra/newview/character/head_highlights_alpha.tga
+++ b/indra/newview/character/head_highlights_alpha.tga
Binary files differ
diff --git a/indra/newview/character/head_shading_alpha.tga b/indra/newview/character/head_shading_alpha.tga
index e8ea490109..e8ea490109 100644..100755
--- a/indra/newview/character/head_shading_alpha.tga
+++ b/indra/newview/character/head_shading_alpha.tga
Binary files differ
diff --git a/indra/newview/character/head_skingrain.tga b/indra/newview/character/head_skingrain.tga
index b42dee0809..b42dee0809 100644..100755
--- a/indra/newview/character/head_skingrain.tga
+++ b/indra/newview/character/head_skingrain.tga
Binary files differ
diff --git a/indra/newview/character/jacket_length_lower_alpha.tga b/indra/newview/character/jacket_length_lower_alpha.tga
index 722bc192a8..722bc192a8 100644..100755
--- a/indra/newview/character/jacket_length_lower_alpha.tga
+++ b/indra/newview/character/jacket_length_lower_alpha.tga
Binary files differ
diff --git a/indra/newview/character/jacket_length_upper_alpha.tga b/indra/newview/character/jacket_length_upper_alpha.tga
index e9db7e7b1f..e9db7e7b1f 100644..100755
--- a/indra/newview/character/jacket_length_upper_alpha.tga
+++ b/indra/newview/character/jacket_length_upper_alpha.tga
Binary files differ
diff --git a/indra/newview/character/jacket_open_lower_alpha.tga b/indra/newview/character/jacket_open_lower_alpha.tga
index db0c2fb0e3..db0c2fb0e3 100644..100755
--- a/indra/newview/character/jacket_open_lower_alpha.tga
+++ b/indra/newview/character/jacket_open_lower_alpha.tga
Binary files differ
diff --git a/indra/newview/character/jacket_open_upper_alpha.tga b/indra/newview/character/jacket_open_upper_alpha.tga
index 71b8a0b805..71b8a0b805 100644..100755
--- a/indra/newview/character/jacket_open_upper_alpha.tga
+++ b/indra/newview/character/jacket_open_upper_alpha.tga
Binary files differ
diff --git a/indra/newview/character/lipgloss_alpha.tga b/indra/newview/character/lipgloss_alpha.tga
index 78ceecaf85..78ceecaf85 100644..100755
--- a/indra/newview/character/lipgloss_alpha.tga
+++ b/indra/newview/character/lipgloss_alpha.tga
Binary files differ
diff --git a/indra/newview/character/lips_mask.tga b/indra/newview/character/lips_mask.tga
index ae1401c006..ae1401c006 100644..100755
--- a/indra/newview/character/lips_mask.tga
+++ b/indra/newview/character/lips_mask.tga
Binary files differ
diff --git a/indra/newview/character/lipstick_alpha.tga b/indra/newview/character/lipstick_alpha.tga
index 2795f1bd40..2795f1bd40 100644..100755
--- a/indra/newview/character/lipstick_alpha.tga
+++ b/indra/newview/character/lipstick_alpha.tga
Binary files differ
diff --git a/indra/newview/character/lowerbody_color.tga b/indra/newview/character/lowerbody_color.tga
index a63aa12fca..a63aa12fca 100644..100755
--- a/indra/newview/character/lowerbody_color.tga
+++ b/indra/newview/character/lowerbody_color.tga
Binary files differ
diff --git a/indra/newview/character/lowerbody_highlights_alpha.tga b/indra/newview/character/lowerbody_highlights_alpha.tga
index ae3413ac8b..ae3413ac8b 100644..100755
--- a/indra/newview/character/lowerbody_highlights_alpha.tga
+++ b/indra/newview/character/lowerbody_highlights_alpha.tga
Binary files differ
diff --git a/indra/newview/character/lowerbody_shading_alpha.tga b/indra/newview/character/lowerbody_shading_alpha.tga
index 0242663a7d..0242663a7d 100644..100755
--- a/indra/newview/character/lowerbody_shading_alpha.tga
+++ b/indra/newview/character/lowerbody_shading_alpha.tga
Binary files differ
diff --git a/indra/newview/character/nailpolish_alpha.tga b/indra/newview/character/nailpolish_alpha.tga
index 91af762902..91af762902 100644..100755
--- a/indra/newview/character/nailpolish_alpha.tga
+++ b/indra/newview/character/nailpolish_alpha.tga
Binary files differ
diff --git a/indra/newview/character/pants_length_alpha.tga b/indra/newview/character/pants_length_alpha.tga
index 3c4f21c0f2..3c4f21c0f2 100644..100755
--- a/indra/newview/character/pants_length_alpha.tga
+++ b/indra/newview/character/pants_length_alpha.tga
Binary files differ
diff --git a/indra/newview/character/pants_waist_alpha.tga b/indra/newview/character/pants_waist_alpha.tga
index 35658c0896..35658c0896 100644..100755
--- a/indra/newview/character/pants_waist_alpha.tga
+++ b/indra/newview/character/pants_waist_alpha.tga
Binary files differ
diff --git a/indra/newview/character/rosyface_alpha.tga b/indra/newview/character/rosyface_alpha.tga
index a0c8513da2..a0c8513da2 100644..100755
--- a/indra/newview/character/rosyface_alpha.tga
+++ b/indra/newview/character/rosyface_alpha.tga
Binary files differ
diff --git a/indra/newview/character/rouge_alpha.tga b/indra/newview/character/rouge_alpha.tga
index a0c8513da2..a0c8513da2 100644..100755
--- a/indra/newview/character/rouge_alpha.tga
+++ b/indra/newview/character/rouge_alpha.tga
Binary files differ
diff --git a/indra/newview/character/shirt_bottom_alpha.tga b/indra/newview/character/shirt_bottom_alpha.tga
index 7cce03dbe0..7cce03dbe0 100644..100755
--- a/indra/newview/character/shirt_bottom_alpha.tga
+++ b/indra/newview/character/shirt_bottom_alpha.tga
Binary files differ
diff --git a/indra/newview/character/shirt_collar_alpha.tga b/indra/newview/character/shirt_collar_alpha.tga
index f55f635473..f55f635473 100644..100755
--- a/indra/newview/character/shirt_collar_alpha.tga
+++ b/indra/newview/character/shirt_collar_alpha.tga
Binary files differ
diff --git a/indra/newview/character/shirt_collar_back_alpha.tga b/indra/newview/character/shirt_collar_back_alpha.tga
index 43a6453107..43a6453107 100644..100755
--- a/indra/newview/character/shirt_collar_back_alpha.tga
+++ b/indra/newview/character/shirt_collar_back_alpha.tga
Binary files differ
diff --git a/indra/newview/character/shirt_sleeve_alpha.tga b/indra/newview/character/shirt_sleeve_alpha.tga
index e3b18f4fc6..e3b18f4fc6 100644..100755
--- a/indra/newview/character/shirt_sleeve_alpha.tga
+++ b/indra/newview/character/shirt_sleeve_alpha.tga
Binary files differ
diff --git a/indra/newview/character/shoe_height_alpha.tga b/indra/newview/character/shoe_height_alpha.tga
index d08dd750f3..d08dd750f3 100644..100755
--- a/indra/newview/character/shoe_height_alpha.tga
+++ b/indra/newview/character/shoe_height_alpha.tga
Binary files differ
diff --git a/indra/newview/character/skirt_length_alpha.tga b/indra/newview/character/skirt_length_alpha.tga
index c86799469d..c86799469d 100644..100755
--- a/indra/newview/character/skirt_length_alpha.tga
+++ b/indra/newview/character/skirt_length_alpha.tga
Binary files differ
diff --git a/indra/newview/character/skirt_slit_back_alpha.tga b/indra/newview/character/skirt_slit_back_alpha.tga
index 0e49688b14..0e49688b14 100644..100755
--- a/indra/newview/character/skirt_slit_back_alpha.tga
+++ b/indra/newview/character/skirt_slit_back_alpha.tga
Binary files differ
diff --git a/indra/newview/character/skirt_slit_front_alpha.tga b/indra/newview/character/skirt_slit_front_alpha.tga
index 888bbf71a1..888bbf71a1 100644..100755
--- a/indra/newview/character/skirt_slit_front_alpha.tga
+++ b/indra/newview/character/skirt_slit_front_alpha.tga
Binary files differ
diff --git a/indra/newview/character/skirt_slit_left_alpha.tga b/indra/newview/character/skirt_slit_left_alpha.tga
index 210feac1ea..210feac1ea 100644..100755
--- a/indra/newview/character/skirt_slit_left_alpha.tga
+++ b/indra/newview/character/skirt_slit_left_alpha.tga
Binary files differ
diff --git a/indra/newview/character/skirt_slit_right_alpha.tga b/indra/newview/character/skirt_slit_right_alpha.tga
index ce11c64bf6..ce11c64bf6 100644..100755
--- a/indra/newview/character/skirt_slit_right_alpha.tga
+++ b/indra/newview/character/skirt_slit_right_alpha.tga
Binary files differ
diff --git a/indra/newview/character/underpants_trial_female.tga b/indra/newview/character/underpants_trial_female.tga
index 96bf732351..96bf732351 100644..100755
--- a/indra/newview/character/underpants_trial_female.tga
+++ b/indra/newview/character/underpants_trial_female.tga
Binary files differ
diff --git a/indra/newview/character/underpants_trial_male.tga b/indra/newview/character/underpants_trial_male.tga
index 095695ca1c..095695ca1c 100644..100755
--- a/indra/newview/character/underpants_trial_male.tga
+++ b/indra/newview/character/underpants_trial_male.tga
Binary files differ
diff --git a/indra/newview/character/undershirt_trial_female.tga b/indra/newview/character/undershirt_trial_female.tga
index e17a309531..e17a309531 100644..100755
--- a/indra/newview/character/undershirt_trial_female.tga
+++ b/indra/newview/character/undershirt_trial_female.tga
Binary files differ
diff --git a/indra/newview/character/upperbody_color.tga b/indra/newview/character/upperbody_color.tga
index 85fcc41142..85fcc41142 100644..100755
--- a/indra/newview/character/upperbody_color.tga
+++ b/indra/newview/character/upperbody_color.tga
Binary files differ
diff --git a/indra/newview/character/upperbody_highlights_alpha.tga b/indra/newview/character/upperbody_highlights_alpha.tga
index 2d8102b583..2d8102b583 100644..100755
--- a/indra/newview/character/upperbody_highlights_alpha.tga
+++ b/indra/newview/character/upperbody_highlights_alpha.tga
Binary files differ
diff --git a/indra/newview/character/upperbody_shading_alpha.tga b/indra/newview/character/upperbody_shading_alpha.tga
index b420506b3e..b420506b3e 100644..100755
--- a/indra/newview/character/upperbody_shading_alpha.tga
+++ b/indra/newview/character/upperbody_shading_alpha.tga
Binary files differ
diff --git a/indra/newview/character/upperbodyfreckles_alpha.tga b/indra/newview/character/upperbodyfreckles_alpha.tga
index 76c7ce8849..76c7ce8849 100644..100755
--- a/indra/newview/character/upperbodyfreckles_alpha.tga
+++ b/indra/newview/character/upperbodyfreckles_alpha.tga
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_ARROW.tif b/indra/newview/cursors_mac/UI_CURSOR_ARROW.tif
index a20893b1ee..a20893b1ee 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_ARROW.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_ARROW.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_ARROWDRAG.tif b/indra/newview/cursors_mac/UI_CURSOR_ARROWDRAG.tif
index ab84bfbcc5..ab84bfbcc5 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_ARROWDRAG.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_ARROWDRAG.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_ARROWLOCKED.tif b/indra/newview/cursors_mac/UI_CURSOR_ARROWLOCKED.tif
index 400ae42943..400ae42943 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_ARROWLOCKED.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_ARROWLOCKED.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_GRABLOCKED.tif b/indra/newview/cursors_mac/UI_CURSOR_GRABLOCKED.tif
index 1cae801ee3..1cae801ee3 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_GRABLOCKED.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_GRABLOCKED.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_NO.tif b/indra/newview/cursors_mac/UI_CURSOR_NO.tif
index bc4a7a75e2..bc4a7a75e2 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_NO.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_NO.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_NOLOCKED.tif b/indra/newview/cursors_mac/UI_CURSOR_NOLOCKED.tif
index 62332fc956..62332fc956 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_NOLOCKED.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_NOLOCKED.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING.tif b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING.tif
index ba6f30fa0e..ba6f30fa0e 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END.tif b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END.tif
index 830d5692fd..830d5692fd 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END_ADD.tif b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END_ADD.tif
index e05284214a..e05284214a 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END_ADD.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_END_ADD.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START.tif b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START.tif
index c4822adf64..c4822adf64 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START_ADD.tif b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START_ADD.tif
index 5166af6e05..5166af6e05 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START_ADD.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_PATHFINDING_START_ADD.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_SIZENESW.tif b/indra/newview/cursors_mac/UI_CURSOR_SIZENESW.tif
index de2c28bbbc..de2c28bbbc 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_SIZENESW.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_SIZENESW.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_SIZENS.tif b/indra/newview/cursors_mac/UI_CURSOR_SIZENS.tif
index 2676c78a4f..2676c78a4f 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_SIZENS.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_SIZENS.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_SIZENWSE.tif b/indra/newview/cursors_mac/UI_CURSOR_SIZENWSE.tif
index 33df3392f3..33df3392f3 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_SIZENWSE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_SIZENWSE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_SIZEWE.tif b/indra/newview/cursors_mac/UI_CURSOR_SIZEWE.tif
index 8952054c23..8952054c23 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_SIZEWE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_SIZEWE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif
index f366026c33..f366026c33 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLCAMERA.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLCAMERA.tif
index bbf415a2f1..bbf415a2f1 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLCAMERA.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLCAMERA.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLCREATE.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLCREATE.tif
index 2ab71c8af6..2ab71c8af6 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLCREATE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLCREATE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLFOCUS.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLFOCUS.tif
index db4ca17de9..db4ca17de9 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLFOCUS.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLFOCUS.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLGRAB.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLGRAB.tif
index 366630d6b2..366630d6b2 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLGRAB.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLGRAB.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLLAND.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLLAND.tif
index ad5a9ca06d..ad5a9ca06d 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLLAND.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLLAND.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLMEDIAOPEN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLMEDIAOPEN.tif
index 7c0bcfcbc5..7c0bcfcbc5 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLMEDIAOPEN.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLMEDIAOPEN.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif
index e9e6a20cd9..e9e6a20cd9 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLPAN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLPAN.tif
index 0a89f9bd91..0a89f9bd91 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLPAN.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLPAN.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLPAUSE.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLPAUSE.tif
index 3431887aff..3431887aff 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLPAUSE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLPAUSE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLPICKOBJECT3.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLPICKOBJECT3.tif
index 55317f19aa..55317f19aa 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLPICKOBJECT3.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLPICKOBJECT3.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLPLAY.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLPLAY.tif
index 796bbb78e3..796bbb78e3 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLPLAY.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLPLAY.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLROTATE.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLROTATE.tif
index 98881561cb..98881561cb 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLROTATE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLROTATE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLSCALE.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLSCALE.tif
index 316dd38c69..316dd38c69 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLSCALE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLSCALE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif
index bea3d9d442..bea3d9d442 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLTRANSLATE.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLTRANSLATE.tif
index 0cd06379e8..0cd06379e8 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLTRANSLATE.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLTRANSLATE.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLZOOMIN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLZOOMIN.tif
index 65f3b6de28..65f3b6de28 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_TOOLZOOMIN.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLZOOMIN.tif
Binary files differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_WORKING.tif b/indra/newview/cursors_mac/UI_CURSOR_WORKING.tif
index c49f16a1c4..c49f16a1c4 100644..100755
--- a/indra/newview/cursors_mac/UI_CURSOR_WORKING.tif
+++ b/indra/newview/cursors_mac/UI_CURSOR_WORKING.tif
Binary files differ
diff --git a/indra/newview/da.lproj/language.txt b/indra/newview/da.lproj/language.txt
index 316d25d903..316d25d903 100644..100755
--- a/indra/newview/da.lproj/language.txt
+++ b/indra/newview/da.lproj/language.txt
diff --git a/indra/newview/es.lproj/language.txt b/indra/newview/es.lproj/language.txt
index 6c4381495c..6c4381495c 100644..100755
--- a/indra/newview/es.lproj/language.txt
+++ b/indra/newview/es.lproj/language.txt
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index 4030324ecb..4030324ecb 100644..100755
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index 6d5284c602..6d5284c602 100644..100755
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 1c0d45c11b..1c0d45c11b 100644..100755
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
diff --git a/indra/newview/featuretable_solaris.txt b/indra/newview/featuretable_solaris.txt
index e7cae1abdc..e7cae1abdc 100644..100755
--- a/indra/newview/featuretable_solaris.txt
+++ b/indra/newview/featuretable_solaris.txt
diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt
index 68e09d010e..68e09d010e 100644..100755
--- a/indra/newview/featuretable_xp.txt
+++ b/indra/newview/featuretable_xp.txt
diff --git a/indra/newview/fmod_hidden_symbols.exp b/indra/newview/fmod_hidden_symbols.exp
deleted file mode 100644
index 1e790255bc..0000000000
--- a/indra/newview/fmod_hidden_symbols.exp
+++ /dev/null
@@ -1,240 +0,0 @@
-_CarbonSndPlayDoubleBuffer
-_ConvertFromIeeeExtended
-__book_maptype1_quantvals
-__book_unquantize
-__float32_pack
-__float32_unpack
-__ilog
-__make_words
-_lpc_clear
-_lpc_init
-__vorbis_block_alloc
-__vorbis_block_ripcord
-__vorbis_apply_window
-__vorbis_window_get
-_vorbis_analysis_blockout
-_vorbis_analysis_buffer
-_vorbis_analysis_wrote
-_vorbis_block_clear
-_vorbis_block_init
-_vorbis_dsp_clear
-_vorbis_synthesis_blockin
-_vorbis_synthesis_init
-_vorbis_synthesis_pcmout
-_vorbis_synthesis_read
-_vorbis_packet_blocksize
-_vorbis_synthesis
-_vorbis_book_clear
-_vorbis_book_decode
-_vorbis_book_decodev_add
-_vorbis_book_decodev_set
-_vorbis_book_decodevs_add
-_vorbis_book_decodevv_add
-_vorbis_book_init_decode
-_vorbis_comment_add
-_vorbis_comment_add_tag
-_vorbis_comment_clear
-_vorbis_comment_init
-_vorbis_comment_query
-_vorbis_comment_query_count
-_vorbis_coslook
-_vorbis_fromdBlook
-_vorbis_info_blocksize
-_vorbis_info_clear
-_vorbis_info_init
-_vorbis_invsq2explook
-_vorbis_invsqlook
-_vorbis_lpc_from_curve
-_vorbis_lpc_from_data
-_vorbis_lpc_predict
-_vorbis_lsp_to_curve
-_vorbis_staticbook_clear
-_vorbis_staticbook_destroy
-_vorbis_staticbook_unpack
-_vorbis_synthesis_headerin
-_vorbis_synthesis_lapout
-_vorbis_synthesis_restart
-_vorbis_synthesis_trackonly
-_vorbis_window
-_ogg_packet_clear
-_ogg_page_bos
-_ogg_page_checksum_set
-_ogg_page_continued
-_ogg_page_eos
-_ogg_page_granulepos
-_ogg_page_packets
-_ogg_page_pageno
-_ogg_page_serialno
-_ogg_page_version
-_ogg_stream_reset_serialno
-_ogg_stream_clear
-_ogg_stream_destroy
-_ogg_stream_eos
-_ogg_stream_flush
-_ogg_stream_init
-_ogg_stream_packetout
-_ogg_stream_packetpeek
-_ogg_stream_pagein
-_ogg_stream_pageout
-_ogg_stream_reset
-_ogg_sync_buffer
-_ogg_sync_clear
-_ogg_sync_destroy
-_ogg_sync_init
-_ogg_sync_pageout
-_ogg_sync_pageseek
-_ogg_sync_reset
-_ogg_sync_wrote
-_ov_bitrate
-_ov_bitrate_instant
-_ov_clear
-_ov_comment
-_ov_info
-_ov_open
-_ov_open_callbacks
-_ov_pcm_seek
-_ov_pcm_seek_page
-_ov_pcm_tell
-_ov_pcm_total
-_ov_raw_seek
-_ov_raw_tell
-_ov_raw_total
-_ov_read
-_ov_read_float
-_ov_seekable
-_ov_serialnumber
-_ov_streams
-_ov_test
-_ov_test_callbacks
-_ov_test_open
-_ov_time_seek
-_ov_time_seek_page
-_ov_time_tell
-_ov_time_total
-_ogg_toupper
-_oggpackB_adv
-_oggpackB_adv1
-_oggpackB_bits
-_oggpackB_bytes
-_oggpackB_get_buffer
-_oggpackB_look
-_oggpackB_look1
-_oggpackB_read
-_oggpackB_read1
-_oggpackB_readinit
-_oggpackB_reset
-_oggpack_adv
-_oggpack_adv1
-_oggpack_bits
-_oggpack_bytes
-_oggpack_get_buffer
-_oggpack_look
-_oggpack_look1
-_oggpack_read
-_oggpack_read1
-_oggpack_readinit
-_oggpack_reset
-_ov_crosslap
-_ov_pcm_seek_lap
-_ov_pcm_seek_page_lap
-_ov_raw_seek_lap
-_ov_time_seek_lap
-_ov_time_seek_page_lap
-_II_step_one
-_II_step_two
-_MyRecComp
-_SampleRates
-_Sinfo
-_ValidStepIndex
-__Z11fmodwrapperv
-__Z11fmodwrapperv.eh
-__floor_P
-__mapping_P
-__residue_P
-__ve_envelope_clear
-__ve_envelope_init
-__ve_envelope_mark
-__ve_envelope_search
-__ve_envelope_shift
-__vi_gpsy_free
-__vi_psy_free
-__vorbis_window_init
-__vp_ampmax_decay
-__vp_couple
-__vp_global_free
-__vp_global_look
-__vp_noise_normalize
-__vp_noise_normalize_sort
-__vp_noisemask
-__vp_offset_and_mix
-__vp_psy_clear
-__vp_psy_init
-__vp_quantize_couple_memo
-__vp_quantize_couple_sort
-__vp_remove_floor
-__vp_tonemask
-_alloc_0
-_alloc_1
-_alloc_2
-_alloc_3
-_alloc_4
-_bandInfo
-_cdcallback
-_cdchannel
-_cdmode
-_cdnumtracks
-_cdstream
-_cdtrack
-_drft_backward
-_drft_clear
-_drft_forward
-_drft_init
-_eatwhite
-_floor0_exportbundle
-_floor1_exportbundle
-_gFreeList
-_gNMRecBusy
-_gNMRecPtr
-_gSilenceOnes
-_gSilenceTwos
-_longLimit
-_mapping0_exportbundle
-_mdct_backward
-_mdct_clear
-_mdct_forward
-_mdct_init
-_muls
-_mystrdup
-_res0_free_info
-_res0_free_look
-_res0_inverse
-_res0_look
-_res0_unpack
-_res1_class
-_res1_inverse
-_res2_inverse
-_residue0_exportbundle
-_residue1_exportbundle
-_residue2_exportbundle
-_scale
-_shortLimit
-_tabsel_123
-_F_Free
-_F_Malloc
-_F_ReAlloc
-_F_memcmp
-_F_memmove
-_F_strcat
-_F_strchr
-_F_strcmp
-_F_strcpy
-_F_stricmp
-_F_strlen
-_F_strncat
-_F_strncmp
-_F_strncpy
-_F_strnicmp
-_F_strstr
-_F_strupr
-_F_tolower
-_F_toupper
diff --git a/indra/newview/fonts/DejaVu-license.txt b/indra/newview/fonts/DejaVu-license.txt
index 254e2cc42a..254e2cc42a 100644..100755
--- a/indra/newview/fonts/DejaVu-license.txt
+++ b/indra/newview/fonts/DejaVu-license.txt
diff --git a/indra/newview/fonts/DejaVuSans-Bold.ttf b/indra/newview/fonts/DejaVuSans-Bold.ttf
index ec1a2ebaf2..ec1a2ebaf2 100644..100755
--- a/indra/newview/fonts/DejaVuSans-Bold.ttf
+++ b/indra/newview/fonts/DejaVuSans-Bold.ttf
Binary files differ
diff --git a/indra/newview/fonts/DejaVuSans-BoldOblique.ttf b/indra/newview/fonts/DejaVuSans-BoldOblique.ttf
index 1a5576460d..1a5576460d 100644..100755
--- a/indra/newview/fonts/DejaVuSans-BoldOblique.ttf
+++ b/indra/newview/fonts/DejaVuSans-BoldOblique.ttf
Binary files differ
diff --git a/indra/newview/fonts/DejaVuSans-Oblique.ttf b/indra/newview/fonts/DejaVuSans-Oblique.ttf
index becc549927..becc549927 100644..100755
--- a/indra/newview/fonts/DejaVuSans-Oblique.ttf
+++ b/indra/newview/fonts/DejaVuSans-Oblique.ttf
Binary files differ
diff --git a/indra/newview/fonts/DejaVuSans.ttf b/indra/newview/fonts/DejaVuSans.ttf
index c1b19d8705..c1b19d8705 100644..100755
--- a/indra/newview/fonts/DejaVuSans.ttf
+++ b/indra/newview/fonts/DejaVuSans.ttf
Binary files differ
diff --git a/indra/newview/fonts/DejaVuSansMono.ttf b/indra/newview/fonts/DejaVuSansMono.ttf
index 6bc854ddae..6bc854ddae 100644..100755
--- a/indra/newview/fonts/DejaVuSansMono.ttf
+++ b/indra/newview/fonts/DejaVuSansMono.ttf
Binary files differ
diff --git a/indra/newview/fr.lproj/language.txt b/indra/newview/fr.lproj/language.txt
index 717280ac26..717280ac26 100644..100755
--- a/indra/newview/fr.lproj/language.txt
+++ b/indra/newview/fr.lproj/language.txt
diff --git a/indra/newview/generate_breakpad_symbols.py b/indra/newview/generate_breakpad_symbols.py
index 4181e4ebb3..4181e4ebb3 100644..100755
--- a/indra/newview/generate_breakpad_symbols.py
+++ b/indra/newview/generate_breakpad_symbols.py
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 4c39014c8b..4c39014c8b 100644..100755
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
diff --git a/indra/newview/groupchatlistener.cpp b/indra/newview/groupchatlistener.cpp
index ef015a950d..ef015a950d 100644..100755
--- a/indra/newview/groupchatlistener.cpp
+++ b/indra/newview/groupchatlistener.cpp
diff --git a/indra/newview/groupchatlistener.h b/indra/newview/groupchatlistener.h
index 0c76db305e..0c76db305e 100644..100755
--- a/indra/newview/groupchatlistener.h
+++ b/indra/newview/groupchatlistener.h
diff --git a/indra/newview/hu.lproj/language.txt b/indra/newview/hu.lproj/language.txt
index 6c604cf2a9..6c604cf2a9 100644..100755
--- a/indra/newview/hu.lproj/language.txt
+++ b/indra/newview/hu.lproj/language.txt
diff --git a/indra/newview/icons/beta/secondlife.icns b/indra/newview/icons/beta/secondlife.icns
index 1fa50547bb..1fa50547bb 100644..100755
--- a/indra/newview/icons/beta/secondlife.icns
+++ b/indra/newview/icons/beta/secondlife.icns
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife.ico b/indra/newview/icons/beta/secondlife.ico
index 9bdd21b904..9bdd21b904 100644..100755
--- a/indra/newview/icons/beta/secondlife.ico
+++ b/indra/newview/icons/beta/secondlife.ico
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_128.png b/indra/newview/icons/beta/secondlife_128.png
index fa42aa764b..fa42aa764b 100644..100755
--- a/indra/newview/icons/beta/secondlife_128.png
+++ b/indra/newview/icons/beta/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_16.png b/indra/newview/icons/beta/secondlife_16.png
index ff648cf3fc..ff648cf3fc 100644..100755
--- a/indra/newview/icons/beta/secondlife_16.png
+++ b/indra/newview/icons/beta/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_256.BMP b/indra/newview/icons/beta/secondlife_256.BMP
index 97bd67d3d6..97bd67d3d6 100644..100755
--- a/indra/newview/icons/beta/secondlife_256.BMP
+++ b/indra/newview/icons/beta/secondlife_256.BMP
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_256.png b/indra/newview/icons/beta/secondlife_256.png
index 245e2c3e9f..245e2c3e9f 100644..100755
--- a/indra/newview/icons/beta/secondlife_256.png
+++ b/indra/newview/icons/beta/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_32.png b/indra/newview/icons/beta/secondlife_32.png
index fd7f46bf4d..fd7f46bf4d 100644..100755
--- a/indra/newview/icons/beta/secondlife_32.png
+++ b/indra/newview/icons/beta/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_48.png b/indra/newview/icons/beta/secondlife_48.png
index cc3a795e2b..cc3a795e2b 100644..100755
--- a/indra/newview/icons/beta/secondlife_48.png
+++ b/indra/newview/icons/beta/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_512.png b/indra/newview/icons/beta/secondlife_512.png
index a959bd9a9e..a959bd9a9e 100644..100755
--- a/indra/newview/icons/beta/secondlife_512.png
+++ b/indra/newview/icons/beta/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/development/secondlife.icns b/indra/newview/icons/development/secondlife.icns
deleted file mode 100644
index 44f63d384c..0000000000
--- a/indra/newview/icons/development/secondlife.icns
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife.ico b/indra/newview/icons/development/secondlife.ico
deleted file mode 100644
index b53f23ae58..0000000000
--- a/indra/newview/icons/development/secondlife.ico
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_128.png b/indra/newview/icons/development/secondlife_128.png
deleted file mode 100644
index 9b9fe656fc..0000000000
--- a/indra/newview/icons/development/secondlife_128.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_16.png b/indra/newview/icons/development/secondlife_16.png
deleted file mode 100644
index 91493a033c..0000000000
--- a/indra/newview/icons/development/secondlife_16.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_256.BMP b/indra/newview/icons/development/secondlife_256.BMP
deleted file mode 100644
index 174b22319a..0000000000
--- a/indra/newview/icons/development/secondlife_256.BMP
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_256.png b/indra/newview/icons/development/secondlife_256.png
deleted file mode 100644
index 29ed40abdc..0000000000
--- a/indra/newview/icons/development/secondlife_256.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_32.png b/indra/newview/icons/development/secondlife_32.png
deleted file mode 100644
index 3b84f5ec77..0000000000
--- a/indra/newview/icons/development/secondlife_32.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_48.png b/indra/newview/icons/development/secondlife_48.png
deleted file mode 100644
index d2636d9d72..0000000000
--- a/indra/newview/icons/development/secondlife_48.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/development/secondlife_512.png b/indra/newview/icons/development/secondlife_512.png
deleted file mode 100644
index 75f9b231f4..0000000000
--- a/indra/newview/icons/development/secondlife_512.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/project/secondlife.icns b/indra/newview/icons/project/secondlife.icns
index d6e26a8ed9..d6e26a8ed9 100644..100755
--- a/indra/newview/icons/project/secondlife.icns
+++ b/indra/newview/icons/project/secondlife.icns
Binary files differ
diff --git a/indra/newview/icons/project/secondlife.ico b/indra/newview/icons/project/secondlife.ico
index ebb27e5325..ebb27e5325 100644..100755
--- a/indra/newview/icons/project/secondlife.ico
+++ b/indra/newview/icons/project/secondlife.ico
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_128.png b/indra/newview/icons/project/secondlife_128.png
index d67b8228f9..d67b8228f9 100644..100755
--- a/indra/newview/icons/project/secondlife_128.png
+++ b/indra/newview/icons/project/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_16.png b/indra/newview/icons/project/secondlife_16.png
index 91493a033c..91493a033c 100644..100755
--- a/indra/newview/icons/project/secondlife_16.png
+++ b/indra/newview/icons/project/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_256.BMP b/indra/newview/icons/project/secondlife_256.BMP
index cd890725f8..cd890725f8 100644..100755
--- a/indra/newview/icons/project/secondlife_256.BMP
+++ b/indra/newview/icons/project/secondlife_256.BMP
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_256.png b/indra/newview/icons/project/secondlife_256.png
index cccfaf7cba..cccfaf7cba 100644..100755
--- a/indra/newview/icons/project/secondlife_256.png
+++ b/indra/newview/icons/project/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_32.png b/indra/newview/icons/project/secondlife_32.png
index ad7b33f789..ad7b33f789 100644..100755
--- a/indra/newview/icons/project/secondlife_32.png
+++ b/indra/newview/icons/project/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_48.png b/indra/newview/icons/project/secondlife_48.png
index 104a931fbc..104a931fbc 100644..100755
--- a/indra/newview/icons/project/secondlife_48.png
+++ b/indra/newview/icons/project/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_512.png b/indra/newview/icons/project/secondlife_512.png
index 74e2fa9bc6..74e2fa9bc6 100644..100755
--- a/indra/newview/icons/project/secondlife_512.png
+++ b/indra/newview/icons/project/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.icns b/indra/newview/icons/release/secondlife.icns
index e15e34140d..e15e34140d 100644..100755
--- a/indra/newview/icons/release/secondlife.icns
+++ b/indra/newview/icons/release/secondlife.icns
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.ico b/indra/newview/icons/release/secondlife.ico
index 28bf1e7664..28bf1e7664 100644..100755
--- a/indra/newview/icons/release/secondlife.ico
+++ b/indra/newview/icons/release/secondlife.ico
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_128.png b/indra/newview/icons/release/secondlife_128.png
index bcf94dcae8..bcf94dcae8 100644..100755
--- a/indra/newview/icons/release/secondlife_128.png
+++ b/indra/newview/icons/release/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_16.png b/indra/newview/icons/release/secondlife_16.png
index 90311ea8b0..90311ea8b0 100644..100755
--- a/indra/newview/icons/release/secondlife_16.png
+++ b/indra/newview/icons/release/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_256.BMP b/indra/newview/icons/release/secondlife_256.BMP
index 74deedd7d3..74deedd7d3 100644..100755
--- a/indra/newview/icons/release/secondlife_256.BMP
+++ b/indra/newview/icons/release/secondlife_256.BMP
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_256.png b/indra/newview/icons/release/secondlife_256.png
index a89fb4c74f..a89fb4c74f 100644..100755
--- a/indra/newview/icons/release/secondlife_256.png
+++ b/indra/newview/icons/release/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_32.png b/indra/newview/icons/release/secondlife_32.png
index 530e8fc80c..530e8fc80c 100644..100755
--- a/indra/newview/icons/release/secondlife_32.png
+++ b/indra/newview/icons/release/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_48.png b/indra/newview/icons/release/secondlife_48.png
index cb33c51f8a..cb33c51f8a 100644..100755
--- a/indra/newview/icons/release/secondlife_48.png
+++ b/indra/newview/icons/release/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_512.png b/indra/newview/icons/release/secondlife_512.png
index f291e60586..f291e60586 100644..100755
--- a/indra/newview/icons/release/secondlife_512.png
+++ b/indra/newview/icons/release/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife.icns b/indra/newview/icons/test/secondlife.icns
index eb8d16a7e7..eb8d16a7e7 100644..100755
--- a/indra/newview/icons/test/secondlife.icns
+++ b/indra/newview/icons/test/secondlife.icns
Binary files differ
diff --git a/indra/newview/icons/test/secondlife.ico b/indra/newview/icons/test/secondlife.ico
index ceb8e8e6eb..ceb8e8e6eb 100644..100755
--- a/indra/newview/icons/test/secondlife.ico
+++ b/indra/newview/icons/test/secondlife.ico
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_128.png b/indra/newview/icons/test/secondlife_128.png
index 019f65db28..019f65db28 100644..100755
--- a/indra/newview/icons/test/secondlife_128.png
+++ b/indra/newview/icons/test/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_16.png b/indra/newview/icons/test/secondlife_16.png
index 91493a033c..91493a033c 100644..100755
--- a/indra/newview/icons/test/secondlife_16.png
+++ b/indra/newview/icons/test/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_256.BMP b/indra/newview/icons/test/secondlife_256.BMP
index e23fcfdbe9..e23fcfdbe9 100644..100755
--- a/indra/newview/icons/test/secondlife_256.BMP
+++ b/indra/newview/icons/test/secondlife_256.BMP
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_256.png b/indra/newview/icons/test/secondlife_256.png
index f402424c51..f402424c51 100644..100755
--- a/indra/newview/icons/test/secondlife_256.png
+++ b/indra/newview/icons/test/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_32.png b/indra/newview/icons/test/secondlife_32.png
index 80d6efe13d..80d6efe13d 100644..100755
--- a/indra/newview/icons/test/secondlife_32.png
+++ b/indra/newview/icons/test/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_48.png b/indra/newview/icons/test/secondlife_48.png
index bba938feba..bba938feba 100644..100755
--- a/indra/newview/icons/test/secondlife_48.png
+++ b/indra/newview/icons/test/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_512.png b/indra/newview/icons/test/secondlife_512.png
index 10ff65312b..10ff65312b 100644..100755
--- a/indra/newview/icons/test/secondlife_512.png
+++ b/indra/newview/icons/test/secondlife_512.png
Binary files differ
diff --git a/indra/newview/installers/darwin/dmg-cleanup.applescript b/indra/newview/installers/darwin/dmg-cleanup.applescript
index 8a71b392f9..8a71b392f9 100644..100755
--- a/indra/newview/installers/darwin/dmg-cleanup.applescript
+++ b/indra/newview/installers/darwin/dmg-cleanup.applescript
diff --git a/indra/newview/installers/darwin/fix_application_icon_position.sh b/indra/newview/installers/darwin/fix_application_icon_position.sh
index 618e34820c..618e34820c 100644..100755
--- a/indra/newview/installers/darwin/fix_application_icon_position.sh
+++ b/indra/newview/installers/darwin/fix_application_icon_position.sh
diff --git a/indra/newview/installers/darwin/release-dmg/Applications-alias.r b/indra/newview/installers/darwin/release-dmg/Applications-alias.r
index aa3cfb87d8..aa3cfb87d8 100644..100755
--- a/indra/newview/installers/darwin/release-dmg/Applications-alias.r
+++ b/indra/newview/installers/darwin/release-dmg/Applications-alias.r
diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store
index 747ca961d8..747ca961d8 100644..100755
--- a/indra/newview/installers/darwin/release-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/release-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns b/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
index da5307e389..da5307e389 100644..100755
--- a/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
+++ b/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
Binary files differ
diff --git a/indra/newview/installers/darwin/release-dmg/background.jpg b/indra/newview/installers/darwin/release-dmg/background.jpg
index 55294dcc9a..55294dcc9a 100644..100755
--- a/indra/newview/installers/darwin/release-dmg/background.jpg
+++ b/indra/newview/installers/darwin/release-dmg/background.jpg
Binary files differ
diff --git a/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt b/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
index 185c0180fb..185c0180fb 100644..100755
--- a/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
+++ b/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
diff --git a/indra/newview/installers/windows/install_icon.BMP b/indra/newview/installers/windows/install_icon.BMP
index 09df573870..09df573870 100644..100755
--- a/indra/newview/installers/windows/install_icon.BMP
+++ b/indra/newview/installers/windows/install_icon.BMP
Binary files differ
diff --git a/indra/newview/installers/windows/install_icon.ico b/indra/newview/installers/windows/install_icon.ico
index efe6c4f323..efe6c4f323 100644..100755
--- a/indra/newview/installers/windows/install_icon.ico
+++ b/indra/newview/installers/windows/install_icon.ico
Binary files differ
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 8a6114f0d5..8a6114f0d5 100644..100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi
index 0c832e8ba9..0c832e8ba9 100644..100755
--- a/indra/newview/installers/windows/lang_da.nsi
+++ b/indra/newview/installers/windows/lang_da.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi
index b717a4d3a5..b717a4d3a5 100644..100755
--- a/indra/newview/installers/windows/lang_de.nsi
+++ b/indra/newview/installers/windows/lang_de.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi
index da0d7f54d2..da0d7f54d2 100644..100755
--- a/indra/newview/installers/windows/lang_en-us.nsi
+++ b/indra/newview/installers/windows/lang_en-us.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi
index c6a7f38f3f..c6a7f38f3f 100644..100755
--- a/indra/newview/installers/windows/lang_es.nsi
+++ b/indra/newview/installers/windows/lang_es.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi
index 008c240ed7..008c240ed7 100644..100755
--- a/indra/newview/installers/windows/lang_fr.nsi
+++ b/indra/newview/installers/windows/lang_fr.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi
index eccd965a92..eccd965a92 100644..100755
--- a/indra/newview/installers/windows/lang_it.nsi
+++ b/indra/newview/installers/windows/lang_it.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi
index f564291f7d..f564291f7d 100644..100755
--- a/indra/newview/installers/windows/lang_ja.nsi
+++ b/indra/newview/installers/windows/lang_ja.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
index 191bae4755..191bae4755 100644..100755
--- a/indra/newview/installers/windows/lang_pl.nsi
+++ b/indra/newview/installers/windows/lang_pl.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_pt-br.nsi b/indra/newview/installers/windows/lang_pt-br.nsi
index da56a3c336..da56a3c336 100644..100755
--- a/indra/newview/installers/windows/lang_pt-br.nsi
+++ b/indra/newview/installers/windows/lang_pt-br.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
index de7affe08a..de7affe08a 100644..100755
--- a/indra/newview/installers/windows/lang_ru.nsi
+++ b/indra/newview/installers/windows/lang_ru.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi
index 5e7e3d797b..5e7e3d797b 100644..100755
--- a/indra/newview/installers/windows/lang_tr.nsi
+++ b/indra/newview/installers/windows/lang_tr.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
index ecf1185fbb..ecf1185fbb 100644..100755
--- a/indra/newview/installers/windows/lang_zh.nsi
+++ b/indra/newview/installers/windows/lang_zh.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
index 08ad42532f..08ad42532f 100644..100755
--- a/indra/newview/installers/windows/language_menu.nsi
+++ b/indra/newview/installers/windows/language_menu.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/uninstall_icon.BMP b/indra/newview/installers/windows/uninstall_icon.BMP
index 562b56676a..562b56676a 100644..100755
--- a/indra/newview/installers/windows/uninstall_icon.BMP
+++ b/indra/newview/installers/windows/uninstall_icon.BMP
Binary files differ
diff --git a/indra/newview/installers/windows/uninstall_icon.ico b/indra/newview/installers/windows/uninstall_icon.ico
index 05e1546860..05e1546860 100644..100755
--- a/indra/newview/installers/windows/uninstall_icon.ico
+++ b/indra/newview/installers/windows/uninstall_icon.ico
Binary files differ
diff --git a/indra/newview/it.lproj/language.txt b/indra/newview/it.lproj/language.txt
index c91971434c..c91971434c 100644..100755
--- a/indra/newview/it.lproj/language.txt
+++ b/indra/newview/it.lproj/language.txt
diff --git a/indra/newview/licenses-linux.txt b/indra/newview/licenses-linux.txt
index b43c402e64..b43c402e64 100644..100755
--- a/indra/newview/licenses-linux.txt
+++ b/indra/newview/licenses-linux.txt
diff --git a/indra/newview/licenses-mac.txt b/indra/newview/licenses-mac.txt
index af80bff5d9..af80bff5d9 100644..100755
--- a/indra/newview/licenses-mac.txt
+++ b/indra/newview/licenses-mac.txt
diff --git a/indra/newview/licenses-solaris.txt b/indra/newview/licenses-solaris.txt
index c19f939a80..c19f939a80 100644..100755
--- a/indra/newview/licenses-solaris.txt
+++ b/indra/newview/licenses-solaris.txt
diff --git a/indra/newview/licenses-win32.txt b/indra/newview/licenses-win32.txt
index 8736626907..8736626907 100644..100755
--- a/indra/newview/licenses-win32.txt
+++ b/indra/newview/licenses-win32.txt
diff --git a/indra/newview/linux_tools/client-readme-joystick.txt b/indra/newview/linux_tools/client-readme-joystick.txt
index 4f89a73ccb..4f89a73ccb 100644..100755
--- a/indra/newview/linux_tools/client-readme-joystick.txt
+++ b/indra/newview/linux_tools/client-readme-joystick.txt
diff --git a/indra/newview/linux_tools/client-readme-voice.txt b/indra/newview/linux_tools/client-readme-voice.txt
index bfefdf3471..bfefdf3471 100644..100755
--- a/indra/newview/linux_tools/client-readme-voice.txt
+++ b/indra/newview/linux_tools/client-readme-voice.txt
diff --git a/indra/newview/linux_tools/client-readme.txt b/indra/newview/linux_tools/client-readme.txt
index e01b9e4bc6..e01b9e4bc6 100644..100755
--- a/indra/newview/linux_tools/client-readme.txt
+++ b/indra/newview/linux_tools/client-readme.txt
diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh
index 20936c6460..d8440eebf1 100755
--- a/indra/newview/linux_tools/wrapper.sh
+++ b/indra/newview/linux_tools/wrapper.sh
@@ -4,17 +4,17 @@
## These options are for self-assisted troubleshooting during this beta
## testing phase; you should not usually need to touch them.
+## - Avoids using any FMOD Ex audio driver.
+#export LL_BAD_FMODEX_DRIVER=x
## - Avoids using any OpenAL audio driver.
#export LL_BAD_OPENAL_DRIVER=x
-## - Avoids using any FMOD audio driver.
-#export LL_BAD_FMOD_DRIVER=x
-## - Avoids using the FMOD ESD audio driver.
-#export LL_BAD_FMOD_ESD=x
-## - Avoids using the FMOD OSS audio driver.
-#export LL_BAD_FMOD_OSS=x
-## - Avoids using the FMOD ALSA audio driver.
+## - Avoids using the FMOD Ex PulseAudio audio driver.
+#export LL_BAD_FMOD_PULSEAUDIO=x
+## - Avoids using the FMOD or FMOD Ex ALSA audio driver.
#export LL_BAD_FMOD_ALSA=x
+## - Avoids using the FMOD or FMOD Ex OSS audio driver.
+#export LL_BAD_FMOD_OSS=x
## - Avoids the optional OpenGL extensions which have proven most problematic
## on some hardware. Disabling this option may cause BETTER PERFORMANCE but
@@ -45,6 +45,7 @@ if [ "`uname -m`" = "x86_64" ]; then
echo '64-bit Linux detected.'
fi
+
## Everything below this line is just for advanced troubleshooters.
##-------------------------------------------------------------------
@@ -60,7 +61,15 @@ fi
export SDL_VIDEO_X11_DGAMOUSE=0
## - Works around a problem with misconfigured 64-bit systems not finding GL
-export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
+I386_MULTIARCH="$(dpkg-architecture -ai386 -qDEB_HOST_MULTIARCH 2>/dev/null)"
+MULTIARCH_ERR=$?
+if [ $MULTIARCH_ERR -eq 0 ]; then
+ echo 'Multi-arch support detected.'
+ MULTIARCH_GL_DRIVERS="/usr/lib/${I386_MULTIARCH}/dri"
+ export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:${MULTIARCH_GL_DRIVERS}:/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri"
+else
+ export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri"
+fi
## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.
if [ "$GTK_IM_MODULE" = "scim" ]; then
@@ -113,22 +122,36 @@ export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH}"
# Have to deal specially with gridargs.dat; typical contents look like:
-# --channel "Second Life Developer" --settings settings_developer.xml
+# --channel "Second Life Test" --settings settings_test.xml
# Simply embedding $(<etc/gridargs.dat) into a command line treats each of
# Second, Life and Developer as separate args -- no good. We need bash to
# process quotes using eval.
-# First read it without scanning, then scan that string. Break quoted words
+# First, check if we have been instructed to skip reading in gridargs.dat:
+skip_gridargs=false
+argnum=0
+for ARG in "$@"; do
+ if [ "--skip-gridargs" == "$ARG" ]; then
+ skip_gridargs=true
+ else
+ ARGS[$argnum]="$ARG"
+ argnum=$(($argnum+1))
+ fi
+done
+
+# Second, read it without scanning, then scan that string. Break quoted words
# into a bash array. Note that if gridargs.dat is empty, or contains only
# whitespace, the resulting gridargs array will be empty -- zero entries --
# therefore "${gridargs[@]}" entirely vanishes from the command line below,
# just as we want.
-eval gridargs=("$(<etc/gridargs.dat)")
+if ! $skip_gridargs ; then
+ eval gridargs=("$(<etc/gridargs.dat)")
+fi
# Run the program.
# Don't quote $LL_WRAPPER because, if empty, it should simply vanish from the
# command line. But DO quote "$@": preserve separate args as individually
# quoted. Similar remarks about the contents of gridargs.
-$LL_WRAPPER bin/do-not-directly-run-secondlife-bin "${gridargs[@]}" "$@"
+$LL_WRAPPER bin/do-not-directly-run-secondlife-bin "${gridargs[@]}" "${ARGS[@]}"
LL_RUN_ERR=$?
# Handle any resulting errors
diff --git a/indra/newview/llaccountingcostmanager.cpp b/indra/newview/llaccountingcostmanager.cpp
index 8767955fcb..7662a9689d 100644..100755
--- a/indra/newview/llaccountingcostmanager.cpp
+++ b/indra/newview/llaccountingcostmanager.cpp
@@ -56,9 +56,9 @@ public:
}
}
- void error( U32 statusNum, const std::string& reason )
+ void errorWithContent( U32 statusNum, const std::string& reason, const LLSD& content )
{
- llwarns << "Transport error "<<reason<<llendl;
+ llwarns << "Transport error [status:" << statusNum << "]: " << content <<llendl;
clearPendingRequests();
LLAccountingCostObserver* observer = mObserverHandle.get();
diff --git a/indra/newview/llaccountingcostmanager.h b/indra/newview/llaccountingcostmanager.h
index 0bca1f54ef..0bca1f54ef 100644..100755
--- a/indra/newview/llaccountingcostmanager.h
+++ b/indra/newview/llaccountingcostmanager.h
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 094d502078..8c42defa73 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -35,6 +35,7 @@
#include "llagentlistener.h"
#include "llagentwearables.h"
#include "llagentui.h"
+#include "llappearancemgr.h"
#include "llanimationstates.h"
#include "llcallingcard.h"
#include "llcapabilitylistener.h"
@@ -91,7 +92,7 @@
#include "llworldmap.h"
#include "stringize.h"
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
extern LLMenuBarGL* gMenuBarView;
@@ -808,6 +809,29 @@ void LLAgent::standUp()
}
+void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id)
+{
+ llinfos << "called" << llendl;
+
+
+ // Old-style appearance entering a server-bake region.
+ if (isAgentAvatarValid() &&
+ !gAgentAvatarp->isUsingServerBakes() &&
+ (mRegionp->getCentralBakeVersion()>0))
+ {
+ llinfos << "update requested due to region transition" << llendl;
+ LLAppearanceMgr::instance().requestServerAppearanceUpdate();
+ }
+ // new-style appearance entering a non-bake region,
+ // need to check for existence of the baking service.
+ else if (isAgentAvatarValid() &&
+ gAgentAvatarp->isUsingServerBakes() &&
+ mRegionp->getCentralBakeVersion()==0)
+ {
+ gAgentAvatarp->checkForUnsupportedServerBakeAppearance();
+ }
+}
+
//-----------------------------------------------------------------------------
// setRegion()
//-----------------------------------------------------------------------------
@@ -903,6 +927,19 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
{
LLEnvManagerNew::instance().onRegionCrossing();
}
+
+ // If the newly entered region is using server bakes, and our
+ // current appearance is non-baked, request appearance update from
+ // server.
+ if (mRegionp->capabilitiesReceived())
+ {
+ handleServerBakeRegionTransition(mRegionp->getRegionID());
+ }
+ else
+ {
+ // Need to handle via callback after caps arrive.
+ mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::handleServerBakeRegionTransition,this,_1));
+ }
}
@@ -1685,13 +1722,11 @@ void LLAgent::autoPilot(F32 *delta_yaw)
*delta_yaw = yaw;
- // Compute when to start slowing down and when to stop
- F32 stop_distance = mAutoPilotStopDistance;
+ // Compute when to start slowing down
F32 slow_distance;
if (getFlying())
{
slow_distance = llmax(6.f, mAutoPilotStopDistance + 5.f);
- stop_distance = llmax(2.f, mAutoPilotStopDistance);
}
else
{
@@ -2277,7 +2312,7 @@ void LLAgent::setStartPosition( U32 location_id )
if (isAgentAvatarValid())
{
// the z height is at the agent's feet
- agent_pos.mV[VZ] -= 0.5f * gAgentAvatarp->mBodySize.mV[VZ];
+ agent_pos.mV[VZ] -= 0.5f * (gAgentAvatarp->mBodySize.mV[VZ] + gAgentAvatarp->mAvatarOffset.mV[VZ]);
}
agent_pos.mV[VX] = llclamp( agent_pos.mV[VX], INSET, REGION_WIDTH - INSET );
@@ -2496,7 +2531,7 @@ public:
virtual ~LLMaturityPreferencesResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
protected:
@@ -2534,11 +2569,11 @@ void LLMaturityPreferencesResponder::result(const LLSD &pContent)
mAgent->handlePreferredMaturityResult(actualMaturity);
}
-void LLMaturityPreferencesResponder::error(U32 pStatus, const std::string& pReason)
+void LLMaturityPreferencesResponder::errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent)
{
llwarns << "while attempting to change maturity preference from '" << LLViewerRegion::accessToString(mPreviousMaturity)
- << "' to '" << LLViewerRegion::accessToString(mPreferredMaturity) << "', we got an error because '"
- << pReason << "' [status:" << pStatus << "]" << llendl;
+ << "' to '" << LLViewerRegion::accessToString(mPreferredMaturity) << "', we got an error with [status:"
+ << pStatus << "]: " << (pContent.isDefined() ? pContent : LLSD(pReason)) << llendl;
mAgent->handlePreferredMaturityError();
}
@@ -2698,7 +2733,7 @@ void LLAgent::sendMaturityPreferenceToServer(U8 pPreferredMaturity)
// If we don't have a region, report it as an error
if (getRegion() == NULL)
{
- responderPtr->error(0U, "region is not defined");
+ responderPtr->errorWithContent(0U, "region is not defined", LLSD());
}
else
{
@@ -2708,7 +2743,8 @@ void LLAgent::sendMaturityPreferenceToServer(U8 pPreferredMaturity)
// If the capability is not defined, report it as an error
if (url.empty())
{
- responderPtr->error(0U, "capability 'UpdateAgentInformation' is not defined for region");
+ responderPtr->errorWithContent(0U,
+ "capability 'UpdateAgentInformation' is not defined for region", LLSD());
}
else
{
@@ -3576,7 +3612,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
return;
}
- if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
+ if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance())
{
// ignore baked textures when in customize mode
return;
@@ -3600,7 +3636,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
if ((S32)texture_index < TEX_NUM_INDICES )
{
- const LLVOAvatarDictionary::TextureEntry *texture_entry = LLVOAvatarDictionary::instance().getTexture((ETextureIndex)texture_index);
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_entry = LLAvatarAppearanceDictionary::instance().getTexture((ETextureIndex)texture_index);
if (texture_entry)
{
EBakedTextureIndex baked_index = texture_entry->mBakedTextureIndex;
@@ -4207,27 +4243,82 @@ void LLAgent::requestLeaveGodMode()
sendReliableMessage();
}
+// For debugging, trace agent state at times appearance message are sent out.
+void LLAgent::dumpSentAppearance(const std::string& dump_prefix)
+{
+ std::string outfilename = get_sequential_numbered_file_name(dump_prefix,".xml");
+
+ LLAPRFile outfile;
+ std::string fullpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,outfilename);
+ outfile.open(fullpath, LL_APR_WB );
+ apr_file_t* file = outfile.getFileHandle();
+ if (!file)
+ {
+ return;
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << "dumping sent appearance message to " << fullpath << llendl;
+ }
+
+ LLVisualParam* appearance_version_param = gAgentAvatarp->getVisualParam(11000);
+ if (appearance_version_param)
+ {
+ F32 value = appearance_version_param->getWeight();
+ dump_visual_param(file, appearance_version_param, value);
+ }
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
+ ++iter)
+ {
+ const ETextureIndex index = iter->first;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
+ if (texture_dict->mIsBakedTexture)
+ {
+ LLTextureEntry* entry = gAgentAvatarp->getTE((U8) index);
+ const LLUUID& uuid = entry->getID();
+ apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", index, uuid.asString().c_str());
+ }
+ }
+}
+
//-----------------------------------------------------------------------------
// sendAgentSetAppearance()
//-----------------------------------------------------------------------------
void LLAgent::sendAgentSetAppearance()
{
- if (!isAgentAvatarValid()) return;
-
- if (gAgentQueryManager.mNumPendingQueries > 0 && (isAgentAvatarValid() && gAgentAvatarp->isUsingBakedTextures()))
+ if (gAgentQueryManager.mNumPendingQueries > 0)
{
return;
}
- if (!gAgentWearables.changeInProgress())
+ if (!isAgentAvatarValid() || (getRegion() && getRegion()->getCentralBakeVersion())) return;
+
+ // At this point we have a complete appearance to send and are in a non-baking region.
+ // DRANO FIXME
+ //gAgentAvatarp->setIsUsingServerBakes(FALSE);
+ S32 sb_count, host_count, both_count, neither_count;
+ gAgentAvatarp->bakedTextureOriginCounts(sb_count, host_count, both_count, neither_count);
+ if (both_count != 0 || neither_count != 0)
{
- // Change is fully resolved, can close some open phases.
- gAgentAvatarp->getPhases().stopPhase("process_initial_wearables_update");
- gAgentAvatarp->getPhases().stopPhase("wear_inventory_category");
+ llwarns << "bad bake texture state " << sb_count << "," << host_count << "," << both_count << "," << neither_count << llendl;
+ }
+ if (sb_count != 0 && host_count == 0)
+ {
+ gAgentAvatarp->setIsUsingServerBakes(true);
+ }
+ else if (sb_count == 0 && host_count != 0)
+ {
+ gAgentAvatarp->setIsUsingServerBakes(false);
+ }
+ else if (sb_count + host_count > 0)
+ {
+ llwarns << "unclear baked texture state, not sending appearance" << llendl;
+ return;
}
- gAgentAvatarp->sendAppearanceChangeMetrics();
- LL_INFOS("Avatar") << gAgentAvatarp->avString() << "TAT: Sent AgentSetAppearance: " << gAgentAvatarp->getBakedStatusForPrintout() << LL_ENDL;
+
+ LL_DEBUGS("Avatar") << gAgentAvatarp->avString() << "TAT: Sent AgentSetAppearance: " << gAgentAvatarp->getBakedStatusForPrintout() << LL_ENDL;
//dumpAvatarTEs( "sendAgentSetAppearance()" );
LLMessageSystem* msg = gMessageSystem;
@@ -4241,7 +4332,7 @@ void LLAgent::sendAgentSetAppearance()
// NOTE -- when we start correcting all of the other Havok geometry
// to compensate for the COLLISION_TOLERANCE ugliness we will have
// to tweak this number again
- const LLVector3 body_size = gAgentAvatarp->mBodySize;
+ const LLVector3 body_size = gAgentAvatarp->mBodySize + gAgentAvatarp->mAvatarOffset;
msg->addVector3Fast(_PREHASH_Size, body_size);
// To guard against out of order packets
@@ -4255,7 +4346,7 @@ void LLAgent::sendAgentSetAppearance()
for(U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++ )
{
- const ETextureIndex texture_index = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
+ const ETextureIndex texture_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
// if we're not wearing a skirt, we don't need the texture to be baked
if (texture_index == TEX_SKIRT_BAKED && !gAgentAvatarp->isWearingWearableType(LLWearableType::WT_SKIRT))
@@ -4266,19 +4357,30 @@ void LLAgent::sendAgentSetAppearance()
// IMG_DEFAULT_AVATAR means not baked. 0 index should be ignored for baked textures
if (!gAgentAvatarp->isTextureDefined(texture_index, 0))
{
+ LL_DEBUGS("Avatar") << "texture not current for baked " << (S32)baked_index << " local " << (S32)texture_index << llendl;
textures_current = FALSE;
break;
}
}
// only update cache entries if we have all our baked textures
+
+ // FIXME DRANO need additional check for not in appearance editing
+ // mode, if still using local composites need to set using local
+ // composites to false, and update mesh textures.
if (textures_current)
{
- LL_INFOS("Avatar") << gAgentAvatarp->avString() << "TAT: Sending cached texture data" << LL_ENDL;
+ bool enable_verbose_dumps = gSavedSettings.getBOOL("DebugAvatarAppearanceMessage");
+ std::string dump_prefix = gAgentAvatarp->getFullname() + "_sent_appearance";
+ if (enable_verbose_dumps)
+ {
+ dumpSentAppearance(dump_prefix);
+ }
+ LL_DEBUGS("Avatar") << gAgentAvatarp->avString() << "TAT: Sending cached texture data" << LL_ENDL;
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
BOOL generate_valid_hash = TRUE;
- if (isAgentAvatarValid() && !gAgentAvatarp->isBakedTextureFinal((LLVOAvatarDefines::EBakedTextureIndex)baked_index))
+ if (isAgentAvatarValid() && !gAgentAvatarp->isBakedTextureFinal((LLAvatarAppearanceDefines::EBakedTextureIndex)baked_index))
{
generate_valid_hash = FALSE;
LL_DEBUGS("Avatar") << gAgentAvatarp->avString() << "Not caching baked texture upload for " << (U32)baked_index << " due to being uploaded at low resolution." << LL_ENDL;
@@ -4287,7 +4389,7 @@ void LLAgent::sendAgentSetAppearance()
const LLUUID hash = gAgentWearables.computeBakedTextureHash((EBakedTextureIndex) baked_index, generate_valid_hash);
if (hash.notNull())
{
- ETextureIndex texture_index = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex) baked_index);
+ ETextureIndex texture_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex((EBakedTextureIndex) baked_index);
msg->nextBlockFast(_PREHASH_WearableData);
msg->addUUIDFast(_PREHASH_CacheID, hash);
msg->addU8Fast(_PREHASH_TextureIndex, (U8)texture_index);
@@ -4323,7 +4425,7 @@ void LLAgent::sendAgentSetAppearance()
}
}
-// llinfos << "Avatar XML num VisualParams transmitted = " << transmitted_params << llendl;
+ //llinfos << "Avatar XML num VisualParams transmitted = " << transmitted_params << llendl;
sendReliableMessage();
}
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index daa15b0c1a..f5f26f69d8 100644..100755
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -33,7 +33,8 @@
#include "llagentdata.h" // gAgentID, gAgentSessionID
#include "llcharacter.h"
#include "llcoordframe.h" // for mFrameAgent
-#include "llvoavatardefines.h"
+#include "llavatarappearancedefines.h"
+#include "llpermissionsflags.h"
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
@@ -608,6 +609,7 @@ private:
void handleTeleportFinished();
void handleTeleportFailed();
+ void handleServerBakeRegionTransition(const LLUUID& region_id);
//--------------------------------------------------------------------
// Teleport State
@@ -842,6 +844,7 @@ private:
public:
void sendMessage(); // Send message to this agent's region
void sendReliableMessage();
+ void dumpSentAppearance(const std::string& dump_prefix);
void sendAgentSetAppearance();
void sendAgentDataUpdateRequest();
void sendAgentUserInfoRequest();
@@ -900,7 +903,7 @@ private:
S32 mNumPendingQueries;
S32 mWearablesCacheQueryID;
U32 mUpdateSerialNum;
- S32 mActiveCacheQueries[LLVOAvatarDefines::BAKED_NUM_INDICES];
+ S32 mActiveCacheQueries[LLAvatarAppearanceDefines::BAKED_NUM_INDICES];
};
extern LLAgentQueryManager gAgentQueryManager;
diff --git a/indra/newview/llagentaccess.cpp b/indra/newview/llagentaccess.cpp
index c4ee321e04..c4ee321e04 100644..100755
--- a/indra/newview/llagentaccess.cpp
+++ b/indra/newview/llagentaccess.cpp
diff --git a/indra/newview/llagentaccess.h b/indra/newview/llagentaccess.h
index 4e851b0aa0..4e851b0aa0 100644..100755
--- a/indra/newview/llagentaccess.h
+++ b/indra/newview/llagentaccess.h
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 9025c7af8b..0896aa5972 100644..100755
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -50,7 +50,7 @@
#include "llwindow.h"
#include "llworld.h"
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
extern LLMenuBarGL* gMenuBarView;
@@ -594,7 +594,6 @@ BOOL LLAgentCamera::calcCameraMinDistance(F32 &obj_min_distance)
abs_target_offset.abs();
LLVector3 target_offset_dir = target_offset_origin;
- F32 object_radius = mFocusObject->getVObjRadius();
BOOL target_outside_object_extents = FALSE;
@@ -689,17 +688,6 @@ BOOL LLAgentCamera::calcCameraMinDistance(F32 &obj_min_distance)
LLVector3 camera_offset_object(getCameraPositionAgent() - mFocusObject->getPositionAgent());
- // length projected orthogonal to target offset
- F32 camera_offset_dist = (camera_offset_object - target_offset_dir * (camera_offset_object * target_offset_dir)).magVec();
-
- // calculate whether the target point would be "visible" if it were outside the bounding box
- // on the opposite of the splitting plane defined by object_split_axis;
- BOOL exterior_target_visible = FALSE;
- if (camera_offset_dist > object_radius)
- {
- // target is visible from camera, so turn off fov zoom
- exterior_target_visible = TRUE;
- }
F32 camera_offset_clip = camera_offset_object * object_split_axis;
F32 target_offset_clip = target_offset_dir * object_split_axis;
@@ -1079,8 +1067,8 @@ void LLAgentCamera::updateLookAt(const S32 mouse_x, const S32 mouse_y)
if (!isAgentAvatarValid()) return;
- LLQuaternion av_inv_rot = ~gAgentAvatarp->mRoot.getWorldRotation();
- LLVector3 root_at = LLVector3::x_axis * gAgentAvatarp->mRoot.getWorldRotation();
+ LLQuaternion av_inv_rot = ~gAgentAvatarp->mRoot->getWorldRotation();
+ LLVector3 root_at = LLVector3::x_axis * gAgentAvatarp->mRoot->getWorldRotation();
if ((gViewerWindow->getMouseVelocityStat()->getCurrent() < 0.01f) &&
(root_at * last_at_axis > 0.95f))
@@ -1433,7 +1421,7 @@ void LLAgentCamera::updateCamera()
LLVector3(0.08f, 0.f, 0.05f) * gAgentAvatarp->mHeadp->getWorldRotation() +
LLVector3(0.1f, 0.f, 0.f) * gAgentAvatarp->mPelvisp->getWorldRotation();
LLVector3 diff = mCameraPositionAgent - head_pos;
- diff = diff * ~gAgentAvatarp->mRoot.getWorldRotation();
+ diff = diff * ~gAgentAvatarp->mRoot->getWorldRotation();
LLJoint* torso_joint = gAgentAvatarp->mTorsop;
LLJoint* chest_joint = gAgentAvatarp->mChestp;
@@ -1457,7 +1445,7 @@ void LLAgentCamera::updateCamera()
gAgentAvatarp->mPelvisp->setPosition(gAgentAvatarp->mPelvisp->getPosition() + diff);
- gAgentAvatarp->mRoot.updateWorldMatrixChildren();
+ gAgentAvatarp->mRoot->updateWorldMatrixChildren();
for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin();
iter != gAgentAvatarp->mAttachmentPoints.end(); )
@@ -1658,7 +1646,6 @@ F32 LLAgentCamera::calcCameraFOVZoomFactor()
else if (mFocusObject.notNull() && !mFocusObject->isAvatar() && !mFocusOnAvatar)
{
// don't FOV zoom on mostly transparent objects
- LLVector3 focus_offset = mFocusObjectOffset;
F32 obj_min_dist = 0.f;
calcCameraMinDistance(obj_min_dist);
F32 current_distance = llmax(0.001f, camera_offset_dir.magVec());
@@ -1685,7 +1672,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
F32 camera_land_height;
LLVector3d frame_center_global = !isAgentAvatarValid() ?
gAgent.getPositionGlobal() :
- gAgent.getPosGlobalFromAgent(gAgentAvatarp->mRoot.getWorldPosition());
+ gAgent.getPosGlobalFromAgent(gAgentAvatarp->mRoot->getWorldPosition());
BOOL isConstrained = FALSE;
LLVector3d head_offset;
@@ -1820,7 +1807,6 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
// set the global camera position
LLVector3d camera_offset;
- LLVector3 av_pos = !isAgentAvatarValid() ? LLVector3::zero : gAgentAvatarp->getRenderPosition();
camera_offset.setVec( local_camera_offset );
camera_position_global = frame_center_global + head_offset + camera_offset;
@@ -2257,7 +2243,7 @@ void LLAgentCamera::changeCameraToThirdPerson(BOOL animate)
//-----------------------------------------------------------------------------
void LLAgentCamera::changeCameraToCustomizeAvatar()
{
- if (LLViewerJoystick::getInstance()->getOverrideCamera())
+ if (LLViewerJoystick::getInstance()->getOverrideCamera() || !isAgentAvatarValid())
{
return;
}
@@ -2281,29 +2267,21 @@ void LLAgentCamera::changeCameraToCustomizeAvatar()
gFocusMgr.setKeyboardFocus( NULL );
gFocusMgr.setMouseCapture( NULL );
- LLVOAvatarSelf::onCustomizeStart();
+ // Remove any pitch or rotation from the avatar
+ LLVector3 at = gAgent.getAtAxis();
+ at.mV[VZ] = 0.f;
+ at.normalize();
+ gAgent.resetAxes(at);
- if (isAgentAvatarValid())
- {
- // Remove any pitch or rotation from the avatar
- LLVector3 at = gAgent.getAtAxis();
- at.mV[VZ] = 0.f;
- at.normalize();
- gAgent.resetAxes(at);
+ gAgent.sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START);
+ gAgent.setCustomAnim(TRUE);
+ gAgentAvatarp->startMotion(ANIM_AGENT_CUSTOMIZE);
+ LLMotion* turn_motion = gAgentAvatarp->findMotion(ANIM_AGENT_CUSTOMIZE);
- gAgent.sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START);
- gAgent.setCustomAnim(TRUE);
- gAgentAvatarp->startMotion(ANIM_AGENT_CUSTOMIZE);
- LLMotion* turn_motion = gAgentAvatarp->findMotion(ANIM_AGENT_CUSTOMIZE);
-
- if (turn_motion)
- {
- // delay camera animation long enough to play through turn animation
- setAnimationDuration(turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP);
- }
-
- gAgentAvatarp->invalidateAll();
- gAgentAvatarp->updateMeshTextures();
+ if (turn_motion)
+ {
+ // delay camera animation long enough to play through turn animation
+ setAnimationDuration(turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP);
}
}
diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h
index 00fa6ea189..00fa6ea189 100644..100755
--- a/indra/newview/llagentcamera.h
+++ b/indra/newview/llagentcamera.h
diff --git a/indra/newview/llagentdata.cpp b/indra/newview/llagentdata.cpp
index 5f6a082d75..5f6a082d75 100644..100755
--- a/indra/newview/llagentdata.cpp
+++ b/indra/newview/llagentdata.cpp
diff --git a/indra/newview/llagentdata.h b/indra/newview/llagentdata.h
index 83d6a53d5e..83d6a53d5e 100644..100755
--- a/indra/newview/llagentdata.h
+++ b/indra/newview/llagentdata.h
diff --git a/indra/newview/llagentlanguage.cpp b/indra/newview/llagentlanguage.cpp
index fe6236a32a..fe6236a32a 100644..100755
--- a/indra/newview/llagentlanguage.cpp
+++ b/indra/newview/llagentlanguage.cpp
diff --git a/indra/newview/llagentlanguage.h b/indra/newview/llagentlanguage.h
index 2bb2eb7809..2bb2eb7809 100644..100755
--- a/indra/newview/llagentlanguage.h
+++ b/indra/newview/llagentlanguage.h
diff --git a/indra/newview/llagentlistener.cpp b/indra/newview/llagentlistener.cpp
index a4c0b056ac..a4c0b056ac 100644..100755
--- a/indra/newview/llagentlistener.cpp
+++ b/indra/newview/llagentlistener.cpp
diff --git a/indra/newview/llagentlistener.h b/indra/newview/llagentlistener.h
index 9a9c4073fe..9a9c4073fe 100644..100755
--- a/indra/newview/llagentlistener.h
+++ b/indra/newview/llagentlistener.h
diff --git a/indra/newview/llagentpicksinfo.cpp b/indra/newview/llagentpicksinfo.cpp
index 192ed141c7..192ed141c7 100644..100755
--- a/indra/newview/llagentpicksinfo.cpp
+++ b/indra/newview/llagentpicksinfo.cpp
diff --git a/indra/newview/llagentpicksinfo.h b/indra/newview/llagentpicksinfo.h
index abf7027ed2..abf7027ed2 100644..100755
--- a/indra/newview/llagentpicksinfo.h
+++ b/indra/newview/llagentpicksinfo.h
diff --git a/indra/newview/llagentpilot.cpp b/indra/newview/llagentpilot.cpp
index 734c502fcf..c7872fc5f6 100644..100755
--- a/indra/newview/llagentpilot.cpp
+++ b/indra/newview/llagentpilot.cpp
@@ -139,7 +139,7 @@ void LLAgentPilot::loadXML(const std::string& filename)
mActions.reset();
LLSD record;
- while (!file.eof() && LLSDSerialize::fromXML(record, file))
+ while (!file.eof() && LLSDParser::PARSE_FAILURE != LLSDSerialize::fromXML(record, file))
{
Action action;
action.mTime = record["time"].asReal();
diff --git a/indra/newview/llagentpilot.h b/indra/newview/llagentpilot.h
index dd1709ec0c..dd1709ec0c 100644..100755
--- a/indra/newview/llagentpilot.h
+++ b/indra/newview/llagentpilot.h
diff --git a/indra/newview/llagentui.cpp b/indra/newview/llagentui.cpp
index b9ec304b7e..b9ec304b7e 100644..100755
--- a/indra/newview/llagentui.cpp
+++ b/indra/newview/llagentui.cpp
diff --git a/indra/newview/llagentui.h b/indra/newview/llagentui.h
index dda5dc1fd1..dda5dc1fd1 100644..100755
--- a/indra/newview/llagentui.h
+++ b/indra/newview/llagentui.h
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index e441f21f90..c88694ef76 100644..100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -47,7 +47,7 @@
#include "lltooldraganddrop.h"
#include "llviewerregion.h"
#include "llvoavatarself.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
#include "llwearablelist.h"
#include <boost/scoped_ptr.hpp>
@@ -56,24 +56,21 @@ LLAgentWearables gAgentWearables;
BOOL LLAgentWearables::mInitialWearablesUpdateReceived = FALSE;
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
///////////////////////////////////////////////////////////////////////////////
// Callback to wear and start editing an item that has just been created.
-class LLWearAndEditCallback : public LLInventoryCallback
+void wear_and_edit_cb(const LLUUID& inv_item)
{
- void fire(const LLUUID& inv_item)
- {
- if (inv_item.isNull()) return;
-
- // Request editing the item after it gets worn.
- gAgentWearables.requestEditingWearable(inv_item);
-
- // Wear it.
- LLAppearanceMgr::instance().wearItemOnAvatar(inv_item);
- }
-};
+ if (inv_item.isNull()) return;
+
+ // Request editing the item after it gets worn.
+ gAgentWearables.requestEditingWearable(inv_item);
+
+ // Wear it.
+ LLAppearanceMgr::instance().wearItemOnAvatar(inv_item);
+}
///////////////////////////////////////////////////////////////////////////////
@@ -82,7 +79,7 @@ class LLWearAndEditCallback : public LLInventoryCallback
// wearable type stored in asset is some other value.
// Calling this function whenever a wearable is added to increase visibility if this problem
// turns up in other inventories.
-void checkWearableAgainstInventory(LLWearable *wearable)
+void checkWearableAgainstInventory(LLViewerWearable *wearable)
{
if (wearable->getItemID().isNull())
return;
@@ -119,7 +116,7 @@ void LLAgentWearables::dump()
llinfos << "Type: " << i << " count " << count << llendl;
for (U32 j=0; j<count; j++)
{
- LLWearable* wearable = getWearable((LLWearableType::EType)i,j);
+ LLViewerWearable* wearable = getViewerWearable((LLWearableType::EType)i,j);
if (wearable == NULL)
{
llinfos << " " << j << " NULL wearable" << llendl;
@@ -159,6 +156,7 @@ struct LLAgentDumper
};
LLAgentWearables::LLAgentWearables() :
+ LLWearableData(),
mWearablesLoaded(FALSE)
, mCOFChangeInProgress(false)
{
@@ -182,12 +180,11 @@ void LLAgentWearables::initClass()
}
void LLAgentWearables::setAvatarObject(LLVOAvatarSelf *avatar)
-{
- if (avatar)
- {
- avatar->outputRezTiming("Sending wearables request");
- sendAgentWearablesRequest();
- }
+{
+ llassert(avatar);
+ avatar->outputRezTiming("Sending wearables request");
+ sendAgentWearablesRequest();
+ setAvatarAppearance(avatar);
}
// wearables
@@ -213,12 +210,13 @@ LLAgentWearables::sendAgentWearablesUpdateCallback::~sendAgentWearablesUpdateCal
* @param todo Bitmask of actions to take on completion.
*/
LLAgentWearables::addWearableToAgentInventoryCallback::addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount> cb, LLWearableType::EType type, U32 index, LLWearable* wearable, U32 todo) :
+ LLPointer<LLRefCount> cb, LLWearableType::EType type, U32 index, LLViewerWearable* wearable, U32 todo, const std::string description) :
mType(type),
mIndex(index),
mWearable(wearable),
mTodo(todo),
- mCB(cb)
+ mCB(cb),
+ mDescription(description)
{
llinfos << "constructor" << llendl;
}
@@ -258,14 +256,14 @@ void LLAgentWearables::addWearableToAgentInventoryCallback::fire(const LLUUID& i
}
if (mTodo & CALL_WEARITEM)
{
- LLAppearanceMgr::instance().addCOFItemLink(inv_item, true);
+ LLAppearanceMgr::instance().addCOFItemLink(inv_item, true, NULL, mDescription);
}
}
void LLAgentWearables::addWearabletoAgentInventoryDone(const LLWearableType::EType type,
const U32 index,
const LLUUID& item_id,
- LLWearable* wearable)
+ LLViewerWearable* wearable)
{
llinfos << "type " << type << " index " << index << " item " << item_id.asString() << llendl;
@@ -312,7 +310,7 @@ void LLAgentWearables::sendAgentWearablesUpdate()
{
for (U32 index=0; index < getWearableCount((LLWearableType::EType)type); ++index)
{
- LLWearable* wearable = getWearable((LLWearableType::EType)type,index);
+ LLViewerWearable* wearable = getViewerWearable((LLWearableType::EType)type,index);
if (wearable)
{
if (wearable->getItemID().isNull())
@@ -354,7 +352,7 @@ void LLAgentWearables::sendAgentWearablesUpdate()
U8 type_u8 = (U8)type;
gMessageSystem->addU8Fast(_PREHASH_WearableType, type_u8);
- LLWearable* wearable = getWearable((LLWearableType::EType)type, 0);
+ LLViewerWearable* wearable = getViewerWearable((LLWearableType::EType)type, 0);
if (wearable)
{
//llinfos << "Sending wearable " << wearable->getName() << llendl;
@@ -382,14 +380,14 @@ void LLAgentWearables::sendAgentWearablesUpdate()
void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update,
const std::string new_name)
{
- LLWearable* old_wearable = getWearable(type, index);
+ LLViewerWearable* old_wearable = getViewerWearable(type, index);
if(!old_wearable) return;
bool name_changed = !new_name.empty() && (new_name != old_wearable->getName());
if (name_changed || old_wearable->isDirty() || old_wearable->isOldVersion())
{
LLUUID old_item_id = old_wearable->getItemID();
- LLWearable* new_wearable = LLWearableList::instance().createCopy(old_wearable);
- new_wearable->setItemID(old_item_id); // should this be in LLWearable::copyDataFrom()?
+ LLViewerWearable* new_wearable = LLWearableList::instance().createCopy(old_wearable);
+ new_wearable->setItemID(old_item_id); // should this be in LLViewerWearable::copyDataFrom()?
setWearable(type,index,new_wearable);
// old_wearable may still be referred to by other inventory items. Revert
@@ -458,6 +456,7 @@ void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32
void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
const U32 index,
const std::string& new_name,
+ const std::string& description,
BOOL save_in_lost_and_found)
{
if (!isWearableCopyable(type, index))
@@ -465,7 +464,7 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
llwarns << "LLAgent::saveWearableAs() not copyable." << llendl;
return;
}
- LLWearable* old_wearable = getWearable(type, index);
+ LLViewerWearable* old_wearable = getViewerWearable(type, index);
if (!old_wearable)
{
llwarns << "LLAgent::saveWearableAs() no old wearable." << llendl;
@@ -480,7 +479,7 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
}
std::string trunc_name(new_name);
LLStringUtil::truncate(trunc_name, DB_INV_ITEM_NAME_STR_LEN);
- LLWearable* new_wearable = LLWearableList::instance().createCopy(
+ LLViewerWearable* new_wearable = LLWearableList::instance().createCopy(
old_wearable,
trunc_name);
LLPointer<LLInventoryCallback> cb =
@@ -489,7 +488,9 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
type,
index,
new_wearable,
- addWearableToAgentInventoryCallback::CALL_WEARITEM);
+ addWearableToAgentInventoryCallback::CALL_WEARITEM,
+ description
+ );
LLUUID category_id;
if (save_in_lost_and_found)
{
@@ -518,7 +519,7 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
void LLAgentWearables::revertWearable(const LLWearableType::EType type, const U32 index)
{
- LLWearable* wearable = getWearable(type, index);
+ LLViewerWearable* wearable = getViewerWearable(type, index);
llassert(wearable);
if (wearable)
{
@@ -553,13 +554,13 @@ void LLAgentWearables::setWearableName(const LLUUID& item_id, const std::string&
LLUUID curr_item_id = getWearableItemID((LLWearableType::EType)i,j);
if (curr_item_id == item_id)
{
- LLWearable* old_wearable = getWearable((LLWearableType::EType)i,j);
+ LLViewerWearable* old_wearable = getViewerWearable((LLWearableType::EType)i,j);
llassert(old_wearable);
if (!old_wearable) continue;
std::string old_name = old_wearable->getName();
old_wearable->setName(new_name);
- LLWearable* new_wearable = LLWearableList::instance().createCopy(old_wearable);
+ LLViewerWearable* new_wearable = LLWearableList::instance().createCopy(old_wearable);
new_wearable->setItemID(item_id);
LLInventoryItem* item = gInventory.getItem(item_id);
if (item)
@@ -640,14 +641,14 @@ LLInventoryItem* LLAgentWearables::getWearableInventoryItem(LLWearableType::ETyp
return item;
}
-const LLWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id) const
+const LLViewerWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id) const
{
const LLUUID& base_item_id = gInventory.getLinkedItemID(item_id);
for (S32 i=0; i < LLWearableType::WT_COUNT; i++)
{
for (U32 j=0; j < getWearableCount((LLWearableType::EType)i); j++)
{
- const LLWearable * curr_wearable = getWearable((LLWearableType::EType)i, j);
+ const LLViewerWearable * curr_wearable = getViewerWearable((LLWearableType::EType)i, j);
if (curr_wearable && (curr_wearable->getItemID() == base_item_id))
{
return curr_wearable;
@@ -657,14 +658,14 @@ const LLWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id)
return NULL;
}
-LLWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id)
+LLViewerWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id)
{
const LLUUID& base_item_id = gInventory.getLinkedItemID(item_id);
for (S32 i=0; i < LLWearableType::WT_COUNT; i++)
{
for (U32 j=0; j < getWearableCount((LLWearableType::EType)i); j++)
{
- LLWearable * curr_wearable = getWearable((LLWearableType::EType)i, j);
+ LLViewerWearable * curr_wearable = getViewerWearable((LLWearableType::EType)i, j);
if (curr_wearable && (curr_wearable->getItemID() == base_item_id))
{
return curr_wearable;
@@ -674,13 +675,13 @@ LLWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id)
return NULL;
}
-LLWearable* LLAgentWearables::getWearableFromAssetID(const LLUUID& asset_id)
+LLViewerWearable* LLAgentWearables::getWearableFromAssetID(const LLUUID& asset_id)
{
for (S32 i=0; i < LLWearableType::WT_COUNT; i++)
{
for (U32 j=0; j < getWearableCount((LLWearableType::EType)i); j++)
{
- LLWearable * curr_wearable = getWearable((LLWearableType::EType)i, j);
+ LLViewerWearable * curr_wearable = getViewerWearable((LLWearableType::EType)i, j);
if (curr_wearable && (curr_wearable->getAssetID() == asset_id))
{
return curr_wearable;
@@ -699,215 +700,55 @@ void LLAgentWearables::sendAgentWearablesRequest()
gAgent.sendReliableMessage();
}
-// static
-BOOL LLAgentWearables::selfHasWearable(LLWearableType::EType type)
-{
- return (gAgentWearables.getWearableCount(type) > 0);
-}
-
-LLWearable* LLAgentWearables::getWearable(const LLWearableType::EType type, U32 index)
-{
- wearableentry_map_t::iterator wearable_iter = mWearableDatas.find(type);
- if (wearable_iter == mWearableDatas.end())
- {
- return NULL;
- }
- wearableentry_vec_t& wearable_vec = wearable_iter->second;
- if (index>=wearable_vec.size())
- {
- return NULL;
- }
- else
- {
- return wearable_vec[index];
- }
-}
-
-void LLAgentWearables::setWearable(const LLWearableType::EType type, U32 index, LLWearable *wearable)
+LLViewerWearable* LLAgentWearables::getViewerWearable(const LLWearableType::EType type, U32 index /*= 0*/)
{
-
- LLWearable *old_wearable = getWearable(type,index);
- if (!old_wearable)
- {
- pushWearable(type,wearable);
- return;
- }
-
- wearableentry_map_t::iterator wearable_iter = mWearableDatas.find(type);
- if (wearable_iter == mWearableDatas.end())
- {
- llwarns << "invalid type, type " << type << " index " << index << llendl;
- return;
- }
- wearableentry_vec_t& wearable_vec = wearable_iter->second;
- if (index>=wearable_vec.size())
- {
- llwarns << "invalid index, type " << type << " index " << index << llendl;
- }
- else
- {
- wearable_vec[index] = wearable;
- old_wearable->setLabelUpdated();
- wearableUpdated(wearable);
- checkWearableAgainstInventory(wearable);
- }
+ return dynamic_cast<LLViewerWearable*> (getWearable(type, index));
}
-U32 LLAgentWearables::pushWearable(const LLWearableType::EType type, LLWearable *wearable)
+const LLViewerWearable* LLAgentWearables::getViewerWearable(const LLWearableType::EType type, U32 index /*= 0*/) const
{
- if (wearable == NULL)
- {
- // no null wearables please!
- llwarns << "Null wearable sent for type " << type << llendl;
- return MAX_CLOTHING_PER_TYPE;
- }
- if (type < LLWearableType::WT_COUNT || mWearableDatas[type].size() < MAX_CLOTHING_PER_TYPE)
- {
- mWearableDatas[type].push_back(wearable);
- wearableUpdated(wearable);
- checkWearableAgainstInventory(wearable);
- return mWearableDatas[type].size()-1;
- }
- return MAX_CLOTHING_PER_TYPE;
+ return dynamic_cast<const LLViewerWearable*> (getWearable(type, index));
}
-void LLAgentWearables::wearableUpdated(LLWearable *wearable)
+// static
+BOOL LLAgentWearables::selfHasWearable(LLWearableType::EType type)
{
- gAgentAvatarp->wearableUpdated(wearable->getType(), FALSE);
- wearable->refreshName();
- wearable->setLabelUpdated();
-
- wearable->pullCrossWearableValues();
-
- // Hack pt 2. If the wearable we just loaded has definition version 24,
- // then force a re-save of this wearable after slamming the version number to 22.
- // This number was incorrectly incremented for internal builds before release, and
- // this fix will ensure that the affected wearables are re-saved with the right version number.
- // the versions themselves are compatible. This code can be removed before release.
- if( wearable->getDefinitionVersion() == 24 )
- {
- wearable->setDefinitionVersion(22);
- U32 index = getWearableIndex(wearable);
- llinfos << "forcing werable type " << wearable->getType() << " to version 22 from 24" << llendl;
- saveWearable(wearable->getType(),index,TRUE);
- }
-
+ return (gAgentWearables.getWearableCount(type) > 0);
}
-void LLAgentWearables::popWearable(LLWearable *wearable)
+// virtual
+void LLAgentWearables::wearableUpdated(LLWearable *wearable, BOOL removed)
{
- if (wearable == NULL)
+ if (isAgentAvatarValid())
{
- // nothing to do here. move along.
- return;
+ const BOOL upload_result = removed;
+ gAgentAvatarp->wearableUpdated(wearable->getType(), upload_result);
}
- U32 index = getWearableIndex(wearable);
- LLWearableType::EType type = wearable->getType();
+ LLWearableData::wearableUpdated(wearable, removed);
- if (index < MAX_CLOTHING_PER_TYPE && index < getWearableCount(type))
+ if (!removed)
{
- popWearable(type, index);
- }
-}
+ LLViewerWearable* viewer_wearable = dynamic_cast<LLViewerWearable*>(wearable);
+ viewer_wearable->refreshName();
-void LLAgentWearables::popWearable(const LLWearableType::EType type, U32 index)
-{
- LLWearable *wearable = getWearable(type, index);
- if (wearable)
- {
- mWearableDatas[type].erase(mWearableDatas[type].begin() + index);
- if (isAgentAvatarValid())
+ // Hack pt 2. If the wearable we just loaded has definition version 24,
+ // then force a re-save of this wearable after slamming the version number to 22.
+ // This number was incorrectly incremented for internal builds before release, and
+ // this fix will ensure that the affected wearables are re-saved with the right version number.
+ // the versions themselves are compatible. This code can be removed before release.
+ if( wearable->getDefinitionVersion() == 24 )
{
- gAgentAvatarp->wearableUpdated(wearable->getType(), TRUE);
+ wearable->setDefinitionVersion(22);
+ U32 index = getWearableIndex(wearable);
+ llinfos << "forcing wearable type " << wearable->getType() << " to version 22 from 24" << llendl;
+ saveWearable(wearable->getType(),index,TRUE);
}
- wearable->setLabelUpdated();
- }
-}
-U32 LLAgentWearables::getWearableIndex(const LLWearable *wearable) const
-{
- if (wearable == NULL)
- {
- return MAX_CLOTHING_PER_TYPE;
+ checkWearableAgainstInventory(viewer_wearable);
}
-
- const LLWearableType::EType type = wearable->getType();
- wearableentry_map_t::const_iterator wearable_iter = mWearableDatas.find(type);
- if (wearable_iter == mWearableDatas.end())
- {
- llwarns << "tried to get wearable index with an invalid type!" << llendl;
- return MAX_CLOTHING_PER_TYPE;
- }
- const wearableentry_vec_t& wearable_vec = wearable_iter->second;
- for(U32 index = 0; index < wearable_vec.size(); index++)
- {
- if (wearable_vec[index] == wearable)
- {
- return index;
- }
- }
-
- return MAX_CLOTHING_PER_TYPE;
}
-const LLWearable* LLAgentWearables::getWearable(const LLWearableType::EType type, U32 index) const
-{
- wearableentry_map_t::const_iterator wearable_iter = mWearableDatas.find(type);
- if (wearable_iter == mWearableDatas.end())
- {
- return NULL;
- }
- const wearableentry_vec_t& wearable_vec = wearable_iter->second;
- if (index>=wearable_vec.size())
- {
- return NULL;
- }
- else
- {
- return wearable_vec[index];
- }
-}
-
-LLWearable* LLAgentWearables::getTopWearable(const LLWearableType::EType type)
-{
- U32 count = getWearableCount(type);
- if ( count == 0)
- {
- return NULL;
- }
-
- return getWearable(type, count-1);
-}
-
-LLWearable* LLAgentWearables::getBottomWearable(const LLWearableType::EType type)
-{
- if (getWearableCount(type) == 0)
- {
- return NULL;
- }
-
- return getWearable(type, 0);
-}
-
-U32 LLAgentWearables::getWearableCount(const LLWearableType::EType type) const
-{
- wearableentry_map_t::const_iterator wearable_iter = mWearableDatas.find(type);
- if (wearable_iter == mWearableDatas.end())
- {
- return 0;
- }
- const wearableentry_vec_t& wearable_vec = wearable_iter->second;
- return wearable_vec.size();
-}
-
-U32 LLAgentWearables::getWearableCount(const U32 tex_index) const
-{
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType((LLVOAvatarDefines::ETextureIndex)tex_index);
- return getWearableCount(wearable_type);
-}
-
-
BOOL LLAgentWearables::itemUpdatePending(const LLUUID& item_id) const
{
return mItemsAwaitingWearableUpdate.find(item_id) != mItemsAwaitingWearableUpdate.end();
@@ -920,7 +761,7 @@ U32 LLAgentWearables::itemUpdatePendingCount() const
const LLUUID LLAgentWearables::getWearableItemID(LLWearableType::EType type, U32 index) const
{
- const LLWearable *wearable = getWearable(type,index);
+ const LLViewerWearable *wearable = getViewerWearable(type,index);
if (wearable)
return wearable->getItemID();
else
@@ -929,7 +770,7 @@ const LLUUID LLAgentWearables::getWearableItemID(LLWearableType::EType type, U32
const LLUUID LLAgentWearables::getWearableAssetID(LLWearableType::EType type, U32 index) const
{
- const LLWearable *wearable = getWearable(type,index);
+ const LLViewerWearable *wearable = getViewerWearable(type,index);
if (wearable)
return wearable->getAssetID();
else
@@ -955,8 +796,7 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs
if (isAgentAvatarValid())
{
- //gAgentAvatarp->clearPhases(); // reset phase timers for outfit loading.
- gAgentAvatarp->getPhases().startPhase("process_initial_wearables_update");
+ gAgentAvatarp->startPhase("process_initial_wearables_update");
gAgentAvatarp->outputRezTiming("Received initial wearables update");
}
@@ -1012,7 +852,7 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs
gMessageSystem->getUUIDFast(_PREHASH_WearableData, _PREHASH_AssetID, asset_id, i);
if (asset_id.isNull())
{
- LLWearable::removeFromAvatar(type, FALSE);
+ LLViewerWearable::removeFromAvatar(type, FALSE);
}
else
{
@@ -1058,7 +898,7 @@ void LLAgentWearables::recoverMissingWearable(const LLWearableType::EType type,
// Try to recover by replacing missing wearable with a new one.
LLNotificationsUtil::add("ReplacedMissingWearable");
lldebugs << "Wearable " << LLWearableType::getTypeLabel(type) << " could not be downloaded. Replaced inventory item with default wearable." << llendl;
- LLWearable* new_wearable = LLWearableList::instance().createNewWearable(type);
+ LLViewerWearable* new_wearable = LLWearableList::instance().createNewWearable(type, gAgentAvatarp);
setWearable(type,index,new_wearable);
//new_wearable->writeToAvatar(TRUE);
@@ -1093,9 +933,9 @@ void LLAgentWearables::recoverMissingWearableDone()
}
}
-void LLAgentWearables::addLocalTextureObject(const LLWearableType::EType wearable_type, const LLVOAvatarDefines::ETextureIndex texture_type, U32 wearable_index)
+void LLAgentWearables::addLocalTextureObject(const LLWearableType::EType wearable_type, const LLAvatarAppearanceDefines::ETextureIndex texture_type, U32 wearable_index)
{
- LLWearable* wearable = getWearable((LLWearableType::EType)wearable_type, wearable_index);
+ LLViewerWearable* wearable = getViewerWearable((LLWearableType::EType)wearable_type, wearable_index);
if (!wearable)
{
llerrs << "Tried to add local texture object to invalid wearable with type " << wearable_type << " and index " << wearable_index << llendl;
@@ -1125,10 +965,10 @@ public:
llinfos << "All items created" << llendl;
LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
LLAppearanceMgr::instance().linkAll(LLAppearanceMgr::instance().getCOF(),
- mItemsToLink,
- link_waiter);
+ mItemsToLink,
+ link_waiter);
}
- void addPendingWearable(LLWearable *wearable)
+ void addPendingWearable(LLViewerWearable *wearable)
{
if (!wearable)
{
@@ -1163,7 +1003,7 @@ public:
LLWearableType::EType type = item->getWearableType();
if (type < LLWearableType::WT_COUNT)
{
- LLWearable *wearable = mWearablesAwaitingItems[type];
+ LLViewerWearable *wearable = mWearablesAwaitingItems[type];
if (wearable)
wearable->setItemID(inv_item);
}
@@ -1176,7 +1016,7 @@ public:
private:
LLInventoryModel::item_array_t mItemsToLink;
- std::vector<LLWearable*> mWearablesAwaitingItems;
+ std::vector<LLViewerWearable*> mWearablesAwaitingItems;
};
void LLAgentWearables::createStandardWearables()
@@ -1208,7 +1048,7 @@ void LLAgentWearables::createStandardWearables()
if (create[i])
{
llassert(getWearableCount((LLWearableType::EType)i) == 0);
- LLWearable* wearable = LLWearableList::instance().createNewWearable((LLWearableType::EType)i);
+ LLViewerWearable* wearable = LLWearableList::instance().createNewWearable((LLWearableType::EType)i, gAgentAvatarp);
((OnWearableItemCreatedCB*)(&(*cb)))->addPendingWearable(wearable);
// no need to update here...
LLUUID category_id = LLUUID::null;
@@ -1267,7 +1107,7 @@ void LLAgentWearables::makeNewOutfitDone(S32 type, U32 index)
void LLAgentWearables::addWearableToAgentInventory(LLPointer<LLInventoryCallback> cb,
- LLWearable* wearable,
+ LLViewerWearable* wearable,
const LLUUID& category_id,
BOOL notify)
{
@@ -1305,7 +1145,7 @@ void LLAgentWearables::removeWearable(const LLWearableType::EType type, bool do_
}
else
{
- LLWearable* old_wearable = getWearable(type,index);
+ LLViewerWearable* old_wearable = getViewerWearable(type,index);
if (old_wearable)
{
@@ -1360,10 +1200,10 @@ void LLAgentWearables::removeWearableFinal(const LLWearableType::EType type, boo
//LLAgentDumper dumper("removeWearable");
if (do_remove_all)
{
- S32 max_entry = mWearableDatas[type].size()-1;
+ S32 max_entry = getWearableCount(type)-1;
for (S32 i=max_entry; i>=0; i--)
{
- LLWearable* old_wearable = getWearable(type,i);
+ LLViewerWearable* old_wearable = getViewerWearable(type,i);
//queryWearableCache(); // moved below
if (old_wearable)
{
@@ -1371,11 +1211,11 @@ void LLAgentWearables::removeWearableFinal(const LLWearableType::EType type, boo
old_wearable->removeFromAvatar(TRUE);
}
}
- mWearableDatas[type].clear();
+ clearWearableType(type);
}
else
{
- LLWearable* old_wearable = getWearable(type, index);
+ LLViewerWearable* old_wearable = getViewerWearable(type, index);
//queryWearableCache(); // moved below
if (old_wearable)
@@ -1394,7 +1234,7 @@ void LLAgentWearables::removeWearableFinal(const LLWearableType::EType type, boo
// Assumes existing wearables are not dirty.
void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& items,
- const LLDynamicArray< LLWearable* >& wearables,
+ const LLDynamicArray< LLViewerWearable* >& wearables,
BOOL remove)
{
llinfos << "setWearableOutfit() start" << llendl;
@@ -1419,7 +1259,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
S32 i;
for (i = 0; i < count; i++)
{
- LLWearable* new_wearable = wearables[i];
+ LLViewerWearable* new_wearable = wearables[i];
LLPointer<LLInventoryItem> new_item = items[i];
llassert(new_wearable);
@@ -1439,8 +1279,8 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
{
pushWearable(type,new_wearable);
}
- wearableUpdated(new_wearable);
- checkWearableAgainstInventory(new_wearable);
+ const BOOL removed = FALSE;
+ wearableUpdated(new_wearable, removed);
}
}
@@ -1476,7 +1316,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
// User has picked "wear on avatar" from a menu.
-void LLAgentWearables::setWearableItem(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append)
+void LLAgentWearables::setWearableItem(LLInventoryItem* new_item, LLViewerWearable* new_wearable, bool do_append)
{
//LLAgentDumper dumper("setWearableItem");
if (isWearingItem(new_item->getUUID()))
@@ -1491,7 +1331,7 @@ void LLAgentWearables::setWearableItem(LLInventoryItem* new_item, LLWearable* ne
{
// Remove old wearable, if any
// MULTI_WEARABLE: hardwired to 0
- LLWearable* old_wearable = getWearable(type,0);
+ LLViewerWearable* old_wearable = getViewerWearable(type,0);
if (old_wearable)
{
const LLUUID& old_item_id = old_wearable->getItemID();
@@ -1517,7 +1357,7 @@ void LLAgentWearables::setWearableItem(LLInventoryItem* new_item, LLWearable* ne
}
// static
-bool LLAgentWearables::onSetWearableDialog(const LLSD& notification, const LLSD& response, LLWearable* wearable)
+bool LLAgentWearables::onSetWearableDialog(const LLSD& notification, const LLSD& response, LLViewerWearable* wearable)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
LLInventoryItem* new_item = gInventory.getItem(notification["payload"]["item_id"].asUUID());
@@ -1553,16 +1393,17 @@ bool LLAgentWearables::onSetWearableDialog(const LLSD& notification, const LLSD&
// Called from setWearableItem() and onSetWearableDialog() to actually set the wearable.
// MULTI_WEARABLE: unify code after null objects are gone.
-void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append)
+void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLViewerWearable* new_wearable, bool do_append)
{
const LLWearableType::EType type = new_wearable->getType();
if (do_append && getWearableItemID(type,0).notNull())
{
new_wearable->setItemID(new_item->getUUID());
- mWearableDatas[type].push_back(new_wearable);
+ const bool trigger_updated = false;
+ pushWearable(type, new_wearable, trigger_updated);
llinfos << "Added additional wearable for type " << type
- << " size is now " << mWearableDatas[type].size() << llendl;
+ << " size is now " << getWearableCount(type) << llendl;
checkWearableAgainstInventory(new_wearable);
}
else
@@ -1570,7 +1411,7 @@ void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLWearable* n
// Replace the old wearable with a new one.
llassert(new_item->getAssetUUID() == new_wearable->getAssetID());
- LLWearable *old_wearable = getWearable(type,0);
+ LLViewerWearable *old_wearable = getViewerWearable(type,0);
LLUUID old_item_id;
if (old_wearable)
{
@@ -1585,7 +1426,7 @@ void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLWearable* n
gInventory.notifyObservers();
}
llinfos << "Replaced current element 0 for type " << type
- << " size is now " << mWearableDatas[type].size() << llendl;
+ << " size is now " << getWearableCount(type) << llendl;
}
//llinfos << "LLVOAvatar::setWearableItem()" << llendl;
@@ -1597,7 +1438,7 @@ void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLWearable* n
void LLAgentWearables::queryWearableCache()
{
- if (!areWearablesLoaded())
+ if (!areWearablesLoaded() || (gAgent.getRegion() && gAgent.getRegion()->getCentralBakeVersion()))
{
return;
}
@@ -1626,7 +1467,7 @@ void LLAgentWearables::queryWearableCache()
num_queries++;
// *NOTE: make sure at least one request gets packed
- ETextureIndex te_index = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
+ ETextureIndex te_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
//llinfos << "Requesting texture for hash " << hash << " in baked texture slot " << baked_index << llendl;
gMessageSystem->nextBlockFast(_PREHASH_WearableData);
@@ -1645,53 +1486,21 @@ void LLAgentWearables::queryWearableCache()
gAgentAvatarp->outputRezTiming("Fetching textures from cache");
}
- LL_INFOS("Avatar") << gAgentAvatarp->avString() << "Requesting texture cache entry for " << num_queries << " baked textures" << LL_ENDL;
+ LL_DEBUGS("Avatar") << gAgentAvatarp->avString() << "Requesting texture cache entry for " << num_queries << " baked textures" << LL_ENDL;
gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
gAgentQueryManager.mNumPendingQueries++;
gAgentQueryManager.mWearablesCacheQueryID++;
}
}
-LLUUID LLAgentWearables::computeBakedTextureHash(LLVOAvatarDefines::EBakedTextureIndex baked_index,
- BOOL generate_valid_hash) // Set to false if you want to upload the baked texture w/o putting it in the cache
+// virtual
+void LLAgentWearables::invalidateBakedTextureHash(LLMD5& hash) const
{
- LLUUID hash_id;
- bool hash_computed = false;
- LLMD5 hash;
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index);
-
- for (U8 i=0; i < baked_dict->mWearables.size(); i++)
- {
- const LLWearableType::EType baked_type = baked_dict->mWearables[i];
- const U32 num_wearables = getWearableCount(baked_type);
- for (U32 index = 0; index < num_wearables; ++index)
- {
- const LLWearable* wearable = getWearable(baked_type,index);
- if (wearable)
- {
- LLUUID asset_id = wearable->getAssetID();
- hash.update((const unsigned char*)asset_id.mData, UUID_BYTES);
- hash_computed = true;
- }
- }
- }
- if (hash_computed)
+ // Add some garbage into the hash so that it becomes invalid.
+ if (isAgentAvatarValid())
{
- hash.update((const unsigned char*)baked_dict->mWearablesHashID.mData, UUID_BYTES);
-
- // Add some garbage into the hash so that it becomes invalid.
- if (!generate_valid_hash)
- {
- if (isAgentAvatarValid())
- {
- hash.update((const unsigned char*)gAgentAvatarp->getID().mData, UUID_BYTES);
- }
- }
- hash.finalize();
- hash.raw_digest(hash_id.mData);
+ hash.update((const unsigned char*)gAgentAvatarp->getID().mData, UUID_BYTES);
}
-
- return hash_id;
}
// User has picked "remove from avatar" from a menu.
@@ -1715,7 +1524,7 @@ void LLAgentWearables::userRemoveWearablesOfType(const LLWearableType::EType &ty
}
}
-// Combines userRemoveAllAttachments() and userAttachMultipleAttachments() logic to
+// Combines userRemoveMulipleAttachments() and userAttachMultipleAttachments() logic to
// get attachments into desired state with minimal number of adds/removes.
void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array)
{
@@ -1811,31 +1620,6 @@ void LLAgentWearables::userRemoveMultipleAttachments(llvo_vec_t& objects_to_remo
gMessageSystem->sendReliable(gAgent.getRegionHost());
}
-void LLAgentWearables::userRemoveAllAttachments()
-{
- if (!isAgentAvatarValid()) return;
-
- llvo_vec_t objects_to_remove;
-
- for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin();
- iter != gAgentAvatarp->mAttachmentPoints.end();)
- {
- LLVOAvatar::attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
- attachment_iter != attachment->mAttachedObjects.end();
- ++attachment_iter)
- {
- LLViewerObject *attached_object = (*attachment_iter);
- if (attached_object)
- {
- objects_to_remove.push_back(attached_object);
- }
- }
- }
- userRemoveMultipleAttachments(objects_to_remove);
-}
-
void LLAgentWearables::userAttachMultipleAttachments(LLInventoryModel::item_array_t& obj_item_array)
{
// Build a compound message to send all the objects that need to be rezzed.
@@ -1900,7 +1684,7 @@ void LLAgentWearables::checkWearablesLoaded() const
// Returns false if the given wearable is already topmost/bottommost
// (depending on closer_to_body parameter).
-bool LLAgentWearables::canMoveWearable(const LLUUID& item_id, bool closer_to_body)
+bool LLAgentWearables::canMoveWearable(const LLUUID& item_id, bool closer_to_body) const
{
const LLWearable* wearable = getWearableFromItemID(item_id);
if (!wearable) return false;
@@ -1928,7 +1712,7 @@ void LLAgentWearables::updateWearablesLoaded()
}
}
-bool LLAgentWearables::canWearableBeRemoved(const LLWearable* wearable) const
+bool LLAgentWearables::canWearableBeRemoved(const LLViewerWearable* wearable) const
{
if (!wearable) return false;
@@ -1943,7 +1727,7 @@ void LLAgentWearables::animateAllWearableParams(F32 delta, BOOL upload_bake)
{
for (S32 count = 0; count < (S32)getWearableCount((LLWearableType::EType)type); ++count)
{
- LLWearable *wearable = getWearable((LLWearableType::EType)type,count);
+ LLViewerWearable *wearable = getViewerWearable((LLWearableType::EType)type,count);
llassert(wearable);
if (wearable)
{
@@ -1958,28 +1742,39 @@ bool LLAgentWearables::moveWearable(const LLViewerInventoryItem* item, bool clos
if (!item) return false;
if (!item->isWearableType()) return false;
- wearableentry_map_t::iterator wearable_iter = mWearableDatas.find(item->getWearableType());
- if (wearable_iter == mWearableDatas.end()) return false;
-
- wearableentry_vec_t& wearable_vec = wearable_iter->second;
- if (wearable_vec.empty()) return false;
+ LLWearableType::EType type = item->getWearableType();
+ U32 wearable_count = getWearableCount(type);
+ if (0 == wearable_count) return false;
const LLUUID& asset_id = item->getAssetUUID();
//nowhere to move if the wearable is already on any boundary (closest to the body/furthest from the body)
- if (closer_to_body && asset_id == wearable_vec.front()->getAssetID()) return false;
- if (!closer_to_body && asset_id == wearable_vec.back()->getAssetID()) return false;
+ if (closer_to_body)
+ {
+ LLViewerWearable* bottom_wearable = dynamic_cast<LLViewerWearable*>( getBottomWearable(type) );
+ if (bottom_wearable->getAssetID() == asset_id)
+ {
+ return false;
+ }
+ }
+ else // !closer_to_body
+ {
+ LLViewerWearable* top_wearable = dynamic_cast<LLViewerWearable*>( getTopWearable(type) );
+ if (top_wearable->getAssetID() == asset_id)
+ {
+ return false;
+ }
+ }
- for (U32 i = 0; i < wearable_vec.size(); ++i)
+ for (U32 i = 0; i < wearable_count; ++i)
{
- LLWearable* wearable = wearable_vec[i];
+ LLViewerWearable* wearable = getViewerWearable(type, i);
if (!wearable) continue;
if (wearable->getAssetID() != asset_id) continue;
//swapping wearables
U32 swap_i = closer_to_body ? i-1 : i+1;
- wearable_vec[i] = wearable_vec[swap_i];
- wearable_vec[swap_i] = wearable;
+ swapWearables(type, i, swap_i);
return true;
}
@@ -1991,10 +1786,10 @@ void LLAgentWearables::createWearable(LLWearableType::EType type, bool wear, con
{
if (type == LLWearableType::WT_INVALID || type == LLWearableType::WT_NONE) return;
- LLWearable* wearable = LLWearableList::instance().createNewWearable(type);
+ LLViewerWearable* wearable = LLWearableList::instance().createNewWearable(type, gAgentAvatarp);
LLAssetType::EType asset_type = wearable->getAssetType();
LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE;
- LLPointer<LLInventoryCallback> cb = wear ? new LLWearAndEditCallback : NULL;
+ LLPointer<LLInventoryCallback> cb = wear ? new LLBoostFuncInventoryCallback(wear_and_edit_cb) : NULL;
LLUUID folder_id;
if (parent_id.notNull())
@@ -2024,7 +1819,7 @@ void LLAgentWearables::editWearable(const LLUUID& item_id)
return;
}
- LLWearable* wearable = gAgentWearables.getWearableFromItemID(item_id);
+ LLViewerWearable* wearable = gAgentWearables.getWearableFromItemID(item_id);
if (!wearable)
{
llwarns << "Cannot get wearable" << llendl;
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index 5932be21c6..5be4648636 100644..100755
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -36,16 +36,16 @@
// newview
#include "llinventorymodel.h"
#include "llviewerinventory.h"
-#include "llvoavatardefines.h"
+#include "llavatarappearancedefines.h"
+#include "llwearabledata.h"
class LLInventoryItem;
class LLVOAvatarSelf;
-class LLWearable;
+class LLViewerWearable;
class LLInitialWearablesFetch;
class LLViewerObject;
-class LLTexLayerTemplate;
-class LLAgentWearables : public LLInitClass<LLAgentWearables>
+class LLAgentWearables : public LLInitClass<LLAgentWearables>, public LLWearableData
{
//--------------------------------------------------------------------
// Constructors / destructors / Initializers
@@ -79,10 +79,10 @@ public:
bool isCOFChangeInProgress() const { return mCOFChangeInProgress; }
void updateWearablesLoaded();
void checkWearablesLoaded() const;
- bool canMoveWearable(const LLUUID& item_id, bool closer_to_body);
+ bool canMoveWearable(const LLUUID& item_id, bool closer_to_body) const;
// Note: False for shape, skin, eyes, and hair, unless you have MORE than 1.
- bool canWearableBeRemoved(const LLWearable* wearable) const;
+ bool canWearableBeRemoved(const LLViewerWearable* wearable) const;
void animateAllWearableParams(F32 delta, BOOL upload_bake);
@@ -92,52 +92,38 @@ public:
public:
const LLUUID getWearableItemID(LLWearableType::EType type, U32 index /*= 0*/) const;
const LLUUID getWearableAssetID(LLWearableType::EType type, U32 index /*= 0*/) const;
- const LLWearable* getWearableFromItemID(const LLUUID& item_id) const;
- LLWearable* getWearableFromItemID(const LLUUID& item_id);
- LLWearable* getWearableFromAssetID(const LLUUID& asset_id);
+ const LLViewerWearable* getWearableFromItemID(const LLUUID& item_id) const;
+ LLViewerWearable* getWearableFromItemID(const LLUUID& item_id);
+ LLViewerWearable* getWearableFromAssetID(const LLUUID& asset_id);
+ LLViewerWearable* getViewerWearable(const LLWearableType::EType type, U32 index /*= 0*/);
+ const LLViewerWearable* getViewerWearable(const LLWearableType::EType type, U32 index /*= 0*/) const;
LLInventoryItem* getWearableInventoryItem(LLWearableType::EType type, U32 index /*= 0*/);
static BOOL selfHasWearable(LLWearableType::EType type);
- LLWearable* getWearable(const LLWearableType::EType type, U32 index /*= 0*/);
- const LLWearable* getWearable(const LLWearableType::EType type, U32 index /*= 0*/) const;
- LLWearable* getTopWearable(const LLWearableType::EType type);
- LLWearable* getBottomWearable(const LLWearableType::EType type);
- U32 getWearableCount(const LLWearableType::EType type) const;
- U32 getWearableCount(const U32 tex_index) const;
-
- static const U32 MAX_CLOTHING_PER_TYPE = 5;
-
//--------------------------------------------------------------------
// Setters
//--------------------------------------------------------------------
-
private:
- // Low-level data structure setter - public access is via setWearableItem, etc.
- void setWearable(const LLWearableType::EType type, U32 index, LLWearable *wearable);
- U32 pushWearable(const LLWearableType::EType type, LLWearable *wearable);
- void wearableUpdated(LLWearable *wearable);
- void popWearable(LLWearable *wearable);
- void popWearable(const LLWearableType::EType type, U32 index);
-
+ /*virtual*/void wearableUpdated(LLWearable *wearable, BOOL removed);
public:
- void setWearableItem(LLInventoryItem* new_item, LLWearable* wearable, bool do_append = false);
- void setWearableOutfit(const LLInventoryItem::item_array_t& items, const LLDynamicArray< LLWearable* >& wearables, BOOL remove);
+ void setWearableItem(LLInventoryItem* new_item, LLViewerWearable* wearable, bool do_append = false);
+ void setWearableOutfit(const LLInventoryItem::item_array_t& items, const LLDynamicArray< LLViewerWearable* >& wearables, BOOL remove);
void setWearableName(const LLUUID& item_id, const std::string& new_name);
- void addLocalTextureObject(const LLWearableType::EType wearable_type, const LLVOAvatarDefines::ETextureIndex texture_type, U32 wearable_index);
- U32 getWearableIndex(const LLWearable *wearable) const;
+ // *TODO: Move this into llappearance/LLWearableData ?
+ void addLocalTextureObject(const LLWearableType::EType wearable_type, const LLAvatarAppearanceDefines::ETextureIndex texture_type, U32 wearable_index);
protected:
- void setWearableFinal(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append = false);
- static bool onSetWearableDialog(const LLSD& notification, const LLSD& response, LLWearable* wearable);
+ void setWearableFinal(LLInventoryItem* new_item, LLViewerWearable* new_wearable, bool do_append = false);
+ static bool onSetWearableDialog(const LLSD& notification, const LLSD& response, LLViewerWearable* wearable);
void addWearableToAgentInventory(LLPointer<LLInventoryCallback> cb,
- LLWearable* wearable,
+ LLViewerWearable* wearable,
const LLUUID& category_id = LLUUID::null,
BOOL notify = TRUE);
void addWearabletoAgentInventoryDone(const LLWearableType::EType type,
const U32 index,
const LLUUID& item_id,
- LLWearable* wearable);
+ LLViewerWearable* wearable);
void recoverMissingWearable(const LLWearableType::EType type, U32 index /*= 0*/);
void recoverMissingWearableDone();
@@ -172,15 +158,14 @@ protected:
public:
// Processes the initial wearables update message (if necessary, since the outfit folder makes it redundant)
static void processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data);
- LLUUID computeBakedTextureHash(LLVOAvatarDefines::EBakedTextureIndex baked_index,
- BOOL generate_valid_hash = TRUE);
protected:
+ /*virtual*/ void invalidateBakedTextureHash(LLMD5& hash) const;
void sendAgentWearablesUpdate();
void sendAgentWearablesRequest();
void queryWearableCache();
void updateServer();
- static void onInitialWearableAssetArrived(LLWearable* wearable, void* userdata);
+ static void onInitialWearableAssetArrived(LLViewerWearable* wearable, void* userdata);
//--------------------------------------------------------------------
// Outfits
@@ -198,7 +183,7 @@ private:
// Save Wearables
//--------------------------------------------------------------------
public:
- void saveWearableAs(const LLWearableType::EType type, const U32 index, const std::string& new_name, BOOL save_in_lost_and_found);
+ void saveWearableAs(const LLWearableType::EType type, const U32 index, const std::string& new_name, const std::string& description, BOOL save_in_lost_and_found);
void saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update = TRUE,
const std::string new_name = "");
void saveAllWearables();
@@ -215,7 +200,6 @@ public:
static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array);
static void userRemoveMultipleAttachments(llvo_vec_t& llvo_array);
- static void userRemoveAllAttachments();
static void userAttachMultipleAttachments(LLInventoryModel::item_array_t& obj_item_array);
BOOL itemUpdatePending(const LLUUID& item_id) const;
@@ -245,10 +229,6 @@ private:
// Member variables
//--------------------------------------------------------------------
private:
- typedef std::vector<LLWearable*> wearableentry_vec_t; // all wearables of a certain type (EG all shirts)
- typedef std::map<LLWearableType::EType, wearableentry_vec_t> wearableentry_map_t; // wearable "categories" arranged by wearable type
- wearableentry_map_t mWearableDatas;
-
static BOOL mInitialWearablesUpdateReceived;
BOOL mWearablesLoaded;
std::set<LLUUID> mItemsAwaitingWearableUpdate;
@@ -289,15 +269,17 @@ private:
addWearableToAgentInventoryCallback(LLPointer<LLRefCount> cb,
LLWearableType::EType type,
U32 index,
- LLWearable* wearable,
- U32 todo = CALL_NONE);
+ LLViewerWearable* wearable,
+ U32 todo = CALL_NONE,
+ const std::string description = "");
virtual void fire(const LLUUID& inv_item);
private:
LLWearableType::EType mType;
U32 mIndex;
- LLWearable* mWearable;
+ LLViewerWearable* mWearable;
U32 mTodo;
LLPointer<LLRefCount> mCB;
+ std::string mDescription;
};
}; // LLAgentWearables
diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp
index e31e39dca2..2d2d730396 100644..100755
--- a/indra/newview/llagentwearablesfetch.cpp
+++ b/indra/newview/llagentwearablesfetch.cpp
@@ -35,61 +35,52 @@
#include "llvoavatarself.h"
-class LLOrderMyOutfitsOnDestroy: public LLInventoryCallback
+void order_my_outfits_cb()
{
-public:
- LLOrderMyOutfitsOnDestroy() {};
-
- virtual ~LLOrderMyOutfitsOnDestroy()
+ if (!LLApp::isRunning())
{
- if (!LLApp::isRunning())
- {
- llwarns << "called during shutdown, skipping" << llendl;
- return;
- }
+ llwarns << "called during shutdown, skipping" << llendl;
+ return;
+ }
- const LLUUID& my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
- if (my_outfits_id.isNull()) return;
-
- LLInventoryModel::cat_array_t* cats;
- LLInventoryModel::item_array_t* items;
- gInventory.getDirectDescendentsOf(my_outfits_id, cats, items);
- if (!cats) return;
+ const LLUUID& my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
+ if (my_outfits_id.isNull()) return;
- //My Outfits should at least contain saved initial outfit and one another outfit
- if (cats->size() < 2)
- {
- llwarning("My Outfits category was not populated properly", 0);
- return;
- }
+ LLInventoryModel::cat_array_t* cats;
+ LLInventoryModel::item_array_t* items;
+ gInventory.getDirectDescendentsOf(my_outfits_id, cats, items);
+ if (!cats) return;
- llinfos << "Starting updating My Outfits with wearables ordering information" << llendl;
+ //My Outfits should at least contain saved initial outfit and one another outfit
+ if (cats->size() < 2)
+ {
+ llwarning("My Outfits category was not populated properly", 0);
+ return;
+ }
- for (LLInventoryModel::cat_array_t::iterator outfit_iter = cats->begin();
- outfit_iter != cats->end(); ++outfit_iter)
- {
- const LLUUID& cat_id = (*outfit_iter)->getUUID();
- if (cat_id.isNull()) continue;
+ llinfos << "Starting updating My Outfits with wearables ordering information" << llendl;
- // saved initial outfit already contains wearables ordering information
- if (cat_id == LLAppearanceMgr::getInstance()->getBaseOutfitUUID()) continue;
+ for (LLInventoryModel::cat_array_t::iterator outfit_iter = cats->begin();
+ outfit_iter != cats->end(); ++outfit_iter)
+ {
+ const LLUUID& cat_id = (*outfit_iter)->getUUID();
+ if (cat_id.isNull()) continue;
- LLAppearanceMgr::getInstance()->updateClothingOrderingInfo(cat_id);
- }
+ // saved initial outfit already contains wearables ordering information
+ if (cat_id == LLAppearanceMgr::getInstance()->getBaseOutfitUUID()) continue;
- llinfos << "Finished updating My Outfits with wearables ordering information" << llendl;
+ LLAppearanceMgr::getInstance()->updateClothingOrderingInfo(cat_id);
}
- /* virtual */ void fire(const LLUUID& inv_item) {};
-};
-
+ llinfos << "Finished updating My Outfits with wearables ordering information" << llendl;
+}
LLInitialWearablesFetch::LLInitialWearablesFetch(const LLUUID& cof_id) :
LLInventoryFetchDescendentsObserver(cof_id)
{
if (isAgentAvatarValid())
{
- gAgentAvatarp->getPhases().startPhase("initial_wearables_fetch");
+ gAgentAvatarp->startPhase("initial_wearables_fetch");
gAgentAvatarp->outputRezTiming("Initial wearables fetch started");
}
}
@@ -108,7 +99,7 @@ void LLInitialWearablesFetch::done()
doOnIdleOneTime(boost::bind(&LLInitialWearablesFetch::processContents,this));
if (isAgentAvatarValid())
{
- gAgentAvatarp->getPhases().stopPhase("initial_wearables_fetch");
+ gAgentAvatarp->stopPhase("initial_wearables_fetch");
gAgentAvatarp->outputRezTiming("Initial wearables fetch done");
}
}
@@ -563,7 +554,7 @@ void LLLibraryOutfitsFetch::contentsDone()
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
- LLPointer<LLOrderMyOutfitsOnDestroy> order_myoutfits_on_destroy = new LLOrderMyOutfitsOnDestroy;
+ LLPointer<LLInventoryCallback> order_myoutfits_on_destroy = new LLBoostFuncInventoryCallback(no_op_inventory_func, order_my_outfits_cb);
for (uuid_vec_t::const_iterator folder_iter = mImportedClothingFolders.begin();
folder_iter != mImportedClothingFolders.end();
diff --git a/indra/newview/llagentwearablesfetch.h b/indra/newview/llagentwearablesfetch.h
index bedc445c0e..bedc445c0e 100644..100755
--- a/indra/newview/llagentwearablesfetch.h
+++ b/indra/newview/llagentwearablesfetch.h
diff --git a/indra/newview/llanimstatelabels.cpp b/indra/newview/llanimstatelabels.cpp
index a0858612c2..a0858612c2 100644..100755
--- a/indra/newview/llanimstatelabels.cpp
+++ b/indra/newview/llanimstatelabels.cpp
diff --git a/indra/newview/llanimstatelabels.h b/indra/newview/llanimstatelabels.h
index 97aabf5378..97aabf5378 100644..100755
--- a/indra/newview/llanimstatelabels.h
+++ b/indra/newview/llanimstatelabels.h
diff --git a/indra/newview/llappcorehttp.cpp b/indra/newview/llappcorehttp.cpp
index 0d7d41304d..0d7d41304d 100644..100755
--- a/indra/newview/llappcorehttp.cpp
+++ b/indra/newview/llappcorehttp.cpp
diff --git a/indra/newview/llappcorehttp.h b/indra/newview/llappcorehttp.h
index 241d73ad52..241d73ad52 100644..100755
--- a/indra/newview/llappcorehttp.h
+++ b/indra/newview/llappcorehttp.h
diff --git a/indra/newview/llappearance.h b/indra/newview/llappearance.h
index a28b77b1fc..05dfac4e42 100644..100755
--- a/indra/newview/llappearance.h
+++ b/indra/newview/llappearance.h
@@ -38,14 +38,14 @@ public:
void addParam( S32 id, F32 value ) { mParamMap[id] = value; }
F32 getParam( S32 id, F32 defval ) { return get_if_there(mParamMap, id, defval ); }
- void addTexture( S32 te, const LLUUID& uuid ) { if( te < LLVOAvatarDefines::TEX_NUM_INDICES ) mTextures[te] = uuid; }
- const LLUUID& getTexture( S32 te ) { return ( te < LLVOAvatarDefines::TEX_NUM_INDICES ) ? mTextures[te] : LLUUID::null; }
+ void addTexture( S32 te, const LLUUID& uuid ) { if( te < LLAvatarAppearanceDefines::TEX_NUM_INDICES ) mTextures[te] = uuid; }
+ const LLUUID& getTexture( S32 te ) { return ( te < LLAvatarAppearanceDefines::TEX_NUM_INDICES ) ? mTextures[te] : LLUUID::null; }
- void clear() { mParamMap.clear(); for( S32 i=0; i<LLVOAvatarDefines::TEX_NUM_INDICES; i++ ) mTextures[i].setNull(); }
+ void clear() { mParamMap.clear(); for( S32 i=0; i<LLAvatarAppearanceDefines::TEX_NUM_INDICES; i++ ) mTextures[i].setNull(); }
typedef std::map<S32, F32> param_map_t;
param_map_t mParamMap;
- LLUUID mTextures[LLVOAvatarDefines::TEX_NUM_INDICES];
+ LLUUID mTextures[LLAvatarAppearanceDefines::TEX_NUM_INDICES];
};
#endif // LL_LLAPPEARANCE_H
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 769b4eafe1..652f199e28 100644..100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -26,6 +26,7 @@
#include "llviewerprecompiledheaders.h"
+#include <boost/lexical_cast.hpp>
#include "llaccordionctrltab.h"
#include "llagent.h"
#include "llagentcamera.h"
@@ -49,6 +50,13 @@
#include "llvoavatarself.h"
#include "llviewerregion.h"
#include "llwearablelist.h"
+#include "llsdutil.h"
+#include "llsdserialize.h"
+
+#if LL_MSVC
+// disable boost::lexical_cast warning
+#pragma warning (disable:4702)
+#endif
std::string self_av_string()
{
@@ -155,71 +163,342 @@ LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id, const std::string
}
}
-class LLWearInventoryCategoryCallback : public LLInventoryCallback
+// We want this to be much lower (e.g. 15.0 is usually fine), bumping
+// up for now until we can diagnose some cases of very slow response
+// to requests.
+const F32 DEFAULT_RETRY_AFTER_INTERVAL = 300.0;
+
+// Given the current back-end problems, retrying is causing too many
+// duplicate items. Bump this back to 2 once they are resolved (or can
+// leave at 0 if the operations become actually reliable).
+const S32 DEFAULT_MAX_RETRIES = 0;
+
+class LLCallAfterInventoryBatchMgr: public LLEventTimer
{
public:
- LLWearInventoryCategoryCallback(const LLUUID& cat_id, bool append)
- {
- mCatID = cat_id;
- mAppend = append;
+ LLCallAfterInventoryBatchMgr(const LLUUID& dst_cat_id,
+ const std::string& phase_name,
+ nullary_func_t on_completion_func,
+ nullary_func_t on_failure_func = no_op,
+ F32 retry_after = DEFAULT_RETRY_AFTER_INTERVAL,
+ S32 max_retries = DEFAULT_MAX_RETRIES
+ ):
+ mDstCatID(dst_cat_id),
+ mTrackingPhase(phase_name),
+ mOnCompletionFunc(on_completion_func),
+ mOnFailureFunc(on_failure_func),
+ mRetryAfter(retry_after),
+ mMaxRetries(max_retries),
+ mPendingRequests(0),
+ mFailCount(0),
+ mCompletionOrFailureCalled(false),
+ mRetryCount(0),
+ LLEventTimer(5.0)
+ {
+ if (!mTrackingPhase.empty())
+ {
+ selfStartPhase(mTrackingPhase);
+ }
+ }
+
+ void addItems(LLInventoryModel::item_array_t& src_items)
+ {
+ for (LLInventoryModel::item_array_t::const_iterator it = src_items.begin();
+ it != src_items.end();
+ ++it)
+ {
+ LLViewerInventoryItem* item = *it;
+ llassert(item);
+ addItem(item->getUUID());
+ }
+ }
- LL_INFOS("Avatar") << self_av_string() << "starting" << LL_ENDL;
+ // Request or re-request operation for specified item.
+ void addItem(const LLUUID& item_id)
+ {
+ LL_DEBUGS("Avatar") << "item_id " << item_id << llendl;
- selfStartPhase("wear_inventory_category_callback");
+ if (!requestOperation(item_id))
+ {
+ LL_DEBUGS("Avatar") << "item_id " << item_id << " requestOperation false, skipping" << llendl;
+ return;
+ }
+
+ mPendingRequests++;
+ // On a re-request, this will reset the timer.
+ mWaitTimes[item_id] = LLTimer();
+ if (mRetryCounts.find(item_id) == mRetryCounts.end())
+ {
+ mRetryCounts[item_id] = 0;
+ }
+ else
+ {
+ mRetryCounts[item_id]++;
+ }
}
- void fire(const LLUUID& item_id)
+
+ virtual bool requestOperation(const LLUUID& item_id) = 0;
+
+ void onOp(const LLUUID& src_id, const LLUUID& dst_id, LLTimer timestamp)
{
- /*
- * Do nothing. We only care about the destructor
- *
- * The reason for this is that this callback is used in a hack where the
- * same callback is given to dozens of items, and the destructor is called
- * after the last item has fired the event and dereferenced it -- if all
- * the events actually fire!
- */
- LL_DEBUGS("Avatar") << self_av_string() << " fired on copied item, id " << item_id << LL_ENDL;
+ if (ll_frand() < gSavedSettings.getF32("InventoryDebugSimulateLateOpRate"))
+ {
+ llwarns << "Simulating late operation by punting handling to later" << llendl;
+ doAfterInterval(boost::bind(&LLCallAfterInventoryBatchMgr::onOp,this,src_id,dst_id,timestamp),
+ mRetryAfter);
+ return;
+ }
+ mPendingRequests--;
+ F32 elapsed = timestamp.getElapsedTimeF32();
+ LL_DEBUGS("Avatar") << "op done, src_id " << src_id << " dst_id " << dst_id << " after " << elapsed << " seconds" << llendl;
+ if (mWaitTimes.find(src_id) == mWaitTimes.end())
+ {
+ // No longer waiting for this item - either serviced
+ // already or gave up after too many retries.
+ llwarns << "duplicate or late operation, src_id " << src_id << "dst_id " << dst_id
+ << " elapsed " << elapsed << " after end " << (S32) mCompletionOrFailureCalled << llendl;
+ }
+ mTimeStats.push(elapsed);
+ mWaitTimes.erase(src_id);
+ if (mWaitTimes.empty() && !mCompletionOrFailureCalled)
+ {
+ onCompletionOrFailure();
+ }
}
-protected:
- ~LLWearInventoryCategoryCallback()
+ void onCompletionOrFailure()
{
- LL_INFOS("Avatar") << self_av_string() << "done all inventory callbacks" << LL_ENDL;
+ assert (!mCompletionOrFailureCalled);
+ mCompletionOrFailureCalled = true;
- selfStopPhase("wear_inventory_category_callback");
-
- // Is the destructor called by ordinary dereference, or because the app's shutting down?
- // If the inventory callback manager goes away, we're shutting down, no longer want the callback.
- if( LLInventoryCallbackManager::is_instantiated() )
+ // Will never call onCompletion() if any item has been flagged as
+ // a failure - otherwise could wind up with corrupted
+ // outfit, involuntary nudity, etc.
+ reportStats();
+ if (!mTrackingPhase.empty())
{
- LLAppearanceMgr::instance().wearInventoryCategoryOnAvatar(gInventory.getCategory(mCatID), mAppend);
+ selfStopPhase(mTrackingPhase);
+ }
+ if (!mFailCount)
+ {
+ onCompletion();
}
else
{
- llwarns << self_av_string() << "Dropping unhandled LLWearInventoryCategoryCallback" << llendl;
+ onFailure();
}
}
-private:
- LLUUID mCatID;
- bool mAppend;
-};
+ void onFailure()
+ {
+ llinfos << "failed" << llendl;
+ mOnFailureFunc();
+ }
+ void onCompletion()
+ {
+ llinfos << "done" << llendl;
+ mOnCompletionFunc();
+ }
+
+ // virtual
+ // Will be deleted after returning true - only safe to do this if all callbacks have fired.
+ BOOL tick()
+ {
+ // mPendingRequests will be zero if all requests have been
+ // responded to. mWaitTimes.empty() will be true if we have
+ // received at least one reply for each UUID. If requests
+ // have been dropped and retried, these will not necessarily
+ // be the same. Only safe to return true if all requests have
+ // been serviced, since it will result in this object being
+ // deleted.
+ bool all_done = (mPendingRequests==0);
-//Inventory callback updating "dirty" state when destroyed
-class LLUpdateDirtyState: public LLInventoryCallback
+ if (!mWaitTimes.empty())
+ {
+ llwarns << "still waiting on " << mWaitTimes.size() << " items" << llendl;
+ for (std::map<LLUUID,LLTimer>::iterator it = mWaitTimes.begin();
+ it != mWaitTimes.end();)
+ {
+ // Use a copy of iterator because it may be erased/invalidated.
+ std::map<LLUUID,LLTimer>::iterator curr_it = it;
+ ++it;
+
+ F32 time_waited = curr_it->second.getElapsedTimeF32();
+ S32 retries = mRetryCounts[curr_it->first];
+ if (time_waited > mRetryAfter)
+ {
+ if (retries < mMaxRetries)
+ {
+ LL_DEBUGS("Avatar") << "Waited " << time_waited <<
+ " for " << curr_it->first << ", retrying" << llendl;
+ mRetryCount++;
+ addItem(curr_it->first);
+ }
+ else
+ {
+ llwarns << "Giving up on " << curr_it->first << " after too many retries" << llendl;
+ mWaitTimes.erase(curr_it);
+ mFailCount++;
+ }
+ }
+ if (mWaitTimes.empty())
+ {
+ onCompletionOrFailure();
+ }
+
+ }
+ }
+ return all_done;
+ }
+
+ void reportStats()
+ {
+ LL_DEBUGS("Avatar") << "Phase: " << mTrackingPhase << llendl;
+ LL_DEBUGS("Avatar") << "mFailCount: " << mFailCount << llendl;
+ LL_DEBUGS("Avatar") << "mRetryCount: " << mRetryCount << llendl;
+ LL_DEBUGS("Avatar") << "Times: n " << mTimeStats.getCount() << " min " << mTimeStats.getMinValue() << " max " << mTimeStats.getMaxValue() << llendl;
+ LL_DEBUGS("Avatar") << "Mean " << mTimeStats.getMean() << " stddev " << mTimeStats.getStdDev() << llendl;
+ }
+
+ virtual ~LLCallAfterInventoryBatchMgr()
+ {
+ LL_DEBUGS("Avatar") << "deleting" << llendl;
+ }
+
+protected:
+ std::string mTrackingPhase;
+ std::map<LLUUID,LLTimer> mWaitTimes;
+ std::map<LLUUID,S32> mRetryCounts;
+ LLUUID mDstCatID;
+ nullary_func_t mOnCompletionFunc;
+ nullary_func_t mOnFailureFunc;
+ F32 mRetryAfter;
+ S32 mMaxRetries;
+ S32 mPendingRequests;
+ S32 mFailCount;
+ S32 mRetryCount;
+ bool mCompletionOrFailureCalled;
+ LLViewerStats::StatsAccumulator mTimeStats;
+};
+
+class LLCallAfterInventoryCopyMgr: public LLCallAfterInventoryBatchMgr
{
public:
- LLUpdateDirtyState() {}
- virtual ~LLUpdateDirtyState()
+ LLCallAfterInventoryCopyMgr(LLInventoryModel::item_array_t& src_items,
+ const LLUUID& dst_cat_id,
+ const std::string& phase_name,
+ nullary_func_t on_completion_func,
+ nullary_func_t on_failure_func = no_op,
+ F32 retry_after = DEFAULT_RETRY_AFTER_INTERVAL,
+ S32 max_retries = DEFAULT_MAX_RETRIES
+ ):
+ LLCallAfterInventoryBatchMgr(dst_cat_id, phase_name, on_completion_func, on_failure_func, retry_after, max_retries)
+ {
+ addItems(src_items);
+ }
+
+ virtual bool requestOperation(const LLUUID& item_id)
{
- if (LLAppearanceMgr::instanceExists())
+ LLViewerInventoryItem *item = gInventory.getItem(item_id);
+ llassert(item);
+ LL_DEBUGS("Avatar") << "copying item " << item_id << llendl;
+ if (ll_frand() < gSavedSettings.getF32("InventoryDebugSimulateOpFailureRate"))
{
- LLAppearanceMgr::getInstance()->updateIsDirty();
+ LL_DEBUGS("Avatar") << "simulating failure by not sending request for item " << item_id << llendl;
+ return true;
}
+ copy_inventory_item(
+ gAgent.getID(),
+ item->getPermissions().getOwner(),
+ item->getUUID(),
+ mDstCatID,
+ std::string(),
+ new LLBoostFuncInventoryCallback(boost::bind(&LLCallAfterInventoryBatchMgr::onOp,this,item_id,_1,LLTimer()))
+ );
+ return true;
}
- virtual void fire(const LLUUID&) {}
};
+class LLCallAfterInventoryLinkMgr: public LLCallAfterInventoryBatchMgr
+{
+public:
+ LLCallAfterInventoryLinkMgr(LLInventoryModel::item_array_t& src_items,
+ const LLUUID& dst_cat_id,
+ const std::string& phase_name,
+ nullary_func_t on_completion_func,
+ nullary_func_t on_failure_func = no_op,
+ F32 retry_after = DEFAULT_RETRY_AFTER_INTERVAL,
+ S32 max_retries = DEFAULT_MAX_RETRIES
+ ):
+ LLCallAfterInventoryBatchMgr(dst_cat_id, phase_name, on_completion_func, on_failure_func, retry_after, max_retries)
+ {
+ addItems(src_items);
+ }
+
+ virtual bool requestOperation(const LLUUID& item_id)
+ {
+ bool request_sent = false;
+ LLViewerInventoryItem *item = gInventory.getItem(item_id);
+ if (item)
+ {
+ if (item->getParentUUID() == mDstCatID)
+ {
+ LL_DEBUGS("Avatar") << "item " << item_id << " name " << item->getName() << " is already a child of " << mDstCatID << llendl;
+ return false;
+ }
+ LL_DEBUGS("Avatar") << "linking item " << item_id << " name " << item->getName() << " to " << mDstCatID << llendl;
+ // create an inventory item link.
+ if (ll_frand() < gSavedSettings.getF32("InventoryDebugSimulateOpFailureRate"))
+ {
+ LL_DEBUGS("Avatar") << "simulating failure by not sending request for item " << item_id << llendl;
+ return true;
+ }
+ link_inventory_item(gAgent.getID(),
+ item->getLinkedUUID(),
+ mDstCatID,
+ item->getName(),
+ item->getActualDescription(),
+ LLAssetType::AT_LINK,
+ new LLBoostFuncInventoryCallback(
+ boost::bind(&LLCallAfterInventoryBatchMgr::onOp,this,item_id,_1,LLTimer())));
+ return true;
+ }
+ else
+ {
+ // create a base outfit link if appropriate.
+ LLViewerInventoryCategory *catp = gInventory.getCategory(item_id);
+ if (!catp)
+ {
+ llwarns << "link request failed, id not found as inventory item or category " << item_id << llendl;
+ return false;
+ }
+ const LLUUID cof = LLAppearanceMgr::instance().getCOF();
+ std::string new_outfit_name = "";
+
+ LLAppearanceMgr::instance().purgeBaseOutfitLink(cof);
+
+ if (catp && catp->getPreferredType() == LLFolderType::FT_OUTFIT)
+ {
+ if (ll_frand() < gSavedSettings.getF32("InventoryDebugSimulateOpFailureRate"))
+ {
+ LL_DEBUGS("Avatar") << "simulating failure by not sending request for item " << item_id << llendl;
+ return true;
+ }
+ LL_DEBUGS("Avatar") << "linking folder " << item_id << " name " << catp->getName() << " to cof " << cof << llendl;
+ link_inventory_item(gAgent.getID(), item_id, cof, catp->getName(), "",
+ LLAssetType::AT_LINK_FOLDER,
+ new LLBoostFuncInventoryCallback(
+ boost::bind(&LLCallAfterInventoryBatchMgr::onOp,this,item_id,_1,LLTimer())));
+ new_outfit_name = catp->getName();
+ request_sent = true;
+ }
+
+ LLAppearanceMgr::instance().updatePanelOutfitName(new_outfit_name);
+ }
+ return request_sent;
+ }
+};
LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy(bool update_base_outfit_ordering):
mFireCount(0),
@@ -278,7 +557,7 @@ struct LLFoundData
std::string mName;
LLAssetType::EType mAssetType;
LLWearableType::EType mWearableType;
- LLWearable* mWearable;
+ LLViewerWearable* mWearable;
bool mIsReplacement;
};
@@ -302,7 +581,7 @@ public:
void recoverMissingWearable(LLWearableType::EType type);
void clearCOFLinksForMissingWearables();
- void onWearableAssetFetch(LLWearable *wearable);
+ void onWearableAssetFetch(LLViewerWearable *wearable);
void onAllComplete();
typedef std::list<LLFoundData> found_list_t;
@@ -328,7 +607,7 @@ private:
typedef std::set<LLWearableHoldingPattern*> type_set_hp;
static type_set_hp sActiveHoldingPatterns;
bool mIsMostRecent;
- std::set<LLWearable*> mLateArrivals;
+ std::set<LLViewerWearable*> mLateArrivals;
bool mIsAllComplete;
};
@@ -559,100 +838,72 @@ bool LLWearableHoldingPattern::pollFetchCompletion()
return done;
}
-class RecoveredItemLinkCB: public LLInventoryCallback
+void recovered_item_link_cb(const LLUUID& item_id, LLWearableType::EType type, LLViewerWearable *wearable, LLWearableHoldingPattern* holder)
{
-public:
- RecoveredItemLinkCB(LLWearableType::EType type, LLWearable *wearable, LLWearableHoldingPattern* holder):
- mHolder(holder),
- mWearable(wearable),
- mType(type)
+ if (!holder->isMostRecent())
{
+ llwarns << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl;
+ // runway skip here?
}
- void fire(const LLUUID& item_id)
- {
- if (!mHolder->isMostRecent())
- {
- llwarns << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl;
- // runway skip here?
- }
- llinfos << "Recovered item link for type " << mType << llendl;
- mHolder->eraseTypeToLink(mType);
- // Add wearable to FoundData for actual wearing
- LLViewerInventoryItem *item = gInventory.getItem(item_id);
- LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL;
+ llinfos << "Recovered item link for type " << type << llendl;
+ holder->eraseTypeToLink(type);
+ // Add wearable to FoundData for actual wearing
+ LLViewerInventoryItem *item = gInventory.getItem(item_id);
+ LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL;
- if (linked_item)
- {
- gInventory.addChangedMask(LLInventoryObserver::LABEL, linked_item->getUUID());
+ if (linked_item)
+ {
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, linked_item->getUUID());
- if (item)
- {
- LLFoundData found(linked_item->getUUID(),
- linked_item->getAssetUUID(),
- linked_item->getName(),
- linked_item->getType(),
- linked_item->isWearableType() ? linked_item->getWearableType() : LLWearableType::WT_INVALID,
- true // is replacement
- );
- found.mWearable = mWearable;
- mHolder->getFoundList().push_front(found);
- }
- else
- {
- llwarns << self_av_string() << "inventory item not found for recovered wearable" << llendl;
- }
+ if (item)
+ {
+ LLFoundData found(linked_item->getUUID(),
+ linked_item->getAssetUUID(),
+ linked_item->getName(),
+ linked_item->getType(),
+ linked_item->isWearableType() ? linked_item->getWearableType() : LLWearableType::WT_INVALID,
+ true // is replacement
+ );
+ found.mWearable = wearable;
+ holder->getFoundList().push_front(found);
}
else
{
- llwarns << self_av_string() << "inventory link not found for recovered wearable" << llendl;
+ llwarns << self_av_string() << "inventory item not found for recovered wearable" << llendl;
}
}
-private:
- LLWearableHoldingPattern* mHolder;
- LLWearable *mWearable;
- LLWearableType::EType mType;
-};
+ else
+ {
+ llwarns << self_av_string() << "inventory link not found for recovered wearable" << llendl;
+ }
+}
-class RecoveredItemCB: public LLInventoryCallback
+void recovered_item_cb(const LLUUID& item_id, LLWearableType::EType type, LLViewerWearable *wearable, LLWearableHoldingPattern* holder)
{
-public:
- RecoveredItemCB(LLWearableType::EType type, LLWearable *wearable, LLWearableHoldingPattern* holder):
- mHolder(holder),
- mWearable(wearable),
- mType(type)
+ if (!holder->isMostRecent())
{
+ // runway skip here?
+ llwarns << self_av_string() << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl;
}
- void fire(const LLUUID& item_id)
- {
- if (!mHolder->isMostRecent())
- {
- // runway skip here?
- llwarns << self_av_string() << "skipping because LLWearableHolding pattern is invalid (superceded by later outfit request)" << llendl;
- }
- LL_DEBUGS("Avatar") << self_av_string() << "Recovered item for type " << mType << LL_ENDL;
- LLViewerInventoryItem *itemp = gInventory.getItem(item_id);
- mWearable->setItemID(item_id);
- LLPointer<LLInventoryCallback> cb = new RecoveredItemLinkCB(mType,mWearable,mHolder);
- mHolder->eraseTypeToRecover(mType);
- llassert(itemp);
- if (itemp)
- {
- link_inventory_item( gAgent.getID(),
- item_id,
- LLAppearanceMgr::instance().getCOF(),
- itemp->getName(),
- itemp->getDescription(),
- LLAssetType::AT_LINK,
- cb);
- }
+ LL_DEBUGS("Avatar") << self_av_string() << "Recovered item for type " << type << LL_ENDL;
+ LLViewerInventoryItem *itemp = gInventory.getItem(item_id);
+ wearable->setItemID(item_id);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(recovered_item_link_cb,_1,type,wearable,holder));
+ holder->eraseTypeToRecover(type);
+ llassert(itemp);
+ if (itemp)
+ {
+ link_inventory_item( gAgent.getID(),
+ item_id,
+ LLAppearanceMgr::instance().getCOF(),
+ itemp->getName(),
+ itemp->getDescription(),
+ LLAssetType::AT_LINK,
+ cb);
}
-private:
- LLWearableHoldingPattern* mHolder;
- LLWearable *mWearable;
- LLWearableType::EType mType;
-};
+}
void LLWearableHoldingPattern::recoverMissingWearable(LLWearableType::EType type)
{
@@ -666,11 +917,11 @@ void LLWearableHoldingPattern::recoverMissingWearable(LLWearableType::EType type
LLNotificationsUtil::add("ReplacedMissingWearable");
lldebugs << "Wearable " << LLWearableType::getTypeLabel(type)
<< " could not be downloaded. Replaced inventory item with default wearable." << llendl;
- LLWearable* wearable = LLWearableList::instance().createNewWearable(type);
+ LLViewerWearable* wearable = LLWearableList::instance().createNewWearable(type, gAgentAvatarp);
// Add a new one in the lost and found folder.
const LLUUID lost_and_found_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND);
- LLPointer<LLInventoryCallback> cb = new RecoveredItemCB(type,wearable,this);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(recovered_item_cb,_1,type,wearable,this));
create_inventory_item(gAgent.getID(),
gAgent.getSessionID(),
@@ -699,7 +950,7 @@ void LLWearableHoldingPattern::clearCOFLinksForMissingWearables()
{
// Wearable link that was never resolved; remove links to it from COF
LL_INFOS("Avatar") << self_av_string() << "removing link for unresolved item " << data.mItemID.asString() << LL_ENDL;
- LLAppearanceMgr::instance().removeCOFItemLinks(data.mItemID,false);
+ LLAppearanceMgr::instance().removeCOFItemLinks(data.mItemID);
}
}
}
@@ -773,11 +1024,11 @@ void LLWearableHoldingPattern::handleLateArrivals()
iter != getFoundList().end(); ++iter)
{
LLFoundData& data = *iter;
- for (std::set<LLWearable*>::iterator wear_it = mLateArrivals.begin();
+ for (std::set<LLViewerWearable*>::iterator wear_it = mLateArrivals.begin();
wear_it != mLateArrivals.end();
++wear_it)
{
- LLWearable *wearable = *wear_it;
+ LLViewerWearable *wearable = *wear_it;
if(wearable->getAssetID() == data.mAssetID)
{
@@ -813,7 +1064,7 @@ void LLWearableHoldingPattern::handleLateArrivals()
if (data.mWearable && data.mIsReplacement &&
replaced_types.find(data.mWearableType) != replaced_types.end())
{
- LLAppearanceMgr::instance().removeCOFItemLinks(data.mItemID,false);
+ LLAppearanceMgr::instance().removeCOFItemLinks(data.mItemID);
std::list<LLFoundData>::iterator clobber_ator = iter;
++iter;
getFoundList().erase(clobber_ator);
@@ -837,7 +1088,7 @@ void LLWearableHoldingPattern::resetTime(F32 timeout)
mWaitTime.setTimerExpirySec(timeout);
}
-void LLWearableHoldingPattern::onWearableAssetFetch(LLWearable *wearable)
+void LLWearableHoldingPattern::onWearableAssetFetch(LLViewerWearable *wearable)
{
if (!isMostRecent())
{
@@ -888,7 +1139,7 @@ void LLWearableHoldingPattern::onWearableAssetFetch(LLWearable *wearable)
}
}
-static void onWearableAssetFetch(LLWearable* wearable, void* data)
+static void onWearableAssetFetch(LLViewerWearable* wearable, void* data)
{
LLWearableHoldingPattern* holder = (LLWearableHoldingPattern*)data;
holder->onWearableAssetFetch(wearable);
@@ -927,6 +1178,18 @@ const LLUUID LLAppearanceMgr::getCOF() const
return gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
}
+S32 LLAppearanceMgr::getCOFVersion() const
+{
+ LLViewerInventoryCategory *cof = gInventory.getCategory(getCOF());
+ if (cof)
+ {
+ return cof->getVersion();
+ }
+ else
+ {
+ return LLViewerInventoryCategory::VERSION_UNKNOWN;
+ }
+}
const LLViewerInventoryItem* LLAppearanceMgr::getBaseOutfitLink()
{
@@ -995,6 +1258,18 @@ const LLUUID LLAppearanceMgr::getBaseOutfitUUID()
return outfit_cat->getUUID();
}
+void wear_on_avatar_cb(const LLUUID& inv_item, bool do_replace = false)
+{
+ if (inv_item.isNull())
+ return;
+
+ LLViewerInventoryItem *item = gInventory.getItem(inv_item);
+ if (item)
+ {
+ LLAppearanceMgr::instance().wearItemOnAvatar(inv_item, true, do_replace);
+ }
+}
+
bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_update, bool replace, LLPointer<LLInventoryCallback> cb)
{
if (item_id_to_wear.isNull()) return false;
@@ -1014,8 +1289,8 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
if (gInventory.isObjectDescendentOf(item_to_wear->getUUID(), gInventory.getLibraryRootFolderID()))
{
- LLPointer<LLInventoryCallback> cb = new WearOnAvatarCallback(replace);
- copy_inventory_item(gAgent.getID(), item_to_wear->getPermissions().getOwner(), item_to_wear->getUUID(), LLUUID::null, std::string(),cb);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(wear_on_avatar_cb,_1,replace));
+ copy_inventory_item(gAgent.getID(), item_to_wear->getPermissions().getOwner(), item_to_wear->getUUID(), LLUUID::null, std::string(), cb);
return false;
}
else if (!gInventory.isObjectDescendentOf(item_to_wear->getUUID(), gInventory.getRootFolderID()))
@@ -1041,7 +1316,7 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
if ((replace && wearable_count != 0) ||
(wearable_count >= LLAgentWearables::MAX_CLOTHING_PER_TYPE) )
{
- removeCOFItemLinks(gAgentWearables.getWearableItemID(item_to_wear->getWearableType(), wearable_count-1), false);
+ removeCOFItemLinks(gAgentWearables.getWearableItemID(item_to_wear->getWearableType(), wearable_count-1));
}
addCOFItemLink(item_to_wear, do_update, cb);
}
@@ -1051,7 +1326,7 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
// Remove the existing wearables of the same type.
// Remove existing body parts anyway because we must not be able to wear e.g. two skins.
- removeCOFLinksOfType(item_to_wear->getWearableType(), false);
+ removeCOFLinksOfType(item_to_wear->getWearableType());
addCOFItemLink(item_to_wear, do_update, cb);
break;
@@ -1149,11 +1424,13 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
LLInventoryModel::item_array_t::const_iterator it = items.begin();
const LLInventoryModel::item_array_t::const_iterator it_end = items.end();
+ uuid_vec_t uuids_to_remove;
for( ; it_end != it; ++it)
{
LLViewerInventoryItem* item = *it;
- removeItemFromAvatar(item->getUUID());
+ uuids_to_remove.push_back(item->getUUID());
}
+ removeItemsFromAvatar(uuids_to_remove);
}
// Create a copy of src_id + contents as a subfolder of dst_id.
@@ -1197,13 +1474,13 @@ void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LL
{
case LLAssetType::AT_LINK:
{
- //LLInventoryItem::getDescription() is used for a new description
+ //getActualDescription() is used for a new description
//to propagate ordering information saved in descriptions of links
link_inventory_item(gAgent.getID(),
item->getLinkedUUID(),
dst_id,
item->getName(),
- item->LLInventoryItem::getDescription(),
+ item->getActualDescription(),
LLAssetType::AT_LINK, cb);
break;
}
@@ -1383,7 +1660,7 @@ void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category)
}
}
-void LLAppearanceMgr::purgeCategory(const LLUUID& category, bool keep_outfit_links)
+void LLAppearanceMgr::purgeCategory(const LLUUID& category, bool keep_outfit_links, LLInventoryModel::item_array_t* keep_items)
{
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
@@ -1396,8 +1673,19 @@ void LLAppearanceMgr::purgeCategory(const LLUUID& category, bool keep_outfit_lin
continue;
if (item->getIsLinkType())
{
+#if 0
+ if (keep_items && keep_items->find(item) != LLInventoryModel::item_array_t::FAIL)
+ {
+ llinfos << "preserved item" << llendl;
+ }
+ else
+ {
+ gInventory.purgeObject(item->getUUID());
+ }
+#else
gInventory.purgeObject(item->getUUID());
}
+#endif
}
}
@@ -1437,7 +1725,7 @@ void LLAppearanceMgr::linkAll(const LLUUID& cat_uuid,
item->getLinkedUUID(),
cat_uuid,
item->getName(),
- item->LLInventoryItem::getDescription(),
+ item->getActualDescription(),
LLAssetType::AT_LINK,
cb);
@@ -1508,40 +1796,31 @@ void LLAppearanceMgr::updateCOF(const LLUUID& category, bool append)
getDescendentsOfAssetType(category, gest_items, LLAssetType::AT_GESTURE, false);
removeDuplicateItems(gest_items);
- // Remove current COF contents.
- bool keep_outfit_links = append;
- purgeCategory(cof, keep_outfit_links);
- gInventory.notifyObservers();
-
// Create links to new COF contents.
- LL_DEBUGS("Avatar") << self_av_string() << "creating LLUpdateAppearanceOnDestroy" << LL_ENDL;
- LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy(!append);
-
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- LL_DEBUGS("Avatar") << self_av_string() << "Linking body items" << LL_ENDL;
-#endif
- linkAll(cof, body_items, link_waiter);
-
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- LL_DEBUGS("Avatar") << self_av_string() << "Linking wear items" << LL_ENDL;
-#endif
- linkAll(cof, wear_items, link_waiter);
+ LLInventoryModel::item_array_t all_items;
+ all_items += body_items;
+ all_items += wear_items;
+ all_items += obj_items;
+ all_items += gest_items;
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- LL_DEBUGS("Avatar") << self_av_string() << "Linking obj items" << LL_ENDL;
-#endif
- linkAll(cof, obj_items, link_waiter);
-
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- LL_DEBUGS("Avatar") << self_av_string() << "Linking gesture items" << LL_ENDL;
-#endif
- linkAll(cof, gest_items, link_waiter);
+ // Will link all the above items.
+ LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
+ linkAll(cof,all_items,link_waiter);
// Add link to outfit if category is an outfit.
if (!append)
{
createBaseOutfitLink(category, link_waiter);
}
+
+ // Remove current COF contents. Have to do this after creating
+ // the link_waiter so links can be followed for any items that get
+ // carried over (e.g. keeping old shape if the new outfit does not
+ // contain one)
+ bool keep_outfit_links = append;
+ purgeCategory(cof, keep_outfit_links, &all_items);
+ gInventory.notifyObservers();
+
LL_DEBUGS("Avatar") << self_av_string() << "waiting for LLUpdateAppearanceOnDestroy" << LL_ENDL;
}
@@ -1577,7 +1856,7 @@ void LLAppearanceMgr::updateAgentWearables(LLWearableHoldingPattern* holder, boo
{
lldebugs << "updateAgentWearables()" << llendl;
LLInventoryItem::item_array_t items;
- LLDynamicArray< LLWearable* > wearables;
+ LLDynamicArray< LLViewerWearable* > wearables;
// For each wearable type, find the wearables of that type.
for( S32 i = 0; i < LLWearableType::WT_COUNT; i++ )
@@ -1586,7 +1865,7 @@ void LLAppearanceMgr::updateAgentWearables(LLWearableHoldingPattern* holder, boo
iter != holder->getFoundList().end(); ++iter)
{
LLFoundData& data = *iter;
- LLWearable* wearable = data.mWearable;
+ LLViewerWearable* wearable = data.mWearable;
if( wearable && ((S32)wearable->getType() == i) )
{
LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getItem(data.mItemID);
@@ -1622,7 +1901,7 @@ static void remove_non_link_items(LLInventoryModel::item_array_t &items)
}
//a predicate for sorting inventory items by actual descriptions
-bool sort_by_description(const LLInventoryItem* item1, const LLInventoryItem* item2)
+bool sort_by_actual_description(const LLInventoryItem* item1, const LLInventoryItem* item2)
{
if (!item1 || !item2)
{
@@ -1630,7 +1909,7 @@ bool sort_by_description(const LLInventoryItem* item1, const LLInventoryItem* it
return true;
}
- return item1->LLInventoryItem::getDescription() < item2->LLInventoryItem::getDescription();
+ return item1->getActualDescription() < item2->getActualDescription();
}
void item_array_diff(LLInventoryModel::item_array_t& full_list,
@@ -1712,11 +1991,10 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
return;
}
- LLVOAvatar::ScopedPhaseSetter(gAgentAvatarp,"update_appearance_from_cof");
-
BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF);
+ selfStartPhase("update_appearance_from_cof");
- LL_INFOS("Avatar") << self_av_string() << "starting" << LL_ENDL;
+ LL_DEBUGS("Avatar") << self_av_string() << "starting" << LL_ENDL;
//checking integrity of the COF in terms of ordering of wearables,
//checking and updating links' descriptions of wearables in the COF (before analyzed for "dirty" state)
@@ -1730,9 +2008,18 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
// the saved outfit stored as a folder link
updateIsDirty();
+ // Send server request for appearance update
+ if (gAgent.getRegion() && gAgent.getRegion()->getCentralBakeVersion())
+ {
+ requestServerAppearanceUpdate();
+ }
+ // DRANO really should wait for the appearance message to set this.
+ // verify that deleting this line doesn't break anything.
+ //gAgentAvatarp->setIsUsingServerBakes(gAgent.getRegion() && gAgent.getRegion()->getCentralBakeVersion());
+
//dumpCat(getCOF(),"COF, start");
- bool follow_folder_links = true;
+ bool follow_folder_links = false;
LLUUID current_outfit_id = getCOF();
// Find all the wearables that are in the COF's subtree.
@@ -1820,6 +2107,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
// Fetch the wearables about to be worn.
LLWearableList::instance().getAsset(found.mAssetID,
found.mName,
+ gAgentAvatarp,
found.mAssetType,
onWearableAssetFetch,
(void*)holder);
@@ -1954,22 +2242,15 @@ void LLAppearanceMgr::wearCategoryFinal(LLUUID& cat_id, bool copy_items, bool ap
pid,
LLFolderType::FT_NONE,
name);
- LLPointer<LLInventoryCallback> cb = new LLWearInventoryCategoryCallback(new_cat_id, append);
- it = items->begin();
- for(; it < end; ++it)
- {
- item = *it;
- if(item)
- {
- copy_inventory_item(
- gAgent.getID(),
- item->getPermissions().getOwner(),
- item->getUUID(),
- new_cat_id,
- std::string(),
- cb);
- }
- }
+
+ // Create a CopyMgr that will copy items, manage its own destruction
+ new LLCallAfterInventoryCopyMgr(
+ *items, new_cat_id, std::string("wear_inventory_category_callback"),
+ boost::bind(&LLAppearanceMgr::wearInventoryCategoryOnAvatar,
+ LLAppearanceMgr::getInstance(),
+ gInventory.getCategory(new_cat_id),
+ append));
+
// BAP fixes a lag in display of created dir.
gInventory.notifyObservers();
}
@@ -1986,7 +2267,13 @@ void LLAppearanceMgr::wearInventoryCategoryOnAvatar( LLInventoryCategory* catego
// Avoid unintentionally overwriting old wearables. We have to do
// this up front to avoid having to deal with the case of multiple
// wearables being dirty.
- if(!category) return;
+ if (!category) return;
+
+ if ( !LLInventoryCallbackManager::is_instantiated() )
+ {
+ // shutting down, ignore.
+ return;
+ }
LL_INFOS("Avatar") << self_av_string() << "wearInventoryCategoryOnAvatar '" << category->getName()
<< "'" << LL_ENDL;
@@ -2053,10 +2340,11 @@ bool areMatchingWearables(const LLViewerInventoryItem *a, const LLViewerInventor
class LLDeferredCOFLinkObserver: public LLInventoryObserver
{
public:
- LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update, LLPointer<LLInventoryCallback> cb = NULL):
+ LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update, LLPointer<LLInventoryCallback> cb = NULL, std::string description = ""):
mItemID(item_id),
mDoUpdate(do_update),
- mCallback(cb)
+ mCallback(cb),
+ mDescription(description)
{
}
@@ -2078,28 +2366,49 @@ public:
private:
const LLUUID mItemID;
bool mDoUpdate;
+ std::string mDescription;
LLPointer<LLInventoryCallback> mCallback;
};
// BAP - note that this runs asynchronously if the item is not already loaded from inventory.
// Dangerous if caller assumes link will exist after calling the function.
-void LLAppearanceMgr::addCOFItemLink(const LLUUID &item_id, bool do_update, LLPointer<LLInventoryCallback> cb)
+void LLAppearanceMgr::addCOFItemLink(const LLUUID &item_id, bool do_update, LLPointer<LLInventoryCallback> cb, const std::string description)
{
const LLInventoryItem *item = gInventory.getItem(item_id);
if (!item)
{
- LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update, cb);
+ LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update, cb, description);
gInventory.addObserver(observer);
}
else
{
- addCOFItemLink(item, do_update, cb);
+ addCOFItemLink(item, do_update, cb, description);
+ }
+}
+
+void modified_cof_cb(const LLUUID& inv_item)
+{
+ LLAppearanceMgr::instance().updateAppearanceFromCOF();
+
+ // Start editing the item if previously requested.
+ gAgentWearables.editWearableIfRequested(inv_item);
+
+ // TODO: camera mode may not be changed if a debug setting is tweaked
+ if( gAgentCamera.cameraCustomizeAvatar() )
+ {
+ // If we're in appearance editing mode, the current tab may need to be refreshed
+ LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
+ if (panel)
+ {
+ panel->showDefaultSubpart();
+ }
}
}
-void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update, LLPointer<LLInventoryCallback> cb)
+void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update, LLPointer<LLInventoryCallback> cb, const std::string description)
{
+ std::string link_description = description;
const LLViewerInventoryItem *vitem = dynamic_cast<const LLViewerInventoryItem*>(item);
if (!vitem)
{
@@ -2161,37 +2470,106 @@ void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update
{
if(do_update && cb.isNull())
{
- cb = new ModifiedCOFCallback;
+ cb = new LLBoostFuncInventoryCallback(modified_cof_cb);
+ }
+ if (vitem->getIsLinkType())
+ {
+ link_description = vitem->getActualDescription();
}
- const std::string description = vitem->getIsLinkType() ? vitem->getDescription() : "";
link_inventory_item( gAgent.getID(),
vitem->getLinkedUUID(),
getCOF(),
vitem->getName(),
- description,
+ link_description,
LLAssetType::AT_LINK,
cb);
}
return;
}
-// BAP remove ensemble code for 2.1?
-void LLAppearanceMgr::addEnsembleLink( LLInventoryCategory* cat, bool do_update )
+LLInventoryModel::item_array_t LLAppearanceMgr::findCOFItemLinks(const LLUUID& item_id)
{
-#if SUPPORT_ENSEMBLES
- // BAP add check for already in COF.
- LLPointer<LLInventoryCallback> cb = do_update ? new ModifiedCOFCallback : 0;
- link_inventory_item( gAgent.getID(),
- cat->getLinkedUUID(),
- getCOF(),
- cat->getName(),
- cat->getDescription(),
- LLAssetType::AT_LINK_FOLDER,
- cb);
-#endif
+
+ LLInventoryModel::item_array_t result;
+ const LLViewerInventoryItem *vitem =
+ dynamic_cast<const LLViewerInventoryItem*>(gInventory.getItem(item_id));
+
+ if (vitem)
+ {
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(LLAppearanceMgr::getCOF(),
+ cat_array,
+ item_array,
+ LLInventoryModel::EXCLUDE_TRASH);
+ for (S32 i=0; i<item_array.count(); i++)
+ {
+ const LLViewerInventoryItem* inv_item = item_array.get(i).get();
+ if (inv_item->getLinkedUUID() == vitem->getLinkedUUID())
+ {
+ result.put(item_array.get(i));
+ }
+ }
+ }
+ return result;
}
-void LLAppearanceMgr::removeCOFItemLinks(const LLUUID& item_id, bool do_update)
+void LLAppearanceMgr::removeAllClothesFromAvatar()
+{
+ // Fetch worn clothes (i.e. the ones in COF).
+ LLInventoryModel::item_array_t clothing_items;
+ LLInventoryModel::cat_array_t dummy;
+ LLIsType is_clothing(LLAssetType::AT_CLOTHING);
+ gInventory.collectDescendentsIf(getCOF(),
+ dummy,
+ clothing_items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ is_clothing,
+ false);
+ uuid_vec_t item_ids;
+ for (LLInventoryModel::item_array_t::iterator it = clothing_items.begin();
+ it != clothing_items.end(); ++it)
+ {
+ item_ids.push_back((*it).get()->getLinkedUUID());
+ }
+
+ // Take them off by removing from COF.
+ removeItemsFromAvatar(item_ids);
+}
+
+void LLAppearanceMgr::removeAllAttachmentsFromAvatar()
+{
+ if (!isAgentAvatarValid()) return;
+
+ LLAgentWearables::llvo_vec_t objects_to_remove;
+
+ for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin();
+ iter != gAgentAvatarp->mAttachmentPoints.end();)
+ {
+ LLVOAvatar::attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
+ attachment_iter != attachment->mAttachedObjects.end();
+ ++attachment_iter)
+ {
+ LLViewerObject *attached_object = (*attachment_iter);
+ if (attached_object)
+ {
+ objects_to_remove.push_back(attached_object);
+ }
+ }
+ }
+ uuid_vec_t ids_to_remove;
+ for (LLAgentWearables::llvo_vec_t::iterator it = objects_to_remove.begin();
+ it != objects_to_remove.end();
+ ++it)
+ {
+ ids_to_remove.push_back((*it)->getAttachmentItemID());
+ }
+ removeItemsFromAvatar(ids_to_remove);
+}
+
+void LLAppearanceMgr::removeCOFItemLinks(const LLUUID& item_id)
{
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
@@ -2209,13 +2587,9 @@ void LLAppearanceMgr::removeCOFItemLinks(const LLUUID& item_id, bool do_update)
gInventory.purgeObject(item->getUUID());
}
}
- if (do_update)
- {
- LLAppearanceMgr::updateAppearanceFromCOF();
- }
}
-void LLAppearanceMgr::removeCOFLinksOfType(LLWearableType::EType type, bool do_update)
+void LLAppearanceMgr::removeCOFLinksOfType(LLWearableType::EType type)
{
LLFindWearablesOfType filter_wearables_of_type(type);
LLInventoryModel::cat_array_t cats;
@@ -2231,11 +2605,6 @@ void LLAppearanceMgr::removeCOFLinksOfType(LLWearableType::EType type, bool do_u
gInventory.purgeObject(item->getUUID());
}
}
-
- if (do_update)
- {
- updateAppearanceFromCOF();
- }
}
bool sort_by_linked_uuid(const LLViewerInventoryItem* item1, const LLViewerInventoryItem* item2)
@@ -2303,7 +2672,7 @@ void LLAppearanceMgr::updateIsDirty()
if (item1->getLinkedUUID() != item2->getLinkedUUID() ||
item1->getName() != item2->getName() ||
- item1->LLInventoryItem::getDescription() != item2->LLInventoryItem::getDescription())
+ item1->getActualDescription() != item2->getActualDescription())
{
mOutfitIsDirty = true;
return;
@@ -2372,7 +2741,7 @@ void LLAppearanceMgr::copyLibraryGestures()
folder_name == COMMON_GESTURES_FOLDER ||
folder_name == OTHER_GESTURES_FOLDER)
{
- cb = new ActivateGestureCallback;
+ cb = new LLBoostFuncInventoryCallback(activate_gesture_cb);
}
LLUUID cat_id = findDescendentCategoryIDByName(lib_gesture_cat_id,folder_name);
@@ -2426,6 +2795,16 @@ void LLAppearanceMgr::onFirstFullyVisible()
}
}
+// update "dirty" state - defined outside class to allow for calling
+// after appearance mgr instance has been destroyed.
+void appearance_mgr_update_dirty_state()
+{
+ if (LLAppearanceMgr::instanceExists())
+ {
+ LLAppearanceMgr::getInstance()->updateIsDirty();
+ }
+}
+
bool LLAppearanceMgr::updateBaseOutfit()
{
if (isOutfitLocked())
@@ -2446,8 +2825,8 @@ bool LLAppearanceMgr::updateBaseOutfit()
// in a Base Outfit we do not remove items, only links
purgeCategory(base_outfit_id, false);
-
- LLPointer<LLInventoryCallback> dirty_state_updater = new LLUpdateDirtyState();
+ LLPointer<LLInventoryCallback> dirty_state_updater =
+ new LLBoostFuncInventoryCallback(no_op_inventory_func, appearance_mgr_update_dirty_state);
//COF contains only links so we copy to the Base Outfit only links
shallowCopyCategoryContents(getCOF(), base_outfit_id, dirty_state_updater);
@@ -2504,8 +2883,8 @@ struct WearablesOrderComparator
return true;
}
- const std::string& desc1 = item1->LLInventoryItem::getDescription();
- const std::string& desc2 = item2->LLInventoryItem::getDescription();
+ const std::string& desc1 = item1->getActualDescription();
+ const std::string& desc2 = item2->getActualDescription();
bool item1_valid = (desc1.size() == mControlSize) && (ORDER_NUMBER_SEPARATOR == desc1[0]);
bool item2_valid = (desc2.size() == mControlSize) && (ORDER_NUMBER_SEPARATOR == desc2[0]);
@@ -2563,7 +2942,7 @@ void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id, bool update_base
if (!item) continue;
std::string new_order_str = build_order_string((LLWearableType::EType)type, i);
- if (new_order_str == item->LLInventoryItem::getDescription()) continue;
+ if (new_order_str == item->getActualDescription()) continue;
item->setDescription(new_order_str);
item->setComplete(TRUE);
@@ -2578,52 +2957,424 @@ void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id, bool update_base
if (inventory_changed) gInventory.notifyObservers();
}
+// This is intended for use with HTTP Clients/Responders, but is not
+// specifically coupled with those classes.
+class LLHTTPRetryPolicy: public LLThreadSafeRefCount
+{
+public:
+ LLHTTPRetryPolicy() {}
+ virtual ~LLHTTPRetryPolicy() {}
+ virtual bool shouldRetry(U32 status, F32& seconds_to_wait) = 0;
+};
+
+// Example of simplest possible policy, not necessarily recommended.
+class LLAlwaysRetryImmediatelyPolicy: public LLHTTPRetryPolicy
+{
+public:
+ LLAlwaysRetryImmediatelyPolicy() {}
+ bool shouldRetry(U32 status, F32& seconds_to_wait)
+ {
+ seconds_to_wait = 0.0;
+ return true;
+ }
+};
+
+// Very general policy with geometric back-off after failures,
+// up to a maximum delay, and maximum number of retries.
+class LLAdaptiveRetryPolicy: public LLHTTPRetryPolicy
+{
+public:
+ LLAdaptiveRetryPolicy(F32 min_delay, F32 max_delay, F32 backoff_factor, U32 max_retries):
+ mMinDelay(min_delay),
+ mMaxDelay(max_delay),
+ mBackoffFactor(backoff_factor),
+ mMaxRetries(max_retries),
+ mDelay(min_delay),
+ mRetryCount(0)
+ {
+ }
+ bool shouldRetry(U32 status, F32& seconds_to_wait)
+ {
+ seconds_to_wait = mDelay;
+ mDelay = llclamp(mDelay*mBackoffFactor,mMinDelay,mMaxDelay);
+ mRetryCount++;
+ return (mRetryCount<=mMaxRetries);
+ }
+private:
+ F32 mMinDelay; // delay never less than this value
+ F32 mMaxDelay; // delay never exceeds this value
+ F32 mBackoffFactor; // delay increases by this factor after each retry, up to mMaxDelay.
+ U32 mMaxRetries; // maximum number of times shouldRetry will return true.
+ F32 mDelay; // current delay.
+ U32 mRetryCount; // number of times shouldRetry has been called.
+};
-class LLShowCreatedOutfit: public LLInventoryCallback
+class RequestAgentUpdateAppearanceResponder: public LLHTTPClient::Responder
{
public:
- LLShowCreatedOutfit(LLUUID& folder_id, bool show_panel = true): mFolderID(folder_id), mShowPanel(show_panel)
- {}
+ RequestAgentUpdateAppearanceResponder()
+ {
+ mRetryPolicy = new LLAdaptiveRetryPolicy(1.0, 32.0, 2.0, 10);
+ }
- virtual ~LLShowCreatedOutfit()
+ virtual ~RequestAgentUpdateAppearanceResponder()
{
- if (!LLApp::isRunning())
+ }
+
+ // Successful completion.
+ /* virtual */ void result(const LLSD& content)
+ {
+ LL_DEBUGS("Avatar") << "content: " << ll_pretty_print_sd(content) << LL_ENDL;
+ if (content["success"].asBoolean())
{
- llwarns << "called during shutdown, skipping" << llendl;
- return;
+ LL_DEBUGS("Avatar") << "OK" << LL_ENDL;
+ if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"))
+ {
+ dumpContents(gAgentAvatarp->getFullname() + "_appearance_request_ok", content);
+ }
}
+ else
+ {
+ onFailure(200);
+ }
+ }
- LLSD key;
+ // Error
+ /*virtual*/ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+ {
+ llwarns << "appearance update request failed, status: " << status << " reason: " << reason << " code: " << content["code"].asInteger() << " error: \"" << content["error"].asString() << "\"" << llendl;
+ if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"))
+ {
+ dumpContents(gAgentAvatarp->getFullname() + "_appearance_request_error", content);
+ debugCOF(content);
- //EXT-7727. For new accounts LLShowCreatedOutfit is created during login process
- // add may be processed after login process is finished
- if (mShowPanel)
+ }
+ onFailure(status);
+ }
+
+ void onFailure(U32 status)
+ {
+ F32 seconds_to_wait;
+ if (mRetryPolicy->shouldRetry(status,seconds_to_wait))
+ {
+ llinfos << "retrying" << llendl;
+ doAfterInterval(boost::bind(&LLAppearanceMgr::requestServerAppearanceUpdate,
+ LLAppearanceMgr::getInstance(),
+ LLCurl::ResponderPtr(this)),
+ seconds_to_wait);
+ }
+ else
+ {
+ llwarns << "giving up after too many retries" << llendl;
+ }
+ }
+
+ void dumpContents(const std::string outprefix, const LLSD& content)
+ {
+ std::string outfilename = get_sequential_numbered_file_name(outprefix,".xml");
+ std::string fullpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,outfilename);
+ std::ofstream ofs(fullpath.c_str(), std::ios_base::out);
+ ofs << LLSDOStreamer<LLSDXMLFormatter>(content, LLSDFormatter::OPTIONS_PRETTY);
+ LL_DEBUGS("Avatar") << "results saved to: " << fullpath << LL_ENDL;
+ }
+
+ void debugCOF(const LLSD& content)
+ {
+ LL_DEBUGS("Avatar") << "AIS COF, version found: " << content["expected"].asInteger() << llendl;
+ std::set<LLUUID> ais_items, local_items;
+ const LLSD& cof_raw = content["cof_raw"];
+ for (LLSD::array_const_iterator it = cof_raw.beginArray();
+ it != cof_raw.endArray(); ++it)
+ {
+ const LLSD& item = *it;
+ if (item["parent_id"].asUUID() == LLAppearanceMgr::instance().getCOF())
+ {
+ ais_items.insert(item["item_id"].asUUID());
+ if (item["type"].asInteger() == 24) // link
+ {
+ LL_DEBUGS("Avatar") << "Link: item_id: " << item["item_id"].asUUID()
+ << " linked_item_id: " << item["asset_id"].asUUID()
+ << " name: " << item["name"].asString()
+ << llendl;
+ }
+ else if (item["type"].asInteger() == 25) // folder link
+ {
+ LL_DEBUGS("Avatar") << "Folder link: item_id: " << item["item_id"].asUUID()
+ << " linked_item_id: " << item["asset_id"].asUUID()
+ << " name: " << item["name"].asString()
+ << llendl;
+
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << "Other: item_id: " << item["item_id"].asUUID()
+ << " linked_item_id: " << item["asset_id"].asUUID()
+ << " name: " << item["name"].asString()
+ << llendl;
+ }
+ }
+ }
+ LL_DEBUGS("Avatar") << llendl;
+ LL_DEBUGS("Avatar") << "Local COF, version requested: " << content["observed"].asInteger() << llendl;
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(LLAppearanceMgr::instance().getCOF(),
+ cat_array,item_array,LLInventoryModel::EXCLUDE_TRASH);
+ for (S32 i=0; i<item_array.count(); i++)
+ {
+ const LLViewerInventoryItem* inv_item = item_array.get(i).get();
+ local_items.insert(inv_item->getUUID());
+ LL_DEBUGS("Avatar") << "item_id: " << inv_item->getUUID()
+ << " linked_item_id: " << inv_item->getLinkedUUID()
+ << " name: " << inv_item->getName()
+ << llendl;
+ }
+ LL_DEBUGS("Avatar") << llendl;
+ for (std::set<LLUUID>::iterator it = local_items.begin(); it != local_items.end(); ++it)
+ {
+ if (ais_items.find(*it) == ais_items.end())
+ {
+ LL_DEBUGS("Avatar") << "LOCAL ONLY: " << *it << llendl;
+ }
+ }
+ for (std::set<LLUUID>::iterator it = ais_items.begin(); it != ais_items.end(); ++it)
{
- LLFloaterSidePanelContainer::showPanel("appearance", "panel_outfits_inventory", key);
+ if (local_items.find(*it) == local_items.end())
+ {
+ LL_DEBUGS("Avatar") << "AIS ONLY: " << *it << llendl;
+ }
+ }
+ }
+
+ LLPointer<LLHTTPRetryPolicy> mRetryPolicy;
+};
+LLSD LLAppearanceMgr::dumpCOF() const
+{
+ LLSD links = LLSD::emptyArray();
+ LLMD5 md5;
+
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(getCOF(),cat_array,item_array,LLInventoryModel::EXCLUDE_TRASH);
+ for (S32 i=0; i<item_array.count(); i++)
+ {
+ const LLViewerInventoryItem* inv_item = item_array.get(i).get();
+ LLSD item;
+ LLUUID item_id(inv_item->getUUID());
+ md5.update((unsigned char*)item_id.mData, 16);
+ item["description"] = inv_item->getActualDescription();
+ md5.update(inv_item->getActualDescription());
+ item["asset_type"] = inv_item->getActualType();
+ LLUUID linked_id(inv_item->getLinkedUUID());
+ item["linked_id"] = linked_id;
+ md5.update((unsigned char*)linked_id.mData, 16);
+
+ if (LLAssetType::AT_LINK == inv_item->getActualType())
+ {
+ const LLViewerInventoryItem* linked_item = inv_item->getLinkedItem();
+ if (NULL == linked_item)
+ {
+ llwarns << "Broken link for item '" << inv_item->getName()
+ << "' (" << inv_item->getUUID()
+ << ") during requestServerAppearanceUpdate" << llendl;
+ continue;
+ }
+ // Some assets may be 'hidden' and show up as null in the viewer.
+ //if (linked_item->getAssetUUID().isNull())
+ //{
+ // llwarns << "Broken link (null asset) for item '" << inv_item->getName()
+ // << "' (" << inv_item->getUUID()
+ // << ") during requestServerAppearanceUpdate" << llendl;
+ // continue;
+ //}
+ LLUUID linked_asset_id(linked_item->getAssetUUID());
+ md5.update((unsigned char*)linked_asset_id.mData, 16);
+ U32 flags = linked_item->getFlags();
+ md5.update(boost::lexical_cast<std::string>(flags));
+ }
+ else if (LLAssetType::AT_LINK_FOLDER != inv_item->getActualType())
+ {
+ llwarns << "Non-link item '" << inv_item->getName()
+ << "' (" << inv_item->getUUID()
+ << ") type " << (S32) inv_item->getActualType()
+ << " during requestServerAppearanceUpdate" << llendl;
+ continue;
}
- LLOutfitsList *outfits_list =
- dynamic_cast<LLOutfitsList*>(LLFloaterSidePanelContainer::getPanel("appearance", "outfitslist_tab"));
- if (outfits_list)
+ links.append(item);
+ }
+ LLSD result = LLSD::emptyMap();
+ result["cof_contents"] = links;
+ char cof_md5sum[MD5HEX_STR_SIZE];
+ md5.finalize();
+ md5.hex_digest(cof_md5sum);
+ result["cof_md5sum"] = std::string(cof_md5sum);
+ return result;
+}
+
+void LLAppearanceMgr::requestServerAppearanceUpdate(LLCurl::ResponderPtr responder_ptr)
+{
+ if (gAgentAvatarp->isEditingAppearance())
+ {
+ // don't send out appearance updates if in appearance editing mode
+ return;
+ }
+
+ if (!gAgent.getRegion())
+ {
+ llwarns << "Region not set, cannot request server appearance update" << llendl;
+ return;
+ }
+ if (gAgent.getRegion()->getCentralBakeVersion()==0)
+ {
+ llwarns << "Region does not support baking" << llendl;
+ }
+ std::string url = gAgent.getRegion()->getCapability("UpdateAvatarAppearance");
+ if (url.empty())
+ {
+ llwarns << "No cap for UpdateAvatarAppearance." << llendl;
+ return;
+ }
+
+ LLSD body;
+ S32 cof_version = getCOFVersion();
+ if (gSavedSettings.getBOOL("DebugAvatarExperimentalServerAppearanceUpdate"))
+ {
+ body = dumpCOF();
+ }
+ else
+ {
+ body["cof_version"] = cof_version;
+ if (gSavedSettings.getBOOL("DebugForceAppearanceRequestFailure"))
{
- outfits_list->setSelectedOutfitByUUID(mFolderID);
+ body["cof_version"] = cof_version+999;
}
+ }
+ LL_DEBUGS("Avatar") << "request url " << url << " my_cof_version " << cof_version << llendl;
+
+ //LLCurl::ResponderPtr responder_ptr;
+ if (!responder_ptr.get())
+ {
+ responder_ptr = new RequestAgentUpdateAppearanceResponder;
+ }
+ LLHTTPClient::post(url, body, responder_ptr);
+ llassert(cof_version >= gAgentAvatarp->mLastUpdateRequestCOFVersion);
+ gAgentAvatarp->mLastUpdateRequestCOFVersion = cof_version;
+}
- LLAppearanceMgr::getInstance()->updateIsDirty();
- gAgentWearables.notifyLoadingFinished(); // New outfit is saved.
- LLAppearanceMgr::getInstance()->updatePanelOutfitName("");
+class LLIncrementCofVersionResponder : public LLHTTPClient::Responder
+{
+public:
+ LLIncrementCofVersionResponder() : LLHTTPClient::Responder()
+ {
+ mRetryPolicy = new LLAdaptiveRetryPolicy(1.0, 16.0, 2.0, 5);
+ }
+
+ virtual ~LLIncrementCofVersionResponder()
+ {
}
- virtual void fire(const LLUUID&)
- {}
+ virtual void result(const LLSD &pContent)
+ {
+ llinfos << "Successfully incremented agent's COF." << llendl;
+ S32 new_version = pContent["category"]["version"].asInteger();
-private:
- LLUUID mFolderID;
- bool mShowPanel;
+ // cof_version should have increased
+ llassert(new_version > gAgentAvatarp->mLastUpdateRequestCOFVersion);
+
+ gAgentAvatarp->mLastUpdateRequestCOFVersion = new_version;
+ }
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& content)
+ {
+ llwarns << "While attempting to increment the agent's cof we got an error with [status:"
+ << pStatus << "]: " << content << llendl;
+ F32 seconds_to_wait;
+ if (mRetryPolicy->shouldRetry(pStatus,seconds_to_wait))
+ {
+ llinfos << "retrying" << llendl;
+ doAfterInterval(boost::bind(&LLAppearanceMgr::incrementCofVersion,
+ LLAppearanceMgr::getInstance(),
+ LLHTTPClient::ResponderPtr(this)),
+ seconds_to_wait);
+ }
+ else
+ {
+ llwarns << "giving up after too many retries" << llendl;
+ }
+ }
+
+ LLPointer<LLHTTPRetryPolicy> mRetryPolicy;
};
+void LLAppearanceMgr::incrementCofVersion(LLHTTPClient::ResponderPtr responder_ptr)
+{
+ // If we don't have a region, report it as an error
+ if (gAgent.getRegion() == NULL)
+ {
+ llwarns << "Region not set, cannot request cof_version increment" << llendl;
+ return;
+ }
+
+ std::string url = gAgent.getRegion()->getCapability("IncrementCofVersion");
+ if (url.empty())
+ {
+ llwarns << "No cap for IncrementCofVersion." << llendl;
+ return;
+ }
+
+ llinfos << "Requesting cof_version be incremented via capability to: "
+ << url << llendl;
+ LLSD headers;
+ LLSD body = LLSD::emptyMap();
+
+ if (!responder_ptr.get())
+ {
+ responder_ptr = LLHTTPClient::ResponderPtr(new LLIncrementCofVersionResponder());
+ }
+
+ LLHTTPClient::get(url, body, responder_ptr, headers, 30.0f);
+}
+
+std::string LLAppearanceMgr::getAppearanceServiceURL() const
+{
+ if (gSavedSettings.getString("DebugAvatarAppearanceServiceURLOverride").empty())
+ {
+ return mAppearanceServiceURL;
+ }
+ return gSavedSettings.getString("DebugAvatarAppearanceServiceURLOverride");
+}
+
+void show_created_outfit(LLUUID& folder_id, bool show_panel = true)
+{
+ if (!LLApp::isRunning())
+ {
+ llwarns << "called during shutdown, skipping" << llendl;
+ return;
+ }
+
+ LLSD key;
+
+ //EXT-7727. For new accounts inventory callback is created during login process
+ // and may be processed after login process is finished
+ if (show_panel)
+ {
+ LLFloaterSidePanelContainer::showPanel("appearance", "panel_outfits_inventory", key);
+
+ }
+ LLOutfitsList *outfits_list =
+ dynamic_cast<LLOutfitsList*>(LLFloaterSidePanelContainer::getPanel("appearance", "outfitslist_tab"));
+ if (outfits_list)
+ {
+ outfits_list->setSelectedOutfitByUUID(folder_id);
+ }
+
+ LLAppearanceMgr::getInstance()->updateIsDirty();
+ gAgentWearables.notifyLoadingFinished(); // New outfit is saved.
+ LLAppearanceMgr::getInstance()->updatePanelOutfitName("");
+}
+
LLUUID LLAppearanceMgr::makeNewOutfitLinks(const std::string& new_folder_name, bool show_panel)
{
if (!isAgentAvatarValid()) return LLUUID::null;
@@ -2639,7 +3390,8 @@ LLUUID LLAppearanceMgr::makeNewOutfitLinks(const std::string& new_folder_name, b
updateClothingOrderingInfo();
- LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id,show_panel);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(no_op_inventory_func,
+ boost::bind(show_created_outfit,folder_id,show_panel));
shallowCopyCategoryContents(getCOF(),folder_id, cb);
createBaseOutfitLink(folder_id, cb);
@@ -2656,33 +3408,26 @@ void LLAppearanceMgr::wearBaseOutfit()
updateCOF(base_outfit_id);
}
-void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)
+void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
{
- LLViewerInventoryItem * item_to_remove = gInventory.getItem(id_to_remove);
- if (!item_to_remove) return;
-
- switch (item_to_remove->getType())
+ if (ids_to_remove.empty())
{
- case LLAssetType::AT_CLOTHING:
- if (get_is_item_worn(id_to_remove))
- {
- //*TODO move here the exact removing code from LLWearableBridge::removeItemFromAvatar in the future
- LLWearableBridge::removeItemFromAvatar(item_to_remove);
- }
- break;
- case LLAssetType::AT_OBJECT:
- LLVOAvatarSelf::detachAttachmentIntoInventory(item_to_remove->getLinkedUUID());
- default:
- break;
+ llwarns << "called with empty list, nothing to do" << llendl;
+ }
+ for (uuid_vec_t::const_iterator it = ids_to_remove.begin(); it != ids_to_remove.end(); ++it)
+ {
+ const LLUUID& id_to_remove = *it;
+ const LLUUID& linked_item_id = gInventory.getLinkedItemID(id_to_remove);
+ removeCOFItemLinks(linked_item_id);
}
+ updateAppearanceFromCOF();
+}
- // *HACK: Force to remove garbage from COF.
- // Unworn links or objects can't be processed by existed removing functionality
- // since it is not designed for such cases. As example attachment object can't be removed
- // since sever don't sends message _PREHASH_KillObject in that case.
- // Also we can't check is link was successfully removed from COF since in case
- // deleting attachment link removing performs asynchronously in process_kill_object callback.
- removeCOFItemLinks(id_to_remove,false);
+void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)
+{
+ LLUUID linked_item_id = gInventory.getLinkedItemID(id_to_remove);
+ removeCOFItemLinks(linked_item_id);
+ updateAppearanceFromCOF();
}
bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_body)
@@ -2711,8 +3456,8 @@ bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_b
closer_to_body ? --it : ++it;
LLViewerInventoryItem* swap_item = *it;
if (!swap_item) return false;
- std::string tmp = swap_item->LLInventoryItem::getDescription();
- swap_item->setDescription(item->LLInventoryItem::getDescription());
+ std::string tmp = swap_item->getActualDescription();
+ swap_item->setDescription(item->getActualDescription());
item->setDescription(tmp);
@@ -2745,7 +3490,7 @@ void LLAppearanceMgr::sortItemsByActualDescription(LLInventoryModel::item_array_
{
if (items.size() < 2) return;
- std::sort(items.begin(), items.end(), sort_by_description);
+ std::sort(items.begin(), items.end(), sort_by_actual_description);
}
//#define DUMP_CAT_VERBOSE
@@ -2811,7 +3556,7 @@ LLAppearanceMgr::~LLAppearanceMgr()
void LLAppearanceMgr::setAttachmentInvLinkEnable(bool val)
{
- llinfos << "setAttachmentInvLinkEnable => " << (int) val << llendl;
+ LL_DEBUGS("Avatar") << "setAttachmentInvLinkEnable => " << (int) val << llendl;
mAttachmentInvLinkEnabled = val;
}
@@ -2855,7 +3600,7 @@ void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id)
if (mAttachmentInvLinkEnabled)
{
- LLAppearanceMgr::removeCOFItemLinks(item_id, false);
+ LLAppearanceMgr::removeCOFItemLinks(item_id);
}
else
{
@@ -2949,9 +3694,9 @@ public:
}
virtual void done()
{
- // What we do here is get the complete information on the items in
- // the library, and set up an observer that will wait for that to
- // happen.
+ // What we do here is get the complete information on the
+ // items in the requested category, and set up an observer
+ // that will wait for that to happen.
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t item_array;
gInventory.collectDescendents(mComplete.front(),
@@ -2964,9 +3709,8 @@ public:
llwarns << "Nothing fetched in category " << mComplete.front()
<< llendl;
gInventory.removeObserver(this);
+ doOnIdleOneTime(mCallable);
- // lets notify observers that loading is finished.
- gAgentWearables.notifyLoadingFinished();
delete this;
return;
}
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index c1d561781d..46252afbde 100644..100755
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -35,7 +35,6 @@
#include "llinventoryobserver.h"
#include "llviewerinventory.h"
-class LLWearable;
class LLWearableHoldingPattern;
class LLInventoryCallback;
class LLOutfitUnLockTimer;
@@ -93,6 +92,10 @@ public:
// Find the Current Outfit folder.
const LLUUID getCOF() const;
+ S32 getCOFVersion() const;
+
+ // Debugging - get truncated LLSD summary of COF contents.
+ LLSD dumpCOF() const;
// Finds the folder link to the currently worn outfit
const LLViewerInventoryItem *getBaseOutfitLink();
@@ -107,6 +110,7 @@ public:
// Update the displayed outfit name in UI.
void updatePanelOutfitName(const std::string& name);
+ void purgeBaseOutfitLink(const LLUUID& category);
void createBaseOutfitLink(const LLUUID& category, LLPointer<LLInventoryCallback> link_waiter);
void updateAgentWearables(LLWearableHoldingPattern* holder, bool append);
@@ -126,15 +130,17 @@ public:
LLPointer<LLInventoryCallback> cb);
// Add COF link to individual item.
- void addCOFItemLink(const LLUUID& item_id, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL);
- void addCOFItemLink(const LLInventoryItem *item, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL);
+ void addCOFItemLink(const LLUUID& item_id, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL, const std::string description = "");
+ void addCOFItemLink(const LLInventoryItem *item, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL, const std::string description = "");
- // Remove COF entries
- void removeCOFItemLinks(const LLUUID& item_id, bool do_update = true);
- void removeCOFLinksOfType(LLWearableType::EType type, bool do_update = true);
+ // Find COF entries referencing the given item.
+ LLInventoryModel::item_array_t findCOFItemLinks(const LLUUID& item_id);
- // Add COF link to ensemble folder.
- void addEnsembleLink(LLInventoryCategory* item, bool do_update = true);
+ // Remove COF entries
+ void removeCOFItemLinks(const LLUUID& item_id);
+ void removeCOFLinksOfType(LLWearableType::EType type);
+ void removeAllClothesFromAvatar();
+ void removeAllAttachmentsFromAvatar();
//has the current outfit changed since it was loaded?
bool isOutfitDirty() { return mOutfitIsDirty; }
@@ -162,6 +168,7 @@ public:
bool updateBaseOutfit();
//Remove clothing or detach an object from the agent (a bodypart cannot be removed)
+ void removeItemsFromAvatar(const uuid_vec_t& item_ids);
void removeItemFromAvatar(const LLUUID& item_id);
@@ -182,6 +189,20 @@ public:
bool isInUpdateAppearanceFromCOF() { return mIsInUpdateAppearanceFromCOF; }
+ void requestServerAppearanceUpdate(LLCurl::ResponderPtr responder_ptr = NULL);
+
+ void incrementCofVersion(LLHTTPClient::ResponderPtr responder_ptr = NULL);
+
+ // *HACK Remove this after server side texture baking is deployed on all sims.
+ void incrementCofVersionLegacy();
+
+ void setAppearanceServiceURL(const std::string& url) { mAppearanceServiceURL = url; }
+ std::string getAppearanceServiceURL() const;
+
+private:
+ std::string mAppearanceServiceURL;
+
+
protected:
LLAppearanceMgr();
~LLAppearanceMgr();
@@ -201,9 +222,7 @@ private:
LLInventoryModel::item_array_t& gest_items,
bool follow_folder_links);
- void purgeCategory(const LLUUID& category, bool keep_outfit_links);
- void purgeBaseOutfitLink(const LLUUID& category);
-
+ void purgeCategory(const LLUUID& category, bool keep_outfit_links, LLInventoryModel::item_array_t* keep_items = NULL);
static void onOutfitRename(const LLSD& notification, const LLSD& response);
void setOutfitLocked(bool locked);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 53c694eaca..fdc2cdb78d 100644..100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -30,7 +30,6 @@
// Viewer includes
#include "llversioninfo.h"
-#include "llversionviewer.h"
#include "llfeaturemanager.h"
#include "lluictrlfactory.h"
#include "lltexteditor.h"
@@ -118,11 +117,13 @@
#include "llleap.h"
#include "stringize.h"
+#include "llcoros.h"
// Third party library includes
#include <boost/bind.hpp>
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
+#include <boost/regex.hpp>
#if LL_WINDOWS
@@ -252,6 +253,7 @@ static LLAppViewerListener sAppViewerListener(LLAppViewer::instance);
// viewer.cpp - these are only used in viewer, should be easily moved.
#if LL_DARWIN
+const char * const LL_VERSION_BUNDLE_ID = "com.secondlife.indra.viewer";
extern void init_apple_menu(const char* product);
#endif // LL_DARWIN
@@ -269,6 +271,20 @@ BOOL gShowObjectUpdates = FALSE;
BOOL gUseQuickTime = TRUE;
eLastExecEvent gLastExecEvent = LAST_EXEC_NORMAL;
+S32 gLastExecDuration = -1; // (<0 indicates unknown)
+
+#if LL_WINDOWS
+# define LL_PLATFORM_KEY "win"
+#elif LL_DARWIN
+# define LL_PLATFORM_KEY "mac"
+#elif LL_LINUX
+# define LL_PLATFORM_KEY "lnx"
+#elif LL_SOLARIS
+# define LL_PLATFORM_KEY "sol"
+#else
+# error "Unknown Platform"
+#endif
+const char* gPlatform = LL_PLATFORM_KEY;
LLSD gDebugInfo;
@@ -292,6 +308,10 @@ LLTimer gLogoutTimer;
static const F32 LOGOUT_REQUEST_TIME = 6.f; // this will be cut short by the LogoutReply msg.
F32 gLogoutMaxTime = LOGOUT_REQUEST_TIME;
+
+S32 gPendingMetricsUploads = 0;
+
+
BOOL gDisconnected = FALSE;
// used to restore texture state after a mode switch
@@ -324,8 +344,9 @@ BOOL gLogoutInProgress = FALSE;
////////////////////////////////////////////////////////////
// Internal globals... that should be removed.
static std::string gArgs;
-
+const int MAX_MARKER_LENGTH = 1024;
const std::string MARKER_FILE_NAME("SecondLife.exec_marker");
+const std::string START_MARKER_FILE_NAME("SecondLife.start_marker");
const std::string ERROR_MARKER_FILE_NAME("SecondLife.error_marker");
const std::string LLERROR_MARKER_FILE_NAME("SecondLife.llerror_marker");
const std::string LOGOUT_MARKER_FILE_NAME("SecondLife.logout_marker");
@@ -638,7 +659,7 @@ LLTextureFetch* LLAppViewer::sTextureFetch = NULL;
LLAppViewer::LLAppViewer() :
mMarkerFile(),
- mLogoutMarkerFile(NULL),
+ mLogoutMarkerFile(),
mReportedCrash(false),
mNumSessions(0),
mPurgeCache(false),
@@ -668,6 +689,7 @@ LLAppViewer::LLAppViewer() :
gLoggedInTime.stop();
LLLoginInstance::instance().setUpdaterService(mUpdater.get());
+ LLLoginInstance::instance().setPlatformInfo(gPlatform, getOSInfo().getOSVersionString());
}
LLAppViewer::~LLAppViewer()
@@ -682,6 +704,15 @@ LLAppViewer::~LLAppViewer()
removeMarkerFile();
}
+class LLUITranslationBridge : public LLTranslationBridge
+{
+public:
+ virtual std::string getString(const std::string &xml_desc)
+ {
+ return LLTrans::getString(xml_desc);
+ }
+};
+
bool LLAppViewer::init()
{
//
@@ -693,6 +724,10 @@ bool LLAppViewer::init()
//
LLFastTimer::reset();
+ // initialize LLWearableType translation bridge.
+ // Memory will be cleaned up in ::cleanupClass()
+ LLWearableType::initClass(new LLUITranslationBridge());
+
// initialize SSE options
LLVector4a::initClass();
@@ -721,6 +756,7 @@ bool LLAppViewer::init()
//set the max heap size.
initMaxHeapSize() ;
+ LLCoros::instance().setStackSize(gSavedSettings.getS32("CoroutineStackSize"));
LLPrivateMemoryPoolManager::initClass((BOOL)gSavedSettings.getBOOL("MemoryPrivatePoolEnabled"), (U32)gSavedSettings.getU32("MemoryPrivatePoolSize")*1024*1024) ;
@@ -786,7 +822,7 @@ bool LLAppViewer::init()
LLUIImageList::getInstance(),
ui_audio_callback,
deferred_ui_audio_callback,
- &LLUI::sGLScaleFactor);
+ &LLUI::getScaleFactor());
LL_INFOS("InitInfo") << "UI initialized." << LL_ENDL ;
// NOW LLUI::getLanguage() should work. gDirUtilp must know the language
@@ -1690,19 +1726,7 @@ bool LLAppViewer::cleanup()
gAudiop->setStreamingAudioImpl(NULL);
// shut down the audio subsystem
-
- bool want_longname = false;
- if (gAudiop->getDriverName(want_longname) == "FMOD")
- {
- // This hack exists because fmod likes to occasionally
- // crash or hang forever when shutting down, for no
- // apparent reason.
- llwarns << "Hack, skipping FMOD audio engine cleanup" << llendflush;
- }
- else
- {
- gAudiop->shutdown();
- }
+ gAudiop->shutdown();
delete gAudiop;
gAudiop = NULL;
@@ -1775,6 +1799,8 @@ bool LLAppViewer::cleanup()
llinfos << "Cleaning up Objects" << llendflush;
LLViewerObject::cleanupVOClasses();
+
+ LLAvatarAppearance::cleanupClass();
LLPostProcess::cleanupClass();
@@ -2014,6 +2040,8 @@ bool LLAppViewer::cleanup()
llinfos << "Cleaning up LLProxy." << llendl;
LLProxy::cleanupClass();
+ LLWearableType::cleanupClass();
+
LLMainLoopRepeater::instance().stop();
//release all private memory pools.
@@ -2097,7 +2125,7 @@ void errorCallback(const std::string &error_string)
LLError::crashAndLoop(error_string);
}
-bool LLAppViewer::initLogging()
+void LLAppViewer::initLogging()
{
//
// Set up logging defaults for the viewer
@@ -2111,17 +2139,46 @@ bool LLAppViewer::initLogging()
"SecondLife.old");
LLFile::remove(old_log_file);
- // Rename current log file to ".old"
+ // Get name of the log file
std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
"SecondLife.log");
+ /*
+ * Before touching any log files, compute the duration of the last run
+ * by comparing the ctime of the previous start marker file with the ctime
+ * of the last log file.
+ */
+ std::string start_marker_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, START_MARKER_FILE_NAME);
+ llstat start_marker_stat;
+ llstat log_file_stat;
+ if ( 0 == LLFile::stat(start_marker_file_name, &start_marker_stat)
+ && 0 == LLFile::stat(log_file, &log_file_stat)
+ )
+ {
+ int elapsed_seconds = log_file_stat.st_ctime - start_marker_stat.st_ctime;
+ // only report a last run time if the last viewer was the same version
+ // because this stat will be counted against this version
+ gLastExecDuration = markerIsSameVersion(start_marker_file_name) ? elapsed_seconds : -1;
+ }
+ else
+ {
+ // at least one of the LLFile::stat calls failed, so we can't compute the run time
+ gLastExecDuration = -1; // unknown
+ }
+
+ // Create a new start marker file for comparison with log file time for the next run
+ LLAPRFile start_marker_file ;
+ start_marker_file.open(start_marker_file_name, LL_APR_W);
+ if (start_marker_file.getFileHandle())
+ {
+ recordMarkerVersion(start_marker_file);
+ start_marker_file.close();
+ }
+
+ // Rename current log file to ".old"
LLFile::rename(log_file, old_log_file);
// Set the log file to SecondLife.log
-
LLError::logToFile(log_file);
-
- // *FIX:Mani no error handling here!
- return true;
}
bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
@@ -2696,51 +2753,37 @@ bool LLAppViewer::initConfiguration()
}
}
- if (!gSavedSettings.getBOOL("AllowMultipleViewers"))
+ //
+ // Check for another instance of the app running
+ //
+ mSecondInstance = anotherInstanceRunning();
+ if (mSecondInstance && !gSavedSettings.getBOOL("AllowMultipleViewers"))
{
- //
- // Check for another instance of the app running
- //
-
- mSecondInstance = anotherInstanceRunning();
-
- if (mSecondInstance)
- {
- std::ostringstream msg;
- msg << LLTrans::getString("MBAlreadyRunning");
- OSMessageBox(
- msg.str(),
- LLStringUtil::null,
- OSMB_OK);
- return false;
- }
+ std::ostringstream msg;
+ msg << LLTrans::getString("MBAlreadyRunning");
+ OSMessageBox(
+ msg.str(),
+ LLStringUtil::null,
+ OSMB_OK);
+ return false;
+ }
- initMarkerFile();
+ initMarkerFile();
- checkForCrash();
- }
- else
+ if (mSecondInstance)
{
- mSecondInstance = anotherInstanceRunning();
-
- if (mSecondInstance)
+ // This is the second instance of SL. Turn off voice support,
+ // but make sure the setting is *not* persisted.
+ LLControlVariable* disable_voice = gSavedSettings.getControl("CmdLineDisableVoice");
+ if(disable_voice)
{
- // This is the second instance of SL. Turn off voice support,
- // but make sure the setting is *not* persisted.
- LLControlVariable* disable_voice = gSavedSettings.getControl("CmdLineDisableVoice");
- if(disable_voice)
- {
- const BOOL DO_NOT_PERSIST = FALSE;
- disable_voice->setValue(LLSD(TRUE), DO_NOT_PERSIST);
- }
+ const BOOL DO_NOT_PERSIST = FALSE;
+ disable_voice->setValue(LLSD(TRUE), DO_NOT_PERSIST);
}
-
- initMarkerFile();
-
- if(!mSecondInstance)
- {
- checkForCrash();
- }
+ }
+ else
+ {
+ checkForCrash();
}
// NextLoginLocation is set from the command line option
@@ -2769,6 +2812,16 @@ bool LLAppViewer::initConfiguration()
loadColorSettings();
+ // Let anyone else who cares know that we've populated our settings
+ // variables.
+ for (LLControlGroup::key_iter ki(LLControlGroup::beginKeys()), kend(LLControlGroup::endKeys());
+ ki != kend; ++ki)
+ {
+ // For each named instance of LLControlGroup, send an event saying
+ // we've initialized an LLControlGroup instance by that name.
+ LLEventPumps::instance().obtain("LLControlGroup").post(LLSDMap("init", *ki));
+ }
+
return true; // Config was successful.
}
@@ -2847,25 +2900,46 @@ namespace {
std::string notification_name;
void (*apply_callback)(LLSD const &, LLSD const &) = NULL;
+ /* Build up the notification name...
+ * it can be any of these, which are included here for the sake of grep:
+ * RequiredUpdateDownloadedDialog
+ * RequiredUpdateDownloadedVerboseDialog
+ * OtherChannelRequiredUpdateDownloadedDialog
+ * OtherChannelRequiredUpdateDownloadedVerbose
+ * DownloadBackgroundTip
+ * DownloadBackgroundDialog
+ * OtherChannelDownloadBackgroundTip
+ * OtherChannelDownloadBackgroundDialog
+ */
+ {
+ LL_DEBUGS("UpdaterService") << "data = ";
+ std::ostringstream data_dump;
+ LLSDSerialize::toNotation(data, data_dump);
+ LL_CONT << data_dump.str() << LL_ENDL;
+ }
+ if(data["channel"].asString() != LLVersionInfo::getChannel())
+ {
+ notification_name.append("OtherChannel");
+ }
if(data["required"].asBoolean())
{
if(LLStartUp::getStartupState() <= STATE_LOGIN_WAIT)
{
// The user never saw the progress bar.
apply_callback = &apply_update_ok_callback;
- notification_name = "RequiredUpdateDownloadedVerboseDialog";
+ notification_name += "RequiredUpdateDownloadedVerboseDialog";
}
else if(LLStartUp::getStartupState() < STATE_WORLD_INIT)
{
// The user is logging in but blocked.
apply_callback = &apply_update_ok_callback;
- notification_name = "RequiredUpdateDownloadedDialog";
+ notification_name += "RequiredUpdateDownloadedDialog";
}
else
{
// The user is already logged in; treat like an optional update.
apply_callback = &apply_update_callback;
- notification_name = "DownloadBackgroundTip";
+ notification_name += "DownloadBackgroundTip";
}
}
else
@@ -2875,36 +2949,47 @@ namespace {
{
// CHOP-262 we need to use a different notification
// method prior to login.
- notification_name = "DownloadBackgroundDialog";
+ notification_name += "DownloadBackgroundDialog";
}
else
{
- notification_name = "DownloadBackgroundTip";
+ notification_name += "DownloadBackgroundTip";
}
}
LLSD substitutions;
substitutions["VERSION"] = data["version"];
-
- // truncate version at the rightmost '.'
- std::string version_short(data["version"]);
- size_t short_length = version_short.rfind('.');
- if (short_length != std::string::npos)
+ std::string new_channel = data["channel"].asString();
+ substitutions["NEW_CHANNEL"] = new_channel;
+ std::string info_url = data["info_url"].asString();
+ if ( !info_url.empty() )
{
- version_short.resize(short_length);
+ substitutions["INFO_URL"] = info_url;
}
+ else
+ {
+ LL_WARNS("UpdaterService") << "no info url supplied - defaulting to hard coded release notes pattern" << LL_ENDL;
- LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]");
- relnotes_url.setArg("[VERSION_SHORT]", version_short);
+ // truncate version at the rightmost '.'
+ std::string version_short(data["version"]);
+ size_t short_length = version_short.rfind('.');
+ if (short_length != std::string::npos)
+ {
+ version_short.resize(short_length);
+ }
- // *TODO thread the update service's response through to this point
- std::string const & channel = LLVersionInfo::getChannel();
- boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free);
+ LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]");
+ relnotes_url.setArg("[VERSION_SHORT]", version_short);
- relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get());
- relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL"));
- substitutions["RELEASE_NOTES_FULL_URL"] = relnotes_url.getString();
+ // *TODO thread the update service's response through to this point
+ std::string const & channel = LLVersionInfo::getChannel();
+ boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free);
+ relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get());
+ relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL"));
+ substitutions["INFO_URL"] = relnotes_url.getString();
+ }
+
LLNotificationsUtil::add(notification_name, substitutions, LLSD(), apply_callback);
}
@@ -2952,16 +3037,40 @@ void LLAppViewer::initUpdater()
std::string url = gSavedSettings.getString("UpdaterServiceURL");
std::string channel = LLVersionInfo::getChannel();
std::string version = LLVersionInfo::getVersion();
- std::string protocol_version = gSavedSettings.getString("UpdaterServiceProtocolVersion");
std::string service_path = gSavedSettings.getString("UpdaterServicePath");
U32 check_period = gSavedSettings.getU32("UpdaterServiceCheckPeriod");
+ bool willing_to_test;
+ LL_DEBUGS("UpdaterService") << "channel " << channel << LL_ENDL;
+ static const boost::regex is_test_channel("\\bTest$");
+ if (boost::regex_search(channel, is_test_channel))
+ {
+ LL_INFOS("UpdaterService") << "Test build: overriding willing_to_test by sending testno" << LL_ENDL;
+ willing_to_test = false;
+ }
+ else
+ {
+ willing_to_test = gSavedSettings.getBOOL("UpdaterWillingToTest");
+ }
+ unsigned char unique_id[MD5HEX_STR_SIZE];
+ if ( ! llHashedUniqueID(unique_id) )
+ {
+ if ( willing_to_test )
+ {
+ LL_WARNS("UpdaterService") << "Unable to provide a unique id; overriding willing_to_test by sending testno" << LL_ENDL;
+ }
+ willing_to_test = false;
+ }
mUpdater->setAppExitCallback(boost::bind(&LLAppViewer::forceQuit, this));
- mUpdater->initialize(protocol_version,
- url,
+ mUpdater->initialize(url,
service_path,
channel,
- version);
+ version,
+ gPlatform,
+ getOSInfo().getOSVersionString(),
+ unique_id,
+ willing_to_test
+ );
mUpdater->setCheckPeriod(check_period);
mUpdater->setBandwidthLimit((int)gSavedSettings.getF32("UpdaterMaximumBandwidth") * (1024/8));
gSavedSettings.getControl("UpdaterMaximumBandwidth")->getSignal()->
@@ -3219,8 +3328,8 @@ void LLAppViewer::writeSystemInfo()
}
// Dump some debugging info
- LL_INFOS("SystemInfo") << LLTrans::getString("APP_NAME")
- << " version " << LLVersionInfo::getShortVersion() << LL_ENDL;
+ LL_INFOS("SystemInfo") << "Application: " << LLTrans::getString("APP_NAME") << LL_ENDL;
+ LL_INFOS("SystemInfo") << "Version: " << LLVersionInfo::getChannelAndVersion() << LL_ENDL;
// Dump the local time and time zone
time_t now;
@@ -3346,22 +3455,26 @@ void LLAppViewer::handleViewerCrash()
//we're already in a crash situation
if (gDirUtilp)
{
- std::string crash_file_name;
- if(gLLErrorActivated) crash_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,LLERROR_MARKER_FILE_NAME);
- else crash_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,ERROR_MARKER_FILE_NAME);
- llinfos << "Creating crash marker file " << crash_file_name << llendl;
-
+ std::string crash_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
+ gLLErrorActivated
+ ? LLERROR_MARKER_FILE_NAME
+ : ERROR_MARKER_FILE_NAME);
LLAPRFile crash_file ;
crash_file.open(crash_file_name, LL_APR_W);
if (crash_file.getFileHandle())
{
LL_INFOS("MarkerFile") << "Created crash marker file " << crash_file_name << LL_ENDL;
+ recordMarkerVersion(crash_file);
}
else
{
LL_WARNS("MarkerFile") << "Cannot create error marker file " << crash_file_name << LL_ENDL;
}
}
+ else
+ {
+ LL_WARNS("MarkerFile") << "No gDirUtilp with which to create error marker file name" << LL_ENDL;
+ }
if (gMessageSystem && gDirUtilp)
{
@@ -3413,14 +3526,14 @@ bool LLAppViewer::anotherInstanceRunning()
// If the file is currently locked, that means another process is already running.
std::string marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, MARKER_FILE_NAME);
- LL_DEBUGS("MarkerFile") << "Checking marker file for lock..." << LL_ENDL;
+ LL_DEBUGS("MarkerFile") << "Checking marker file '"<< marker_file << "' for lock..." << LL_ENDL;
//Freeze case checks
if (LLAPRFile::isExist(marker_file, NULL, LL_APR_RB))
{
// File exists, try opening with write permissions
LLAPRFile outfile ;
- outfile.open(marker_file, LL_APR_WB);
+ outfile.open(marker_file, LL_APR_AB);
apr_file_t* fMarker = outfile.getFileHandle() ;
if (!fMarker)
{
@@ -3439,6 +3552,50 @@ bool LLAppViewer::anotherInstanceRunning()
return false;
}
+// static
+void LLAppViewer::recordMarkerVersion(LLAPRFile& marker_file)
+{
+ std::string marker_version(LLVersionInfo::getChannelAndVersion());
+ if ( marker_version.length() > MAX_MARKER_LENGTH )
+ {
+ LL_WARNS_ONCE("MarkerFile") << "Version length ("<< marker_version.length()<< ")"
+ << " greater than maximum (" << MAX_MARKER_LENGTH << ")"
+ << ": marker matching may be incorrect"
+ << LL_ENDL;
+ }
+
+ // record the viewer version in the marker file
+ marker_file.write(marker_version.data(), marker_version.length());
+}
+
+bool LLAppViewer::markerIsSameVersion(const std::string& marker_name) const
+{
+ bool sameVersion = false;
+
+ std::string my_version(LLVersionInfo::getChannelAndVersion());
+ char marker_version[MAX_MARKER_LENGTH];
+ S32 marker_version_length;
+
+ LLAPRFile marker_file;
+ marker_file.open(marker_name, LL_APR_RB);
+ if (marker_file.getFileHandle())
+ {
+ marker_version_length = marker_file.read(marker_version, sizeof(marker_version));
+ std::string marker_string(marker_version, marker_version_length);
+ if ( 0 == my_version.compare( 0, my_version.length(), marker_version, 0, marker_version_length ) )
+ {
+ sameVersion = true;
+ }
+ LL_DEBUGS("MarkerFile") << "Compare markers for '" << marker_name << "': "
+ << "\n mine '" << my_version << "'"
+ << "\n marker '" << marker_string << "'"
+ << "\n " << ( sameVersion ? "same" : "different" ) << " version"
+ << LL_ENDL;
+ marker_file.close();
+ }
+ return sameVersion;
+}
+
void LLAppViewer::initMarkerFile()
{
//First, check for the existence of other files.
@@ -3461,27 +3618,55 @@ void LLAppViewer::initMarkerFile()
if (LLAPRFile::isExist(mMarkerFileName, NULL, LL_APR_RB) && !anotherInstanceRunning())
{
- gLastExecEvent = LAST_EXEC_FROZE;
- LL_INFOS("MarkerFile") << "Exec marker found: program froze on previous execution" << LL_ENDL;
+ if ( markerIsSameVersion(mMarkerFileName) )
+ {
+ LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found" << LL_ENDL;
+ gLastExecEvent = LAST_EXEC_FROZE;
+ }
+ else
+ {
+ LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found, but versions did not match" << LL_ENDL;
+ }
}
if(LLAPRFile::isExist(logout_marker_file, NULL, LL_APR_RB))
{
- gLastExecEvent = LAST_EXEC_LOGOUT_FROZE;
- LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ if (markerIsSameVersion(logout_marker_file))
+ {
+ gLastExecEvent = LAST_EXEC_LOGOUT_FROZE;
+ LL_INFOS("MarkerFile") << "Logout crashed '"<< logout_marker_file << "', setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("MarkerFile") << "Logout crash marker '"<< logout_marker_file << "' found, but versions did not match" << LL_ENDL;
+ }
LLAPRFile::remove(logout_marker_file);
}
if(LLAPRFile::isExist(llerror_marker_file, NULL, LL_APR_RB))
{
- if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH;
- else gLastExecEvent = LAST_EXEC_LLERROR_CRASH;
- LL_INFOS("MarkerFile") << "Last exec LLError crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ if (markerIsSameVersion(llerror_marker_file))
+ {
+ gLastExecEvent = ( gLastExecEvent == LAST_EXEC_LOGOUT_FROZE )
+ ? LAST_EXEC_LOGOUT_CRASH : LAST_EXEC_LLERROR_CRASH;
+ LL_INFOS("MarkerFile") << "Last exec LLError '"<< llerror_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("MarkerFile") << "Last exec LLError marker '"<< llerror_marker_file << "' found, but versions did not match" << LL_ENDL;
+ }
LLAPRFile::remove(llerror_marker_file);
}
if(LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB))
{
- if(gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) gLastExecEvent = LAST_EXEC_LOGOUT_CRASH;
- else gLastExecEvent = LAST_EXEC_OTHER_CRASH;
- LL_INFOS("MarkerFile") << "Last exec crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ if (markerIsSameVersion(error_marker_file))
+ {
+ gLastExecEvent = (gLastExecEvent == LAST_EXEC_LOGOUT_FROZE)
+ ? LAST_EXEC_LOGOUT_CRASH : LAST_EXEC_OTHER_CRASH;
+ LL_INFOS("MarkerFile") << "Last exec '"<< error_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("MarkerFile") << "Last exec '"<< error_marker_file << "' marker found, but versions did not match" << LL_ENDL;
+ }
LLAPRFile::remove(error_marker_file);
}
@@ -3497,35 +3682,48 @@ void LLAppViewer::initMarkerFile()
if (s == APR_SUCCESS && mMarkerFile.getFileHandle())
{
- LL_DEBUGS("MarkerFile") << "Marker file created." << LL_ENDL;
+ LL_DEBUGS("MarkerFile") << "Marker file '"<< mMarkerFileName << "' created." << LL_ENDL;
+ if (APR_SUCCESS == apr_file_lock(mMarkerFile.getFileHandle(), APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE))
+ {
+ recordMarkerVersion(mMarkerFile);
+ LL_DEBUGS("MarkerFile") << "Marker file locked." << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("MarkerFile") << "Marker file cannot be locked." << LL_ENDL;
+ }
}
else
{
- LL_INFOS("MarkerFile") << "Failed to create marker file." << LL_ENDL;
- return;
- }
- if (apr_file_lock(mMarkerFile.getFileHandle(), APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS)
- {
- mMarkerFile.close() ;
- LL_INFOS("MarkerFile") << "Marker file cannot be locked." << LL_ENDL;
- return;
+ LL_INFOS("MarkerFile") << "Failed to create marker file '"<< mMarkerFileName << "'." << LL_ENDL;
}
-
- LL_DEBUGS("MarkerFile") << "Marker file locked." << LL_ENDL;
}
void LLAppViewer::removeMarkerFile(bool leave_logout_marker)
{
- LL_DEBUGS("MarkerFile") << "removeMarkerFile()" << LL_ENDL;
+ LL_DEBUGS("MarkerFile") << "removeMarkerFile("<<(leave_logout_marker?"leave":"remove") <<" logout)" << LL_ENDL;
if (mMarkerFile.getFileHandle())
{
- mMarkerFile.close() ;
+ LL_DEBUGS("MarkerFile") << "removeMarkerFile marker '"<<mMarkerFileName<<"'"<< LL_ENDL;
+ mMarkerFile.close();
LLAPRFile::remove( mMarkerFileName );
}
- if (mLogoutMarkerFile != NULL && !leave_logout_marker)
+ else
+ {
+ LL_WARNS("MarkerFile") << "removeMarkerFile marker '"<<mMarkerFileName<<"' not open"<< LL_ENDL;
+ }
+ if (!leave_logout_marker)
{
+ if (mLogoutMarkerFile.getFileHandle())
+ {
+ LL_DEBUGS("MarkerFile") << "removeMarkerFile logout marker '"<<mLogoutMarkerFileName<<"'"<< LL_ENDL;
+ mLogoutMarkerFile.close();
+ }
+ else
+ {
+ LL_WARNS("MarkerFile") << "removeMarkerFile logout marker '"<<mLogoutMarkerFileName<<"' not open"<< LL_ENDL;
+ }
LLAPRFile::remove( mLogoutMarkerFileName );
- mLogoutMarkerFile = NULL;
}
}
@@ -3573,6 +3771,12 @@ void LLAppViewer::requestQuit()
// Try to send metrics back to the grid
metricsSend(!gDisconnected);
+
+ // Try to send last batch of avatar rez metrics.
+ if (!gDisconnected && isAgentAvatarValid())
+ {
+ gAgentAvatarp->updateAvatarRezMetrics(true); // force a last packet to be sent.
+ }
LLHUDEffectSpiral *effectp = (LLHUDEffectSpiral*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINT, TRUE);
effectp->setPositionGlobal(gAgent.getPositionGlobal());
@@ -4365,7 +4569,6 @@ void LLAppViewer::idle()
// The 5-second interval is nice for this purpose. If the object debug
// bit moves or is disabled, please give this a suitable home.
LLViewerAssetStatsFF::record_fps_main(gFPSClamped);
- LLViewerAssetStatsFF::record_avatar_stats();
}
}
@@ -4681,6 +4884,13 @@ void LLAppViewer::idleShutdown()
return;
}
+ if (gPendingMetricsUploads > 0
+ && gLogoutTimer.getElapsedTimeF32() < SHUTDOWN_UPLOAD_SAVE_TIME
+ && !logoutRequestSent())
+ {
+ return;
+ }
+
// All floaters are closed. Tell server we want to quit.
if( !logoutRequestSent() )
{
@@ -4727,16 +4937,15 @@ void LLAppViewer::sendLogoutRequest()
mLogoutMarkerFileName = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,LOGOUT_MARKER_FILE_NAME);
LLAPRFile outfile ;
- outfile.open(mLogoutMarkerFileName, LL_APR_W);
- mLogoutMarkerFile = outfile.getFileHandle() ;
- if (mLogoutMarkerFile)
+ mLogoutMarkerFile.open(mLogoutMarkerFileName, LL_APR_W);
+ if (mLogoutMarkerFile.getFileHandle())
{
- llinfos << "Created logout marker file " << mLogoutMarkerFileName << llendl;
- apr_file_close(mLogoutMarkerFile);
+ LL_INFOS("MarkerFile") << "Created logout marker file '"<< mLogoutMarkerFileName << "' " << mLogoutMarkerFileName << LL_ENDL;
+ recordMarkerVersion(outfile);
}
else
{
- llwarns << "Cannot create logout marker file " << mLogoutMarkerFileName << llendl;
+ LL_WARNS("MarkerFile") << "Cannot create logout marker file " << mLogoutMarkerFileName << LL_ENDL;
}
}
}
@@ -5133,17 +5342,9 @@ void LLAppViewer::handleLoginComplete()
void LLAppViewer::launchUpdater()
{
- LLSD query_map = LLSD::emptyMap();
- // *TODO place os string in a global constant
-#if LL_WINDOWS
- query_map["os"] = "win";
-#elif LL_DARWIN
- query_map["os"] = "mac";
-#elif LL_LINUX
- query_map["os"] = "lnx";
-#elif LL_SOLARIS
- query_map["os"] = "sol";
-#endif
+ LLSD query_map = LLSD::emptyMap();
+ query_map["os"] = gPlatform;
+
// *TODO change userserver to be grid on both viewer and sim, since
// userserver no longer exists.
query_map["userserver"] = LLGridManager::getInstance()->getGridId();
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 7563d672e3..d3a8cf24d9 100644..100755
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -183,7 +183,7 @@ public:
protected:
virtual bool initWindow(); // Initialize the viewer's window.
- virtual bool initLogging(); // Initialize log files, logging system, return false on failure.
+ virtual void initLogging(); // Initialize log files, logging system
virtual void initConsole() {}; // Initialize OS level debugging console.
virtual bool initHardwareTest() { return true; } // A false result indicates the app should quit.
virtual bool initSLURLHandler();
@@ -217,7 +217,9 @@ private:
bool anotherInstanceRunning();
void initMarkerFile();
-
+ static void recordMarkerVersion(LLAPRFile& marker_file);
+ bool markerIsSameVersion(const std::string& marker_name) const;
+
void idle();
void idleShutdown();
// update avatar SLID and display name caches
@@ -237,7 +239,7 @@ private:
LLAPRFile mMarkerFile; // A file created to indicate the app is running.
std::string mLogoutMarkerFileName;
- apr_file_t* mLogoutMarkerFile; // A file created to indicate the app is running.
+ LLAPRFile mLogoutMarkerFile; // A file created to indicate the app is running.
LLOSInfo mSysOSInfo;
@@ -321,6 +323,9 @@ typedef enum
} eLastExecEvent;
extern eLastExecEvent gLastExecEvent; // llstartup
+extern S32 gLastExecDuration; ///< the duration of the previous run in seconds (<0 indicates unknown)
+
+extern const char* gPlatform;
extern U32 gFrameCount;
extern U32 gForegroundFrameCount;
@@ -342,6 +347,8 @@ extern LLFrameTimer gLoggedInTime;
extern F32 gLogoutMaxTime;
extern LLTimer gLogoutTimer;
+extern S32 gPendingMetricsUploads;
+
extern F32 gSimLastTime;
extern F32 gSimFrames;
diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp
index 8695652168..5f98fd0a34 100644..100755
--- a/indra/newview/llappviewerlinux.cpp
+++ b/indra/newview/llappviewerlinux.cpp
@@ -440,7 +440,7 @@ bool LLAppViewerLinux::beingDebugged()
#endif
}
-bool LLAppViewerLinux::initLogging()
+void LLAppViewerLinux::initLogging()
{
// Remove the last stack trace, if any
// This file is no longer created, since the move to Google Breakpad
@@ -449,7 +449,7 @@ bool LLAppViewerLinux::initLogging()
gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log");
LLFile::remove(old_stack_file);
- return LLAppViewer::initLogging();
+ LLAppViewer::initLogging();
}
bool LLAppViewerLinux::initParseCommandLine(LLCommandLineParser& clp)
diff --git a/indra/newview/llappviewerlinux.h b/indra/newview/llappviewerlinux.h
index 58e5160180..b30977acb3 100644..100755
--- a/indra/newview/llappviewerlinux.h
+++ b/indra/newview/llappviewerlinux.h
@@ -63,7 +63,7 @@ protected:
virtual bool restoreErrorTrap();
virtual void handleCrashReporting(bool reportFreeze);
- virtual bool initLogging();
+ virtual void initLogging();
virtual bool initParseCommandLine(LLCommandLineParser& clp);
virtual bool initSLURLHandler();
diff --git a/indra/newview/llappviewerlinux_api.h b/indra/newview/llappviewerlinux_api.h
index 5d5fcaa3d6..5d5fcaa3d6 100644..100755
--- a/indra/newview/llappviewerlinux_api.h
+++ b/indra/newview/llappviewerlinux_api.h
diff --git a/indra/newview/llappviewerlinux_api.xml b/indra/newview/llappviewerlinux_api.xml
index fac35b7adc..fac35b7adc 100644..100755
--- a/indra/newview/llappviewerlinux_api.xml
+++ b/indra/newview/llappviewerlinux_api.xml
diff --git a/indra/newview/llappviewerlinux_api_dbus.cpp b/indra/newview/llappviewerlinux_api_dbus.cpp
index 32e7e0a83d..32e7e0a83d 100644..100755
--- a/indra/newview/llappviewerlinux_api_dbus.cpp
+++ b/indra/newview/llappviewerlinux_api_dbus.cpp
diff --git a/indra/newview/llappviewerlinux_api_dbus.h b/indra/newview/llappviewerlinux_api_dbus.h
index 3eee25b53d..3eee25b53d 100644..100755
--- a/indra/newview/llappviewerlinux_api_dbus.h
+++ b/indra/newview/llappviewerlinux_api_dbus.h
diff --git a/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc b/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc
index c0548e2fba..c0548e2fba 100644..100755
--- a/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc
+++ b/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc
diff --git a/indra/newview/llappviewerlistener.cpp b/indra/newview/llappviewerlistener.cpp
index 94250f1fc2..94250f1fc2 100644..100755
--- a/indra/newview/llappviewerlistener.cpp
+++ b/indra/newview/llappviewerlistener.cpp
diff --git a/indra/newview/llappviewerlistener.h b/indra/newview/llappviewerlistener.h
index 78c8b1909e..78c8b1909e 100644..100755
--- a/indra/newview/llappviewerlistener.h
+++ b/indra/newview/llappviewerlistener.h
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 4d340cafa9..4d340cafa9 100644..100755
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h
index 25053da5e8..25053da5e8 100644..100755
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 8326be433e..0ba3669487 100644..100755
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -92,7 +92,7 @@ void nvapi_error(NvAPI_Status status)
llwarns << szDesc << llendl;
//should always trigger when asserts are enabled
- llassert(status == NVAPI_OK);
+ //llassert(status == NVAPI_OK);
}
// Create app mutex creates a unique global windows object.
@@ -509,9 +509,9 @@ bool LLAppViewerWin32::cleanup()
return result;
}
-bool LLAppViewerWin32::initLogging()
+void LLAppViewerWin32::initLogging()
{
- return LLAppViewer::initLogging();
+ LLAppViewer::initLogging();
}
void LLAppViewerWin32::initConsole()
diff --git a/indra/newview/llappviewerwin32.h b/indra/newview/llappviewerwin32.h
index 67594aea48..d95174dd1d 100644..100755
--- a/indra/newview/llappviewerwin32.h
+++ b/indra/newview/llappviewerwin32.h
@@ -44,7 +44,7 @@ public:
virtual bool cleanup();
protected:
- virtual bool initLogging(); // Override to clean stack_trace info.
+ virtual void initLogging(); // Override to clean stack_trace info.
virtual void initConsole(); // Initialize OS level debugging console.
virtual bool initHardwareTest(); // Win32 uses DX9 to test hardware.
virtual bool initParseCommandLine(LLCommandLineParser& clp);
diff --git a/indra/newview/llassetuploadqueue.cpp b/indra/newview/llassetuploadqueue.cpp
index f943759bb8..4bdb690225 100644..100755
--- a/indra/newview/llassetuploadqueue.cpp
+++ b/indra/newview/llassetuploadqueue.cpp
@@ -69,10 +69,11 @@ public:
delete mData;
}
- virtual void error(U32 statusNum, const std::string& reason)
+ virtual void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- llwarns << "Error: " << reason << llendl;
- LLUpdateTaskInventoryResponder::error(statusNum, reason);
+ llwarns << "LLAssetUploadChainResponder Error [status:"
+ << statusNum << "]: " << content << llendl;
+ LLUpdateTaskInventoryResponder::errorWithContent(statusNum, reason, content);
LLAssetUploadQueue *queue = mSupplier->get();
if (queue)
{
diff --git a/indra/newview/llassetuploadqueue.h b/indra/newview/llassetuploadqueue.h
index 434f3e5c03..434f3e5c03 100644..100755
--- a/indra/newview/llassetuploadqueue.h
+++ b/indra/newview/llassetuploadqueue.h
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 7b2c536f5a..2564802387 100644..100755
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -48,8 +48,8 @@
#include "llviewercontrol.h"
#include "llviewerobjectlist.h"
#include "llviewermenufile.h"
+#include "llviewertexlayer.h"
#include "llviewerwindow.h"
-#include "lltexlayer.h"
#include "lltrans.h"
// library includes
@@ -225,10 +225,10 @@ LLAssetUploadResponder::~LLAssetUploadResponder()
}
// virtual
-void LLAssetUploadResponder::error(U32 statusNum, const std::string& reason)
+void LLAssetUploadResponder::errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- llinfos << "LLAssetUploadResponder::error " << statusNum
- << " reason: " << reason << llendl;
+ llinfos << "LLAssetUploadResponder::error [status:"
+ << statusNum << "]: " << content << llendl;
LLSD args;
switch(statusNum)
{
@@ -340,9 +340,9 @@ LLNewAgentInventoryResponder::LLNewAgentInventoryResponder(
}
// virtual
-void LLNewAgentInventoryResponder::error(U32 statusNum, const std::string& reason)
+void LLNewAgentInventoryResponder::errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- LLAssetUploadResponder::error(statusNum, reason);
+ LLAssetUploadResponder::errorWithContent(statusNum, reason, content);
//LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, LLUUID(), FALSE);
}
@@ -456,7 +456,7 @@ LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,
LLSendTexLayerResponder::~LLSendTexLayerResponder()
{
- // mBakedUploadData is normally deleted by calls to LLTexLayerSetBuffer::onTextureUploadComplete() below
+ // mBakedUploadData is normally deleted by calls to LLViewerTexLayerSetBuffer::onTextureUploadComplete() below
if (mBakedUploadData)
{ // ...but delete it in the case where uploadComplete() is never called
delete mBakedUploadData;
@@ -477,22 +477,23 @@ void LLSendTexLayerResponder::uploadComplete(const LLSD& content)
if (result == "complete"
&& mBakedUploadData != NULL)
{ // Invoke
- LLTexLayerSetBuffer::onTextureUploadComplete(new_id, (void*) mBakedUploadData, 0, LL_EXSTAT_NONE);
+ LLViewerTexLayerSetBuffer::onTextureUploadComplete(new_id, (void*) mBakedUploadData, 0, LL_EXSTAT_NONE);
mBakedUploadData = NULL; // deleted in onTextureUploadComplete()
}
else
{ // Invoke the original callback with an error result
- LLTexLayerSetBuffer::onTextureUploadComplete(new_id, (void*) mBakedUploadData, -1, LL_EXSTAT_NONE);
+ LLViewerTexLayerSetBuffer::onTextureUploadComplete(new_id, (void*) mBakedUploadData, -1, LL_EXSTAT_NONE);
mBakedUploadData = NULL; // deleted in onTextureUploadComplete()
}
}
-void LLSendTexLayerResponder::error(U32 statusNum, const std::string& reason)
+void LLSendTexLayerResponder::errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- llinfos << "status: " << statusNum << " reason: " << reason << llendl;
+ llinfos << "LLSendTexLayerResponder error [status:"
+ << statusNum << "]: " << content << llendl;
// Invoke the original callback with an error result
- LLTexLayerSetBuffer::onTextureUploadComplete(LLUUID(), (void*) mBakedUploadData, -1, LL_EXSTAT_NONE);
+ LLViewerTexLayerSetBuffer::onTextureUploadComplete(LLUUID(), (void*) mBakedUploadData, -1, LL_EXSTAT_NONE);
mBakedUploadData = NULL; // deleted in onTextureUploadComplete()
}
diff --git a/indra/newview/llassetuploadresponders.h b/indra/newview/llassetuploadresponders.h
index 381b919c4a..a6d1016136 100644..100755
--- a/indra/newview/llassetuploadresponders.h
+++ b/indra/newview/llassetuploadresponders.h
@@ -42,7 +42,7 @@ public:
LLAssetType::EType asset_type);
~LLAssetUploadResponder();
- virtual void error(U32 statusNum, const std::string& reason);
+ virtual void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content);
virtual void result(const LLSD& content);
virtual void uploadUpload(const LLSD& content);
virtual void uploadComplete(const LLSD& content);
@@ -67,7 +67,7 @@ public:
const LLSD& post_data,
const std::string& file_name,
LLAssetType::EType asset_type);
- virtual void error(U32 statusNum, const std::string& reason);
+ virtual void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content);
virtual void uploadComplete(const LLSD& content);
virtual void uploadFailure(const LLSD& content);
};
@@ -122,7 +122,7 @@ public:
~LLSendTexLayerResponder();
virtual void uploadComplete(const LLSD& content);
- virtual void error(U32 statusNum, const std::string& reason);
+ virtual void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content);
LLBakedUploadData * mBakedUploadData;
};
diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp
index ea0b8f00a4..ea0b8f00a4 100644..100755
--- a/indra/newview/llattachmentsmgr.cpp
+++ b/indra/newview/llattachmentsmgr.cpp
diff --git a/indra/newview/llattachmentsmgr.h b/indra/newview/llattachmentsmgr.h
index 1d8ab74dfd..1d8ab74dfd 100644..100755
--- a/indra/newview/llattachmentsmgr.h
+++ b/indra/newview/llattachmentsmgr.h
diff --git a/indra/newview/llaudiosourcevo.cpp b/indra/newview/llaudiosourcevo.cpp
index b37aba6c15..b37aba6c15 100644..100755
--- a/indra/newview/llaudiosourcevo.cpp
+++ b/indra/newview/llaudiosourcevo.cpp
diff --git a/indra/newview/llaudiosourcevo.h b/indra/newview/llaudiosourcevo.h
index f1d8ef4528..f1d8ef4528 100644..100755
--- a/indra/newview/llaudiosourcevo.h
+++ b/indra/newview/llaudiosourcevo.h
diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp
index 1d72397cbc..1d72397cbc 100644..100755
--- a/indra/newview/llautoreplace.cpp
+++ b/indra/newview/llautoreplace.cpp
diff --git a/indra/newview/llautoreplace.h b/indra/newview/llautoreplace.h
index 9eecc2d981..9eecc2d981 100644..100755
--- a/indra/newview/llautoreplace.h
+++ b/indra/newview/llautoreplace.h
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index 403414558e..403414558e 100644..100755
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 714bde6f37..f34ad23769 100755
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -39,6 +39,8 @@
#include "lluictrlfactory.h"
#include "llagentdata.h"
#include "llfloaterimsession.h"
+#include "llviewertexture.h"
+#include "llavatarappearancedefines.h"
// library includes
#include "llavatarnamecache.h"
diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h
index 4929efb7d0..4929efb7d0 100644..100755
--- a/indra/newview/llavatariconctrl.h
+++ b/indra/newview/llavatariconctrl.h
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 9f02f301a1..9f02f301a1 100644..100755
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 3542577ae3..3542577ae3 100644..100755
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 3e6c817dd6..3e6c817dd6 100644..100755
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index 7ef35a746e..7ef35a746e 100644..100755
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
diff --git a/indra/newview/llavatarpropertiesprocessor.cpp b/indra/newview/llavatarpropertiesprocessor.cpp
index 706bc42ea0..706bc42ea0 100644..100755
--- a/indra/newview/llavatarpropertiesprocessor.cpp
+++ b/indra/newview/llavatarpropertiesprocessor.cpp
diff --git a/indra/newview/llavatarpropertiesprocessor.h b/indra/newview/llavatarpropertiesprocessor.h
index fdb88a41a1..fdb88a41a1 100644..100755
--- a/indra/newview/llavatarpropertiesprocessor.h
+++ b/indra/newview/llavatarpropertiesprocessor.h
diff --git a/indra/newview/llblockedlistitem.cpp b/indra/newview/llblockedlistitem.cpp
index d9afd2b629..d9afd2b629 100644..100755
--- a/indra/newview/llblockedlistitem.cpp
+++ b/indra/newview/llblockedlistitem.cpp
diff --git a/indra/newview/llblockedlistitem.h b/indra/newview/llblockedlistitem.h
index 05409e8a3b..05409e8a3b 100644..100755
--- a/indra/newview/llblockedlistitem.h
+++ b/indra/newview/llblockedlistitem.h
diff --git a/indra/newview/llblocklist.cpp b/indra/newview/llblocklist.cpp
index 066cb71677..066cb71677 100644..100755
--- a/indra/newview/llblocklist.cpp
+++ b/indra/newview/llblocklist.cpp
diff --git a/indra/newview/llblocklist.h b/indra/newview/llblocklist.h
index 1a215710f4..1a215710f4 100644..100755
--- a/indra/newview/llblocklist.h
+++ b/indra/newview/llblocklist.h
diff --git a/indra/newview/llbox.cpp b/indra/newview/llbox.cpp
index faf82695fe..faf82695fe 100644..100755
--- a/indra/newview/llbox.cpp
+++ b/indra/newview/llbox.cpp
diff --git a/indra/newview/llbox.h b/indra/newview/llbox.h
index ff641ad7cf..ff641ad7cf 100644..100755
--- a/indra/newview/llbox.h
+++ b/indra/newview/llbox.h
diff --git a/indra/newview/llbreadcrumbview.cpp b/indra/newview/llbreadcrumbview.cpp
index 92310452dd..92310452dd 100644..100755
--- a/indra/newview/llbreadcrumbview.cpp
+++ b/indra/newview/llbreadcrumbview.cpp
diff --git a/indra/newview/llbreadcrumbview.h b/indra/newview/llbreadcrumbview.h
index f1b53ab526..f1b53ab526 100644..100755
--- a/indra/newview/llbreadcrumbview.h
+++ b/indra/newview/llbreadcrumbview.h
diff --git a/indra/newview/llbreastmotion.cpp b/indra/newview/llbreastmotion.cpp
index 9a8cd5ceae..9a8cd5ceae 100644..100755
--- a/indra/newview/llbreastmotion.cpp
+++ b/indra/newview/llbreastmotion.cpp
diff --git a/indra/newview/llbreastmotion.h b/indra/newview/llbreastmotion.h
index aa0fdf9f8b..aa0fdf9f8b 100644..100755
--- a/indra/newview/llbreastmotion.h
+++ b/indra/newview/llbreastmotion.h
diff --git a/indra/newview/llbrowsernotification.cpp b/indra/newview/llbrowsernotification.cpp
index 19747757db..19747757db 100644..100755
--- a/indra/newview/llbrowsernotification.cpp
+++ b/indra/newview/llbrowsernotification.cpp
diff --git a/indra/newview/llbuycurrencyhtml.cpp b/indra/newview/llbuycurrencyhtml.cpp
index e5a9be0203..459123a5d8 100644..100755
--- a/indra/newview/llbuycurrencyhtml.cpp
+++ b/indra/newview/llbuycurrencyhtml.cpp
@@ -61,6 +61,10 @@ public:
if ( params.size() >= 3 )
{
result_code = params[ 2 ].asInteger();
+ if ( result_code != 0 )
+ {
+ LL_WARNS("LLBuyCurrency") << "Received nonzero result code: " << result_code << LL_ENDL ;
+ }
};
// open the legacy XUI based currency floater
diff --git a/indra/newview/llbuycurrencyhtml.h b/indra/newview/llbuycurrencyhtml.h
index 8d8857ffe3..8d8857ffe3 100644..100755
--- a/indra/newview/llbuycurrencyhtml.h
+++ b/indra/newview/llbuycurrencyhtml.h
diff --git a/indra/newview/llcallbacklist.cpp b/indra/newview/llcallbacklist.cpp
index 357a6582d1..79ec43dfe9 100644..100755
--- a/indra/newview/llcallbacklist.cpp
+++ b/indra/newview/llcallbacklist.cpp
@@ -27,6 +27,7 @@
#include "llviewerprecompiledheaders.h"
#include "llcallbacklist.h"
+#include "lleventtimer.h"
// Library includes
#include "llerror.h"
@@ -180,6 +181,54 @@ void doOnIdleRepeating(bool_func_t callable)
gIdleCallbacks.addFunction(&OnIdleCallbackRepeating::onIdle,cb_functor);
}
+class NullaryFuncEventTimer: public LLEventTimer
+{
+public:
+ NullaryFuncEventTimer(nullary_func_t callable, F32 seconds):
+ LLEventTimer(seconds),
+ mCallable(callable)
+ {
+ }
+
+private:
+ BOOL tick()
+ {
+ mCallable();
+ return TRUE;
+ }
+
+ nullary_func_t mCallable;
+};
+
+// Call a given callable once after specified interval.
+void doAfterInterval(nullary_func_t callable, F32 seconds)
+{
+ new NullaryFuncEventTimer(callable, seconds);
+}
+
+class BoolFuncEventTimer: public LLEventTimer
+{
+public:
+ BoolFuncEventTimer(bool_func_t callable, F32 seconds):
+ LLEventTimer(seconds),
+ mCallable(callable)
+ {
+ }
+private:
+ BOOL tick()
+ {
+ return mCallable();
+ }
+
+ bool_func_t mCallable;
+};
+
+// Call a given callable every specified number of seconds, until it returns true.
+void doPeriodically(bool_func_t callable, F32 seconds)
+{
+ new BoolFuncEventTimer(callable, seconds);
+}
+
#ifdef _DEBUG
void test1(void *data)
diff --git a/indra/newview/llcallbacklist.h b/indra/newview/llcallbacklist.h
index 97f3bfd9ee..0516c9cdb4 100644..100755
--- a/indra/newview/llcallbacklist.h
+++ b/indra/newview/llcallbacklist.h
@@ -61,6 +61,12 @@ void doOnIdleOneTime(nullary_func_t callable);
// Repeatedly call a callable in idle loop until it returns true.
void doOnIdleRepeating(bool_func_t callable);
+// Call a given callable once after specified interval.
+void doAfterInterval(nullary_func_t callable, F32 seconds);
+
+// Call a given callable every specified number of seconds, until it returns true.
+void doPeriodically(bool_func_t callable, F32 seconds);
+
extern LLCallbackList gIdleCallbacks;
#endif
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index 30306b230f..14583e402d 100644..100755
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -184,7 +184,8 @@ LLVector3d LLAvatarTracker::getGlobalPos()
global_pos = object->getPositionGlobal();
// HACK - for making the tracker point above the avatar's head
// rather than its groin
- global_pos.mdV[VZ] += 0.7f * ((LLVOAvatar *)object)->mBodySize.mV[VZ];
+ LLVOAvatar* av = (LLVOAvatar*)object;
+ global_pos.mdV[VZ] += 0.7f * (av->mBodySize.mV[VZ] + av->mAvatarOffset.mV[VZ]);
mTrackingData->mGlobalPositionEstimate = global_pos;
}
diff --git a/indra/newview/llcallingcard.h b/indra/newview/llcallingcard.h
index 8803cce59d..8803cce59d 100644..100755
--- a/indra/newview/llcallingcard.h
+++ b/indra/newview/llcallingcard.h
diff --git a/indra/newview/llcapabilitylistener.cpp b/indra/newview/llcapabilitylistener.cpp
index ef9b910ae5..ef9b910ae5 100644..100755
--- a/indra/newview/llcapabilitylistener.cpp
+++ b/indra/newview/llcapabilitylistener.cpp
diff --git a/indra/newview/llcapabilitylistener.h b/indra/newview/llcapabilitylistener.h
index e7535013e7..e7535013e7 100644..100755
--- a/indra/newview/llcapabilitylistener.h
+++ b/indra/newview/llcapabilitylistener.h
diff --git a/indra/newview/llcapabilityprovider.h b/indra/newview/llcapabilityprovider.h
index 9d91245597..9d91245597 100644..100755
--- a/indra/newview/llcapabilityprovider.h
+++ b/indra/newview/llcapabilityprovider.h
diff --git a/indra/newview/llcaphttpsender.cpp b/indra/newview/llcaphttpsender.cpp
index 16bb48da93..16bb48da93 100644..100755
--- a/indra/newview/llcaphttpsender.cpp
+++ b/indra/newview/llcaphttpsender.cpp
diff --git a/indra/newview/llcaphttpsender.h b/indra/newview/llcaphttpsender.h
index e1f4c813f6..e1f4c813f6 100644..100755
--- a/indra/newview/llcaphttpsender.h
+++ b/indra/newview/llcaphttpsender.h
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 43757d0174..43757d0174 100644..100755
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h
index a5de8a5327..a5de8a5327 100644..100755
--- a/indra/newview/llchannelmanager.h
+++ b/indra/newview/llchannelmanager.h
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 7d0331757b..7d0331757b 100644..100755
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
diff --git a/indra/newview/llchatbar.h b/indra/newview/llchatbar.h
index 26ef5f1535..26ef5f1535 100644..100755
--- a/indra/newview/llchatbar.h
+++ b/indra/newview/llchatbar.h
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 53926c1fef..0f138873ac 100644..100755
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -408,16 +408,7 @@ public:
S32 user_name_width = user_name_rect.getWidth();
S32 time_box_width = time_box->getRect().getWidth();
- if (time_box->getVisible() && user_name_width <= mMinUserNameWidth)
- {
- time_box->setVisible(FALSE);
-
- user_name_rect.mRight += time_box_width;
- user_name->reshape(user_name_rect.getWidth(), user_name_rect.getHeight());
- user_name->setRect(user_name_rect);
- }
-
- if (!time_box->getVisible() && user_name_width > mMinUserNameWidth + time_box_width)
+ if (!time_box->getVisible() && user_name_width > mMinUserNameWidth)
{
user_name_rect.mRight -= time_box_width;
user_name->reshape(user_name_rect.getWidth(), user_name_rect.getHeight());
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index bb6d4fb59c..bb6d4fb59c 100644..100755
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index a1a9463d43..a1a9463d43 100644..100755
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
diff --git a/indra/newview/llchatitemscontainerctrl.h b/indra/newview/llchatitemscontainerctrl.h
index 54b6499d52..54b6499d52 100644..100755
--- a/indra/newview/llchatitemscontainerctrl.h
+++ b/indra/newview/llchatitemscontainerctrl.h
diff --git a/indra/newview/llchatmsgbox.cpp b/indra/newview/llchatmsgbox.cpp
index aa6c9c094c..aa6c9c094c 100644..100755
--- a/indra/newview/llchatmsgbox.cpp
+++ b/indra/newview/llchatmsgbox.cpp
diff --git a/indra/newview/llchatmsgbox.h b/indra/newview/llchatmsgbox.h
index 7e008dba46..7e008dba46 100644..100755
--- a/indra/newview/llchatmsgbox.h
+++ b/indra/newview/llchatmsgbox.h
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index b221daf936..88884042d4 100644..100755
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -174,6 +174,7 @@ void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data)
if("close all" == action)
{
LLNotificationWellWindow::getInstance()->closeAll();
+ LLIMWellWindow::getInstance()->closeAll();
}
}
@@ -429,14 +430,12 @@ void LLChicletPanel::onMessageCountChanged(const LLSD& data)
{
// *TODO : we either suppress this method or return a value. Right now, it servers no purpose.
/*
- LLUUID session_id = data["session_id"].asUUID();
- S32 unread = data["participant_unread"].asInteger();
- LLFloaterIMSession* im_floater = LLFloaterIMSession::findInstance(session_id);
- if (im_floater && im_floater->getVisible() && im_floater->hasFocus())
- {
- unread = 0;
- }
+ //LLFloaterIMSession* im_floater = LLFloaterIMSession::findInstance(session_id);
+ //if (im_floater && im_floater->getVisible() && im_floater->hasFocus())
+ //{
+ // unread = 0;
+ //}
*/
}
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index efaf03384a..efaf03384a 100644..100755
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp
index a51c844775..a51c844775 100644..100755
--- a/indra/newview/llchicletbar.cpp
+++ b/indra/newview/llchicletbar.cpp
diff --git a/indra/newview/llchicletbar.h b/indra/newview/llchicletbar.h
index 956c82cb77..956c82cb77 100644..100755
--- a/indra/newview/llchicletbar.h
+++ b/indra/newview/llchicletbar.h
diff --git a/indra/newview/llclassifiedinfo.cpp b/indra/newview/llclassifiedinfo.cpp
index 800aff149a..800aff149a 100644..100755
--- a/indra/newview/llclassifiedinfo.cpp
+++ b/indra/newview/llclassifiedinfo.cpp
diff --git a/indra/newview/llclassifiedinfo.h b/indra/newview/llclassifiedinfo.h
index 3ff793b168..3ff793b168 100644..100755
--- a/indra/newview/llclassifiedinfo.h
+++ b/indra/newview/llclassifiedinfo.h
diff --git a/indra/newview/llclassifiedstatsresponder.cpp b/indra/newview/llclassifiedstatsresponder.cpp
index b4da31895f..e3cd83e174 100644..100755
--- a/indra/newview/llclassifiedstatsresponder.cpp
+++ b/indra/newview/llclassifiedstatsresponder.cpp
@@ -62,8 +62,7 @@ void LLClassifiedStatsResponder::result(const LLSD& content)
}
/*virtual*/
-void LLClassifiedStatsResponder::error(U32 status, const std::string& reason)
+void LLClassifiedStatsResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llinfos << "LLClassifiedStatsResponder::error("
- << status << ": " << reason << ")" << llendl;
+ llinfos << "LLClassifiedStatsResponder::error [status:" << status << "]: " << content << llendl;
}
diff --git a/indra/newview/llclassifiedstatsresponder.h b/indra/newview/llclassifiedstatsresponder.h
index 3db1868cb2..06dcb62fd0 100644..100755
--- a/indra/newview/llclassifiedstatsresponder.h
+++ b/indra/newview/llclassifiedstatsresponder.h
@@ -39,7 +39,7 @@ public:
virtual void result(const LLSD& content);
//If we get back an error (not found, etc...), handle it here
- virtual void error(U32 status, const std::string& reason);
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
protected:
LLUUID mClassifiedID;
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index e9c7a3fa03..e86d6930e8 100644..100755
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -139,8 +139,7 @@ protected:
{
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
- functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
- registrar.add("Attachment.Detach", boost::bind(handleMultiple, take_off, mUUIDs));
+ registrar.add("Attachment.Detach", boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
return createFromFile("menu_cof_attachment.xml");
}
@@ -173,9 +172,8 @@ protected:
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
LLUUID selected_id = mUUIDs.back();
- functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
- registrar.add("Clothing.TakeOff", boost::bind(handleMultiple, take_off, mUUIDs));
+ registrar.add("Clothing.TakeOff", boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
registrar.add("Clothing.Replace", boost::bind(replaceWearable, selected_id));
registrar.add("Clothing.Edit", boost::bind(LLAgentWearables::editWearable, selected_id));
registrar.add("Clothing.Create", boost::bind(&CofClothingContextMenu::createNew, this, selected_id));
diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h
index 9957d6a64e..9957d6a64e 100644..100755
--- a/indra/newview/llcofwearables.h
+++ b/indra/newview/llcofwearables.h
diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp
index 5b942f283a..f1f7da5fd1 100644..100755
--- a/indra/newview/llcolorswatch.cpp
+++ b/indra/newview/llcolorswatch.cpp
@@ -241,8 +241,8 @@ void LLColorSwatchCtrl::draw()
{
if (!mFallbackImageName.empty())
{
- LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName, TRUE,
- LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName, FTT_LOCAL_FILE, TRUE,
+ LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
if( fallback_image->getComponents() == 4 )
{
gl_rect_2d_checkerboard( interior );
diff --git a/indra/newview/llcolorswatch.h b/indra/newview/llcolorswatch.h
index 5bdd1712d2..5bdd1712d2 100644..100755
--- a/indra/newview/llcolorswatch.h
+++ b/indra/newview/llcolorswatch.h
diff --git a/indra/newview/llcommanddispatcherlistener.cpp b/indra/newview/llcommanddispatcherlistener.cpp
index 586f45fd8f..586f45fd8f 100644..100755
--- a/indra/newview/llcommanddispatcherlistener.cpp
+++ b/indra/newview/llcommanddispatcherlistener.cpp
diff --git a/indra/newview/llcommanddispatcherlistener.h b/indra/newview/llcommanddispatcherlistener.h
index 024cc1a18d..024cc1a18d 100644..100755
--- a/indra/newview/llcommanddispatcherlistener.h
+++ b/indra/newview/llcommanddispatcherlistener.h
diff --git a/indra/newview/llcommandhandler.h b/indra/newview/llcommandhandler.h
index 1e0895565a..1e0895565a 100644..100755
--- a/indra/newview/llcommandhandler.h
+++ b/indra/newview/llcommandhandler.h
diff --git a/indra/newview/llcommandlineparser.cpp b/indra/newview/llcommandlineparser.cpp
index 17d403bbe1..17d403bbe1 100644..100755
--- a/indra/newview/llcommandlineparser.cpp
+++ b/indra/newview/llcommandlineparser.cpp
diff --git a/indra/newview/llcommandlineparser.h b/indra/newview/llcommandlineparser.h
index 44f2a26843..44f2a26843 100644..100755
--- a/indra/newview/llcommandlineparser.h
+++ b/indra/newview/llcommandlineparser.h
diff --git a/indra/newview/llcommunicationchannel.cpp b/indra/newview/llcommunicationchannel.cpp
index 0821510645..0821510645 100644..100755
--- a/indra/newview/llcommunicationchannel.cpp
+++ b/indra/newview/llcommunicationchannel.cpp
diff --git a/indra/newview/llcommunicationchannel.h b/indra/newview/llcommunicationchannel.h
index 0d8f7f4387..0d8f7f4387 100644..100755
--- a/indra/newview/llcommunicationchannel.h
+++ b/indra/newview/llcommunicationchannel.h
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 4f5f9e22b6..4588424474 100644..100755
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -161,18 +161,6 @@ BOOL LLFloaterScriptQueue::start()
{
std::string buffer;
- LLSelectMgr *mgr = LLSelectMgr::getInstance();
- LLObjectSelectionHandle selectHandle = mgr->getSelection();
- U32 n_objects = 0;
- if (gSavedSettings.getBOOL("EditLinkedParts"))
- {
- n_objects = selectHandle->getObjectCount();
- }
- else
- {
- n_objects = selectHandle->getRootObjectCount();
- }
-
LLStringUtil::format_map_t args;
args["[START]"] = mStartString;
args["[COUNT]"] = llformat ("%d", mObjectIDs.count());
diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h
index 4ddab29d00..4ddab29d00 100644..100755
--- a/indra/newview/llcompilequeue.h
+++ b/indra/newview/llcompilequeue.h
diff --git a/indra/newview/llconfirmationmanager.cpp b/indra/newview/llconfirmationmanager.cpp
index 8ea59fdd83..8ea59fdd83 100644..100755
--- a/indra/newview/llconfirmationmanager.cpp
+++ b/indra/newview/llconfirmationmanager.cpp
diff --git a/indra/newview/llconfirmationmanager.h b/indra/newview/llconfirmationmanager.h
index d791a8b41a..d791a8b41a 100644..100755
--- a/indra/newview/llconfirmationmanager.h
+++ b/indra/newview/llconfirmationmanager.h
diff --git a/indra/newview/llconversationlog.cpp b/indra/newview/llconversationlog.cpp
index 7883e4cb89..7883e4cb89 100644..100755
--- a/indra/newview/llconversationlog.cpp
+++ b/indra/newview/llconversationlog.cpp
diff --git a/indra/newview/llconversationlog.h b/indra/newview/llconversationlog.h
index 265b1f0ef0..265b1f0ef0 100644..100755
--- a/indra/newview/llconversationlog.h
+++ b/indra/newview/llconversationlog.h
diff --git a/indra/newview/llconversationloglist.cpp b/indra/newview/llconversationloglist.cpp
index 44212298cf..44212298cf 100644..100755
--- a/indra/newview/llconversationloglist.cpp
+++ b/indra/newview/llconversationloglist.cpp
diff --git a/indra/newview/llconversationloglist.h b/indra/newview/llconversationloglist.h
index 62ec57e09e..62ec57e09e 100644..100755
--- a/indra/newview/llconversationloglist.h
+++ b/indra/newview/llconversationloglist.h
diff --git a/indra/newview/llconversationloglistitem.cpp b/indra/newview/llconversationloglistitem.cpp
index 4e984d603b..4e984d603b 100644..100755
--- a/indra/newview/llconversationloglistitem.cpp
+++ b/indra/newview/llconversationloglistitem.cpp
diff --git a/indra/newview/llconversationloglistitem.h b/indra/newview/llconversationloglistitem.h
index ee28456bbb..ee28456bbb 100644..100755
--- a/indra/newview/llconversationloglistitem.h
+++ b/indra/newview/llconversationloglistitem.h
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index b0aaa21ec9..b0aaa21ec9 100644..100755
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 956abcd586..b6c53e5e30 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -120,7 +120,7 @@ void LLConversationViewSession::setFlashState(bool flash_state)
void LLConversationViewSession::startFlashing()
{
- if (mFlashStateOn && !mFlashStarted)
+ if (isInVisibleChain() && mFlashStateOn && !mFlashStarted)
{
mFlashStarted = true;
mFlashTimer->startFlashing();
diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp
index b4a1457f47..b4a1457f47 100644..100755
--- a/indra/newview/llcurrencyuimanager.cpp
+++ b/indra/newview/llcurrencyuimanager.cpp
diff --git a/indra/newview/llcurrencyuimanager.h b/indra/newview/llcurrencyuimanager.h
index 3f37db8db1..3f37db8db1 100644..100755
--- a/indra/newview/llcurrencyuimanager.h
+++ b/indra/newview/llcurrencyuimanager.h
diff --git a/indra/newview/llcylinder.cpp b/indra/newview/llcylinder.cpp
index f353851a25..f353851a25 100644..100755
--- a/indra/newview/llcylinder.cpp
+++ b/indra/newview/llcylinder.cpp
diff --git a/indra/newview/llcylinder.h b/indra/newview/llcylinder.h
index 4369f06659..4369f06659 100644..100755
--- a/indra/newview/llcylinder.h
+++ b/indra/newview/llcylinder.h
diff --git a/indra/newview/lldateutil.cpp b/indra/newview/lldateutil.cpp
index c7fc45f61e..c7fc45f61e 100644..100755
--- a/indra/newview/lldateutil.cpp
+++ b/indra/newview/lldateutil.cpp
diff --git a/indra/newview/lldateutil.h b/indra/newview/lldateutil.h
index f027d360f7..f027d360f7 100644..100755
--- a/indra/newview/lldateutil.h
+++ b/indra/newview/lldateutil.h
diff --git a/indra/newview/lldaycyclemanager.cpp b/indra/newview/lldaycyclemanager.cpp
index 8af2f4ea33..8af2f4ea33 100644..100755
--- a/indra/newview/lldaycyclemanager.cpp
+++ b/indra/newview/lldaycyclemanager.cpp
diff --git a/indra/newview/lldaycyclemanager.h b/indra/newview/lldaycyclemanager.h
index 3d2144960d..3d2144960d 100644..100755
--- a/indra/newview/lldaycyclemanager.h
+++ b/indra/newview/lldaycyclemanager.h
diff --git a/indra/newview/lldebugmessagebox.cpp b/indra/newview/lldebugmessagebox.cpp
index 9ad812ab1e..9ad812ab1e 100644..100755
--- a/indra/newview/lldebugmessagebox.cpp
+++ b/indra/newview/lldebugmessagebox.cpp
diff --git a/indra/newview/lldebugmessagebox.h b/indra/newview/lldebugmessagebox.h
index 211af9e074..211af9e074 100644..100755
--- a/indra/newview/lldebugmessagebox.h
+++ b/indra/newview/lldebugmessagebox.h
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index aeecf054b8..aeecf054b8 100644..100755
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
diff --git a/indra/newview/lldebugview.h b/indra/newview/lldebugview.h
index 5aec77ad62..5aec77ad62 100644..100755
--- a/indra/newview/lldebugview.h
+++ b/indra/newview/lldebugview.h
diff --git a/indra/newview/lldeferredsounds.cpp b/indra/newview/lldeferredsounds.cpp
index 9416e7cd29..9416e7cd29 100644..100755
--- a/indra/newview/lldeferredsounds.cpp
+++ b/indra/newview/lldeferredsounds.cpp
diff --git a/indra/newview/lldeferredsounds.h b/indra/newview/lldeferredsounds.h
index bf1eb62957..bf1eb62957 100644..100755
--- a/indra/newview/lldeferredsounds.h
+++ b/indra/newview/lldeferredsounds.h
diff --git a/indra/newview/lldelayedgestureerror.cpp b/indra/newview/lldelayedgestureerror.cpp
index ef1b644ad4..ef1b644ad4 100644..100755
--- a/indra/newview/lldelayedgestureerror.cpp
+++ b/indra/newview/lldelayedgestureerror.cpp
diff --git a/indra/newview/lldelayedgestureerror.h b/indra/newview/lldelayedgestureerror.h
index 7ecadb4e7d..7ecadb4e7d 100644..100755
--- a/indra/newview/lldelayedgestureerror.h
+++ b/indra/newview/lldelayedgestureerror.h
diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp
index 1e03582a29..d7d9f82910 100644..100755
--- a/indra/newview/lldirpicker.cpp
+++ b/indra/newview/lldirpicker.cpp
@@ -327,6 +327,8 @@ BOOL LLDirPicker::getDir(std::string* filename)
return FALSE;
}
+#if !LL_MESA_HEADLESS
+
if (mFilePicker)
{
GtkWindow* picker = mFilePicker->buildFilePicker(false, true,
@@ -340,6 +342,8 @@ BOOL LLDirPicker::getDir(std::string* filename)
return (!mFilePicker->getFirstFile().empty());
}
}
+#endif // !LL_MESA_HEADLESS
+
return FALSE;
}
diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h
index 682f9d6476..682f9d6476 100644..100755
--- a/indra/newview/lldirpicker.h
+++ b/indra/newview/lldirpicker.h
diff --git a/indra/newview/lldndbutton.cpp b/indra/newview/lldndbutton.cpp
index 7c9dda6b1d..7c9dda6b1d 100644..100755
--- a/indra/newview/lldndbutton.cpp
+++ b/indra/newview/lldndbutton.cpp
diff --git a/indra/newview/lldndbutton.h b/indra/newview/lldndbutton.h
index 53ea2f5ea7..53ea2f5ea7 100644..100755
--- a/indra/newview/lldndbutton.h
+++ b/indra/newview/lldndbutton.h
diff --git a/indra/newview/lldonotdisturbnotificationstorage.cpp b/indra/newview/lldonotdisturbnotificationstorage.cpp
index be20adeb8a..82affcf068 100644..100755
--- a/indra/newview/lldonotdisturbnotificationstorage.cpp
+++ b/indra/newview/lldonotdisturbnotificationstorage.cpp
@@ -132,6 +132,8 @@ void LLDoNotDisturbNotificationStorage::loadNotifications()
{
LLFastTimer _(FTM_LOAD_DND_NOTIFICATIONS);
+ LL_INFOS("LLDoNotDisturbNotificationStorage") << "start loading notifications" << LL_ENDL;
+
LLSD input;
if (!readNotifications(input) ||input.isUndefined())
{
@@ -225,6 +227,8 @@ void LLDoNotDisturbNotificationStorage::loadNotifications()
//writes out empty .xml file (since LLCommunicationChannel::mHistory is empty)
saveNotifications();
+
+ LL_INFOS("LLDoNotDisturbNotificationStorage") << "finished loading notifications" << LL_ENDL;
}
void LLDoNotDisturbNotificationStorage::updateNotifications()
diff --git a/indra/newview/lldonotdisturbnotificationstorage.h b/indra/newview/lldonotdisturbnotificationstorage.h
index 6e68b0d1be..6e68b0d1be 100644..100755
--- a/indra/newview/lldonotdisturbnotificationstorage.h
+++ b/indra/newview/lldonotdisturbnotificationstorage.h
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 4b0d3b361d..47306d3a6a 100644..100755
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -441,7 +441,7 @@ void LLDrawable::makeActive()
}
llassert(isAvatar() || isRoot() || mParent->isActive());
- }
+}
void LLDrawable::makeStatic(BOOL warning_enabled)
@@ -511,7 +511,6 @@ F32 LLDrawable::updateXform(BOOL undamped)
//scaling
LLVector3 target_scale = mVObjp->getScale();
LLVector3 old_scale = mCurrentScale;
- LLVector3 dest_scale = target_scale;
// Damping
F32 dist_squared = 0.f;
@@ -1237,7 +1236,6 @@ LLCamera LLSpatialBridge::transformCamera(LLCamera& camera)
LLCamera ret = camera;
LLXformMatrix* mat = mDrawable->getXform();
LLVector3 center = LLVector3(0,0,0) * mat->getWorldMatrix();
- LLQuaternion rotation = LLQuaternion(mat->getWorldMatrix());
LLVector3 delta = ret.getOrigin() - center;
LLQuaternion rot = ~mat->getRotation();
diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h
index 4608d16fec..4420a34fae 100644..100755
--- a/indra/newview/lldrawable.h
+++ b/indra/newview/lldrawable.h
@@ -284,7 +284,6 @@ public:
NEARBY_LIGHT = 0x00200000, // In gPipeline.mNearbyLightSet
BUILT = 0x00400000,
FORCE_INVISIBLE = 0x00800000, // stay invis until CLEAR_INVISIBLE is set (set of orphaned)
- CLEAR_INVISIBLE = 0x01000000, // clear FORCE_INVISIBLE next draw frame
REBUILD_SHADOW = 0x02000000,
HAS_ALPHA = 0x04000000,
RIGGED = 0x08000000,
diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp
index 94dd927d26..94dd927d26 100644..100755
--- a/indra/newview/lldrawpool.cpp
+++ b/indra/newview/lldrawpool.cpp
diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h
index ab9bb9e611..ab9bb9e611 100644..100755
--- a/indra/newview/lldrawpool.h
+++ b/indra/newview/lldrawpool.h
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index 313b310e1e..313b310e1e 100644..100755
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
diff --git a/indra/newview/lldrawpoolalpha.h b/indra/newview/lldrawpoolalpha.h
index a4245e561d..a4245e561d 100644..100755
--- a/indra/newview/lldrawpoolalpha.h
+++ b/indra/newview/lldrawpoolalpha.h
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 294cecc703..294cecc703 100644..100755
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h
index 69e3068858..69e3068858 100644..100755
--- a/indra/newview/lldrawpoolavatar.h
+++ b/indra/newview/lldrawpoolavatar.h
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 1b0b11298c..e8d43c8631 100644..100755
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -153,7 +153,7 @@ void LLStandardBumpmap::addstandard()
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mLabel = label;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage =
LLViewerTextureManager::getFetchedTexture(LLUUID(bump_image_id));
- gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
+ gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLGLTexture::BOOST_BUMP) ;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL );
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->forceToSaveRawImage(0) ;
LLStandardBumpmap::sStandardBumpmapCount++;
@@ -1075,7 +1075,7 @@ LLViewerTexture* LLBumpImageList::getBrightnessDarknessImage(LLViewerFetchedText
src_image->getHeight() != bump->getHeight())// ||
//(LLPipeline::sRenderDeferred && bump->getComponents() != 4))
{
- src_image->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
+ src_image->setBoostLevel(LLGLTexture::BOOST_BUMP) ;
src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()), NULL );
src_image->forceToSaveRawImage(0) ;
}
diff --git a/indra/newview/lldrawpoolbump.h b/indra/newview/lldrawpoolbump.h
index 476b1d41b7..476b1d41b7 100644..100755
--- a/indra/newview/lldrawpoolbump.h
+++ b/indra/newview/lldrawpoolbump.h
diff --git a/indra/newview/lldrawpoolground.cpp b/indra/newview/lldrawpoolground.cpp
index 59c3fbf7a1..59c3fbf7a1 100644..100755
--- a/indra/newview/lldrawpoolground.cpp
+++ b/indra/newview/lldrawpoolground.cpp
diff --git a/indra/newview/lldrawpoolground.h b/indra/newview/lldrawpoolground.h
index a4f8a3fcf5..a4f8a3fcf5 100644..100755
--- a/indra/newview/lldrawpoolground.h
+++ b/indra/newview/lldrawpoolground.h
diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp
index 6e0ea78af2..6e0ea78af2 100644..100755
--- a/indra/newview/lldrawpoolsimple.cpp
+++ b/indra/newview/lldrawpoolsimple.cpp
diff --git a/indra/newview/lldrawpoolsimple.h b/indra/newview/lldrawpoolsimple.h
index bd62bc7502..bd62bc7502 100644..100755
--- a/indra/newview/lldrawpoolsimple.h
+++ b/indra/newview/lldrawpoolsimple.h
diff --git a/indra/newview/lldrawpoolsky.cpp b/indra/newview/lldrawpoolsky.cpp
index 7f7d9f65c6..7f7d9f65c6 100644..100755
--- a/indra/newview/lldrawpoolsky.cpp
+++ b/indra/newview/lldrawpoolsky.cpp
diff --git a/indra/newview/lldrawpoolsky.h b/indra/newview/lldrawpoolsky.h
index 098bd2134a..098bd2134a 100644..100755
--- a/indra/newview/lldrawpoolsky.h
+++ b/indra/newview/lldrawpoolsky.h
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index 9bc32fddbd..0adb42428d 100644..100755
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -69,7 +69,8 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale");
sDetailMode = gSavedSettings.getS32("RenderTerrainDetail");
mAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient.tga",
- TRUE, LLViewerTexture::BOOST_UI,
+ FTT_LOCAL_FILE,
+ TRUE, LLGLTexture::BOOST_UI,
LLViewerTexture::FETCHED_TEXTURE,
format, int_format,
LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb"));
@@ -78,7 +79,8 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
mAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
m2DAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient_2d.j2c",
- TRUE, LLViewerTexture::BOOST_UI,
+ FTT_LOCAL_FILE,
+ TRUE, LLGLTexture::BOOST_UI,
LLViewerTexture::FETCHED_TEXTURE,
format, int_format,
LLUUID("38b86f85-2575-52a9-a531-23108d8da837"));
@@ -86,7 +88,7 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
//gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
m2DAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
- mTexturep->setBoostLevel(LLViewerTexture::BOOST_TERRAIN);
+ mTexturep->setBoostLevel(LLGLTexture::BOOST_TERRAIN);
//gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
}
@@ -170,7 +172,7 @@ void LLDrawPoolTerrain::render(S32 pass)
LLVLComposition *compp = regionp->getComposition();
for (S32 i = 0; i < 4; i++)
{
- compp->mDetailTextures[i]->setBoostLevel(LLViewerTexture::BOOST_TERRAIN);
+ compp->mDetailTextures[i]->setBoostLevel(LLGLTexture::BOOST_TERRAIN);
compp->mDetailTextures[i]->addTextureStats(1024.f*1024.f); // assume large pixel area
}
diff --git a/indra/newview/lldrawpoolterrain.h b/indra/newview/lldrawpoolterrain.h
index 2163d087e1..2163d087e1 100644..100755
--- a/indra/newview/lldrawpoolterrain.h
+++ b/indra/newview/lldrawpoolterrain.h
diff --git a/indra/newview/lldrawpooltree.cpp b/indra/newview/lldrawpooltree.cpp
index fedbd782dc..fedbd782dc 100644..100755
--- a/indra/newview/lldrawpooltree.cpp
+++ b/indra/newview/lldrawpooltree.cpp
diff --git a/indra/newview/lldrawpooltree.h b/indra/newview/lldrawpooltree.h
index e7e25453cf..e7e25453cf 100644..100755
--- a/indra/newview/lldrawpooltree.h
+++ b/indra/newview/lldrawpooltree.h
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index 4f6eaa5a5b..5ddc15df42 100644..100755
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -66,11 +66,11 @@ LLVector3 LLDrawPoolWater::sLightDir;
LLDrawPoolWater::LLDrawPoolWater() :
LLFacePool(POOL_WATER)
{
- mHBTex[0] = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mHBTex[0] = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
gGL.getTexUnit(0)->bind(mHBTex[0]) ;
mHBTex[0]->setAddressMode(LLTexUnit::TAM_CLAMP);
- mHBTex[1] = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mHBTex[1] = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
gGL.getTexUnit(0)->bind(mHBTex[1]);
mHBTex[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
diff --git a/indra/newview/lldrawpoolwater.h b/indra/newview/lldrawpoolwater.h
index aeeba179d6..aeeba179d6 100644..100755
--- a/indra/newview/lldrawpoolwater.h
+++ b/indra/newview/lldrawpoolwater.h
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index b5faff7968..b5faff7968 100644..100755
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
diff --git a/indra/newview/lldrawpoolwlsky.h b/indra/newview/lldrawpoolwlsky.h
index cd15c991ee..cd15c991ee 100644..100755
--- a/indra/newview/lldrawpoolwlsky.h
+++ b/indra/newview/lldrawpoolwlsky.h
diff --git a/indra/newview/lldriverparam.cpp b/indra/newview/lldriverparam.cpp
deleted file mode 100644
index 885cae1737..0000000000
--- a/indra/newview/lldriverparam.cpp
+++ /dev/null
@@ -1,638 +0,0 @@
-/**
- * @file lldriverparam.cpp
- * @brief A visual parameter that drives (controls) other visual parameters.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "lldriverparam.h"
-
-#include "llfasttimer.h"
-#include "llvoavatar.h"
-#include "llvoavatarself.h"
-#include "llagent.h"
-#include "llwearable.h"
-#include "llagentwearables.h"
-
-//-----------------------------------------------------------------------------
-// LLDriverParamInfo
-//-----------------------------------------------------------------------------
-
-LLDriverParamInfo::LLDriverParamInfo()
-{
-}
-
-BOOL LLDriverParamInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "param" ) && node->getChildByName( "param_driver" ) );
-
- if( !LLViewerVisualParamInfo::parseXml( node ))
- return FALSE;
-
- LLXmlTreeNode* param_driver_node = node->getChildByName( "param_driver" );
- if( !param_driver_node )
- return FALSE;
-
- for (LLXmlTreeNode* child = param_driver_node->getChildByName( "driven" );
- child;
- child = param_driver_node->getNextNamedChild())
- {
- S32 driven_id;
- static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id");
- if( child->getFastAttributeS32( id_string, driven_id ) )
- {
- F32 min1 = mMinWeight;
- F32 max1 = mMaxWeight;
- F32 max2 = max1;
- F32 min2 = max1;
-
- // driven ________ //
- // ^ /| |\ //
- // | / | | \ //
- // | / | | \ //
- // | / | | \ //
- // | / | | \ //
- //-------|----|-------|----|-------> driver //
- // | min1 max1 max2 min2
-
- static LLStdStringHandle min1_string = LLXmlTree::addAttributeString("min1");
- child->getFastAttributeF32( min1_string, min1 ); // optional
- static LLStdStringHandle max1_string = LLXmlTree::addAttributeString("max1");
- child->getFastAttributeF32( max1_string, max1 ); // optional
- static LLStdStringHandle max2_string = LLXmlTree::addAttributeString("max2");
- child->getFastAttributeF32( max2_string, max2 ); // optional
- static LLStdStringHandle min2_string = LLXmlTree::addAttributeString("min2");
- child->getFastAttributeF32( min2_string, min2 ); // optional
-
- // Push these on the front of the deque, so that we can construct
- // them in order later (faster)
- mDrivenInfoList.push_front( LLDrivenEntryInfo( driven_id, min1, max1, max2, min2 ) );
- }
- else
- {
- llerrs << "<driven> Unable to resolve driven parameter: " << driven_id << llendl;
- return FALSE;
- }
- }
- return TRUE;
-}
-
-//virtual
-void LLDriverParamInfo::toStream(std::ostream &out)
-{
- LLViewerVisualParamInfo::toStream(out);
- out << "driver" << "\t";
- out << mDrivenInfoList.size() << "\t";
- for (entry_info_list_t::iterator iter = mDrivenInfoList.begin(); iter != mDrivenInfoList.end(); iter++)
- {
- LLDrivenEntryInfo driven = *iter;
- out << driven.mDrivenID << "\t";
- }
-
- out << std::endl;
-
- if(isAgentAvatarValid())
- {
- for (entry_info_list_t::iterator iter = mDrivenInfoList.begin(); iter != mDrivenInfoList.end(); iter++)
- {
- LLDrivenEntryInfo driven = *iter;
- LLViewerVisualParam *param = (LLViewerVisualParam*)gAgentAvatarp->getVisualParam(driven.mDrivenID);
- if (param)
- {
- param->getInfo()->toStream(out);
- if (param->getWearableType() != mWearableType)
- {
- if(param->getCrossWearable())
- {
- out << "cross-wearable" << "\t";
- }
- else
- {
- out << "ERROR!" << "\t";
- }
- }
- else
- {
- out << "valid" << "\t";
- }
- }
- else
- {
- llwarns << "could not get parameter " << driven.mDrivenID << " from avatar " << gAgentAvatarp.get() << " for driver parameter " << getID() << llendl;
- }
- out << std::endl;
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-// LLDriverParam
-//-----------------------------------------------------------------------------
-
-LLDriverParam::LLDriverParam(LLVOAvatar *avatarp) :
- mCurrentDistortionParam( NULL ),
- mAvatarp(avatarp),
- mWearablep(NULL)
-{
- mDefaultVec.clear();
-}
-
-LLDriverParam::LLDriverParam(LLWearable *wearablep) :
- mCurrentDistortionParam( NULL ),
- mAvatarp(NULL),
- mWearablep(wearablep)
-{
- mDefaultVec.clear();
-}
-
-LLDriverParam::~LLDriverParam()
-{
-}
-
-BOOL LLDriverParam::setInfo(LLDriverParamInfo *info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mInfo = info;
- mID = info->mID;
-
- setWeight(getDefaultWeight(), FALSE );
-
- return TRUE;
-}
-
-void LLDriverParam::setWearable(LLWearable *wearablep)
-{
- if (wearablep)
- {
- mWearablep = wearablep;
- mAvatarp = NULL;
- }
-}
-
-void LLDriverParam::setAvatar(LLVOAvatar *avatarp)
-{
- if (avatarp)
- {
- mWearablep = NULL;
- mAvatarp = avatarp;
- }
-}
-
-/*virtual*/ LLViewerVisualParam* LLDriverParam::cloneParam(LLWearable* wearable) const
-{
- LLDriverParam *new_param;
- if (wearable)
- {
- new_param = new LLDriverParam(wearable);
- }
- else
- {
- if (mWearablep)
- {
- new_param = new LLDriverParam(mWearablep);
- }
- else
- {
- new_param = new LLDriverParam(mAvatarp);
- }
- }
- *new_param = *this;
- return new_param;
-}
-
-#if 0 // obsolete
-BOOL LLDriverParam::parseData(LLXmlTreeNode* node)
-{
- LLDriverParamInfo* info = new LLDriverParamInfo;
-
- info->parseXml(node);
- if (!setInfo(info))
- {
- delete info;
- return FALSE;
- }
- return TRUE;
-}
-#endif
-
-void LLDriverParam::setWeight(F32 weight, BOOL upload_bake)
-{
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- if (mIsAnimating)
- {
- // allow overshoot when animating
- mCurWeight = weight;
- }
- else
- {
- mCurWeight = llclamp(weight, min_weight, max_weight);
- }
-
- // driven ________
- // ^ /| |\ ^
- // | / | | \ |
- // | / | | \ |
- // | / | | \ |
- // | / | | \ |
- //-------|----|-------|----|-------> driver
- // | min1 max1 max2 min2
-
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- LLDrivenEntryInfo* info = driven->mInfo;
-
- F32 driven_weight = 0.f;
- F32 driven_min = driven->mParam->getMinWeight();
- F32 driven_max = driven->mParam->getMaxWeight();
-
- if (mIsAnimating)
- {
- // driven param doesn't interpolate (textures, for example)
- if (!driven->mParam->getAnimating())
- {
- continue;
- }
- if( mCurWeight < info->mMin1 )
- {
- if (info->mMin1 == min_weight)
- {
- if (info->mMin1 == info->mMax1)
- {
- driven_weight = driven_max;
- }
- else
- {
- //up slope extrapolation
- F32 t = (mCurWeight - info->mMin1) / (info->mMax1 - info->mMin1 );
- driven_weight = driven_min + t * (driven_max - driven_min);
- }
- }
- else
- {
- driven_weight = driven_min;
- }
-
- setDrivenWeight(driven,driven_weight,upload_bake);
- continue;
- }
- else
- if ( mCurWeight > info->mMin2 )
- {
- if (info->mMin2 == max_weight)
- {
- if (info->mMin2 == info->mMax2)
- {
- driven_weight = driven_max;
- }
- else
- {
- //down slope extrapolation
- F32 t = (mCurWeight - info->mMax2) / (info->mMin2 - info->mMax2 );
- driven_weight = driven_max + t * (driven_min - driven_max);
- }
- }
- else
- {
- driven_weight = driven_min;
- }
-
- setDrivenWeight(driven,driven_weight,upload_bake);
- continue;
- }
- }
-
- driven_weight = getDrivenWeight(driven, mCurWeight);
- setDrivenWeight(driven,driven_weight,upload_bake);
- }
-}
-
-F32 LLDriverParam::getTotalDistortion()
-{
- F32 sum = 0.f;
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- sum += driven->mParam->getTotalDistortion();
- }
-
- return sum;
-}
-
-const LLVector4a &LLDriverParam::getAvgDistortion()
-{
- // It's not actually correct to take the average of averages, but it good enough here.
- LLVector4a sum;
- sum.clear();
- S32 count = 0;
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- sum.add(driven->mParam->getAvgDistortion());
- count++;
- }
- sum.mul( 1.f/(F32)count);
-
- mDefaultVec = sum;
- return mDefaultVec;
-}
-
-F32 LLDriverParam::getMaxDistortion()
-{
- F32 max = 0.f;
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- F32 param_max = driven->mParam->getMaxDistortion();
- if( param_max > max )
- {
- max = param_max;
- }
- }
-
- return max;
-}
-
-
-LLVector4a LLDriverParam::getVertexDistortion(S32 index, LLPolyMesh *poly_mesh)
-{
- LLVector4a sum;
- sum.clear();
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- sum.add(driven->mParam->getVertexDistortion( index, poly_mesh ));
- }
- return sum;
-}
-
-const LLVector4a* LLDriverParam::getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh)
-{
- mCurrentDistortionParam = NULL;
- const LLVector4a* v = NULL;
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- v = driven->mParam->getFirstDistortion( index, poly_mesh );
- if( v )
- {
- mCurrentDistortionParam = driven->mParam;
- break;
- }
- }
-
- return v;
-};
-
-const LLVector4a* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **poly_mesh)
-{
- llassert( mCurrentDistortionParam );
- if( !mCurrentDistortionParam )
- {
- return NULL;
- }
-
- LLDrivenEntry* driven = NULL;
- entry_list_t::iterator iter;
-
- // Set mDriven iteration to the right point
- for( iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- driven = &(*iter);
- if( driven->mParam == mCurrentDistortionParam )
- {
- break;
- }
- }
-
- llassert(driven);
- if (!driven)
- {
- return NULL; // shouldn't happen, but...
- }
-
- // We're already in the middle of a param's distortions, so get the next one.
- const LLVector4a* v = driven->mParam->getNextDistortion( index, poly_mesh );
- if( (!v) && (iter != mDriven.end()) )
- {
- // This param is finished, so start the next param. It might not have any
- // distortions, though, so we have to loop to find the next param that does.
- for( iter++; iter != mDriven.end(); iter++ )
- {
- driven = &(*iter);
- v = driven->mParam->getFirstDistortion( index, poly_mesh );
- if( v )
- {
- mCurrentDistortionParam = driven->mParam;
- break;
- }
- }
- }
-
- return v;
-};
-
-//-----------------------------------------------------------------------------
-// setAnimationTarget()
-//-----------------------------------------------------------------------------
-void LLDriverParam::setAnimationTarget( F32 target_value, BOOL upload_bake )
-{
- LLVisualParam::setAnimationTarget(target_value, upload_bake);
-
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- F32 driven_weight = getDrivenWeight(driven, mTargetWeight);
-
- // this isn't normally necessary, as driver params handle interpolation of their driven params
- // but texture params need to know to assume their final value at beginning of interpolation
- driven->mParam->setAnimationTarget(driven_weight, upload_bake);
- }
-}
-
-//-----------------------------------------------------------------------------
-// stopAnimating()
-//-----------------------------------------------------------------------------
-void LLDriverParam::stopAnimating(BOOL upload_bake)
-{
- LLVisualParam::stopAnimating(upload_bake);
-
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- driven->mParam->setAnimating(FALSE);
- }
-}
-
-/*virtual*/
-BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params)
-{
- BOOL success = TRUE;
- LLDriverParamInfo::entry_info_list_t::iterator iter;
- for (iter = getInfo()->mDrivenInfoList.begin(); iter != getInfo()->mDrivenInfoList.end(); ++iter)
- {
- LLDrivenEntryInfo *driven_info = &(*iter);
- S32 driven_id = driven_info->mDrivenID;
-
- // check for already existing links. Do not overwrite.
- BOOL found = FALSE;
- for (entry_list_t::iterator driven_iter = mDriven.begin(); driven_iter != mDriven.end() && !found; ++driven_iter)
- {
- if (driven_iter->mInfo->mDrivenID == driven_id)
- {
- found = TRUE;
- }
- }
-
- if (!found)
- {
- LLViewerVisualParam* param = (LLViewerVisualParam*)mapper(driven_id);
- bool push = param && (!only_cross_params || param->getCrossWearable());
- if (push)
- {
- mDriven.push_back(LLDrivenEntry( param, driven_info ));
- }
- else
- {
- success = FALSE;
- }
- }
- }
-
- return success;
-}
-
-void LLDriverParam::resetDrivenParams()
-{
- mDriven.clear();
- mDriven.reserve(getInfo()->mDrivenInfoList.size());
-}
-
-void LLDriverParam::updateCrossDrivenParams(LLWearableType::EType driven_type)
-{
- bool needs_update = (getWearableType()==driven_type);
-
- // if the driver has a driven entry for the passed-in wearable type, we need to refresh the value
- for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
- {
- LLDrivenEntry* driven = &(*iter);
- if (driven && driven->mParam && driven->mParam->getCrossWearable() && driven->mParam->getWearableType() == driven_type)
- {
- needs_update = true;
- }
- }
-
-
- if (needs_update)
- {
- LLWearableType::EType driver_type = (LLWearableType::EType)getWearableType();
-
- // If we've gotten here, we've added a new wearable of type "type"
- // Thus this wearable needs to get updates from the driver wearable.
- // The call to setVisualParamWeight seems redundant, but is necessary
- // as the number of driven wearables has changed since the last update. -Nyx
- LLWearable *wearable = gAgentWearables.getTopWearable(driver_type);
- if (wearable)
- {
- wearable->setVisualParamWeight(mID, wearable->getVisualParamWeight(mID), false);
- }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// getDrivenWeight()
-//-----------------------------------------------------------------------------
-F32 LLDriverParam::getDrivenWeight(const LLDrivenEntry* driven, F32 input_weight)
-{
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- const LLDrivenEntryInfo* info = driven->mInfo;
-
- F32 driven_weight = 0.f;
- F32 driven_min = driven->mParam->getMinWeight();
- F32 driven_max = driven->mParam->getMaxWeight();
-
- if( input_weight <= info->mMin1 )
- {
- if( info->mMin1 == info->mMax1 &&
- info->mMin1 <= min_weight)
- {
- driven_weight = driven_max;
- }
- else
- {
- driven_weight = driven_min;
- }
- }
- else
- if( input_weight <= info->mMax1 )
- {
- F32 t = (input_weight - info->mMin1) / (info->mMax1 - info->mMin1 );
- driven_weight = driven_min + t * (driven_max - driven_min);
- }
- else
- if( input_weight <= info->mMax2 )
- {
- driven_weight = driven_max;
- }
- else
- if( input_weight <= info->mMin2 )
- {
- F32 t = (input_weight - info->mMax2) / (info->mMin2 - info->mMax2 );
- driven_weight = driven_max + t * (driven_min - driven_max);
- }
- else
- {
- if (info->mMax2 >= max_weight)
- {
- driven_weight = driven_max;
- }
- else
- {
- driven_weight = driven_min;
- }
- }
-
- return driven_weight;
-}
-
-void LLDriverParam::setDrivenWeight(LLDrivenEntry *driven, F32 driven_weight, bool upload_bake)
-{
- if(isAgentAvatarValid() &&
- mWearablep &&
- driven->mParam->getCrossWearable() &&
- mWearablep->isOnTop())
- {
- // call setWeight through LLVOAvatarSelf so other wearables can be updated with the correct values
- gAgentAvatarp->setVisualParamWeight( (LLVisualParam*)driven->mParam, driven_weight, upload_bake );
- }
- else
- {
- driven->mParam->setWeight( driven_weight, upload_bake );
- }
-}
diff --git a/indra/newview/lldriverparam.h b/indra/newview/lldriverparam.h
deleted file mode 100644
index 216cf003e1..0000000000
--- a/indra/newview/lldriverparam.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * @file lldriverparam.h
- * @brief A visual parameter that drives (controls) other visual parameters.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLDRIVERPARAM_H
-#define LL_LLDRIVERPARAM_H
-
-#include "llviewervisualparam.h"
-#include "llwearabletype.h"
-
-class LLPhysicsMotion;
-class LLVOAvatar;
-class LLWearable;
-
-//-----------------------------------------------------------------------------
-
-struct LLDrivenEntryInfo
-{
- LLDrivenEntryInfo( S32 id, F32 min1, F32 max1, F32 max2, F32 min2 )
- : mDrivenID( id ), mMin1( min1 ), mMax1( max1 ), mMax2( max2 ), mMin2( min2 ) {}
- S32 mDrivenID;
- F32 mMin1;
- F32 mMax1;
- F32 mMax2;
- F32 mMin2;
-};
-
-struct LLDrivenEntry
-{
- LLDrivenEntry( LLViewerVisualParam* param, LLDrivenEntryInfo *info )
- : mParam( param ), mInfo( info ) {}
- LLViewerVisualParam* mParam;
- LLDrivenEntryInfo* mInfo;
-};
-
-//-----------------------------------------------------------------------------
-
-class LLDriverParamInfo : public LLViewerVisualParamInfo
-{
- friend class LLDriverParam;
-public:
- LLDriverParamInfo();
- /*virtual*/ ~LLDriverParamInfo() {};
-
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
-
- /*virtual*/ void toStream(std::ostream &out);
-
-protected:
- typedef std::deque<LLDrivenEntryInfo> entry_info_list_t;
- entry_info_list_t mDrivenInfoList;
-};
-
-//-----------------------------------------------------------------------------
-
-LL_ALIGN_PREFIX(16)
-class LLDriverParam : public LLViewerVisualParam
-{
- friend class LLPhysicsMotion; // physics motion needs to access driven params directly.
-public:
- LLDriverParam(LLVOAvatar *avatarp);
- LLDriverParam(LLWearable *wearablep);
- ~LLDriverParam();
-
- void* operator new(size_t size)
- {
- return ll_aligned_malloc_16(size);
- }
-
- void operator delete(void* ptr)
- {
- ll_aligned_free_16(ptr);
- }
-
- // Special: These functions are overridden by child classes
- LLDriverParamInfo* getInfo() const { return (LLDriverParamInfo*)mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLDriverParamInfo *info);
-
- void setWearable(LLWearable *wearablep);
- void setAvatar(LLVOAvatar *avatarp);
- void updateCrossDrivenParams(LLWearableType::EType driven_type);
-
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex sex ) {} // apply is called separately for each driven param.
- /*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
- /*virtual*/ void setAnimationTarget( F32 target_value, BOOL upload_bake );
- /*virtual*/ void stopAnimating(BOOL upload_bake);
- /*virtual*/ BOOL linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params);
- /*virtual*/ void resetDrivenParams();
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion();
- /*virtual*/ const LLVector4a& getAvgDistortion();
- /*virtual*/ F32 getMaxDistortion();
- /*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh);
- /*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh);
- /*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh);
-
-protected:
- F32 getDrivenWeight(const LLDrivenEntry* driven, F32 input_weight);
- void setDrivenWeight(LLDrivenEntry *driven, F32 driven_weight, bool upload_bake);
-
-
- LL_ALIGN_16(LLVector4a mDefaultVec); // temp holder
- typedef std::vector<LLDrivenEntry> entry_list_t;
- entry_list_t mDriven;
- LLViewerVisualParam* mCurrentDistortionParam;
- // Backlink only; don't make this an LLPointer.
- LLVOAvatar* mAvatarp;
- LLWearable* mWearablep;
-} LL_ALIGN_POSTFIX(16);
-
-#endif // LL_LLDRIVERPARAM_H
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index fa42b157a7..29ad4f34d2 100644..100755
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -107,7 +107,7 @@ void LLViewerDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum
{
setExplicitFormat(internal_format, primary_format, type_format, swap_bytes);
}
- createGLTexture(0, raw_image, 0, TRUE, LLViewerTexture::DYNAMIC_TEX);
+ createGLTexture(0, raw_image, 0, TRUE, LLGLTexture::DYNAMIC_TEX);
setAddressMode((mClamp) ? LLTexUnit::TAM_CLAMP : LLTexUnit::TAM_WRAP);
mGLTexturep->setGLTextureCreated(false);
}
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index c51e7d1e1a..d287ae6eeb 100644..100755
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -72,8 +72,8 @@ public:
/*virtual*/ S8 getType() const ;
- S32 getOriginX() { return mOrigin.mX; }
- S32 getOriginY() { return mOrigin.mY; }
+ S32 getOriginX() const { return mOrigin.mX; }
+ S32 getOriginY() const { return mOrigin.mY; }
S32 getSize() { return mFullWidth * mFullHeight * mComponents; }
diff --git a/indra/newview/llemote.cpp b/indra/newview/llemote.cpp
index 510ff69acf..510ff69acf 100644..100755
--- a/indra/newview/llemote.cpp
+++ b/indra/newview/llemote.cpp
diff --git a/indra/newview/llemote.h b/indra/newview/llemote.h
index 4c516998dc..4c516998dc 100644..100755
--- a/indra/newview/llemote.h
+++ b/indra/newview/llemote.h
diff --git a/indra/newview/llenvmanager.cpp b/indra/newview/llenvmanager.cpp
index 86fe6754dc..86fe6754dc 100644..100755
--- a/indra/newview/llenvmanager.cpp
+++ b/indra/newview/llenvmanager.cpp
diff --git a/indra/newview/llenvmanager.h b/indra/newview/llenvmanager.h
index ad56761bc7..ad56761bc7 100644..100755
--- a/indra/newview/llenvmanager.h
+++ b/indra/newview/llenvmanager.h
diff --git a/indra/newview/llestateinfomodel.cpp b/indra/newview/llestateinfomodel.cpp
index 7ed22d68f6..2669b0340f 100644..100755
--- a/indra/newview/llestateinfomodel.cpp
+++ b/indra/newview/llestateinfomodel.cpp
@@ -65,12 +65,12 @@ void LLEstateInfoModel::sendEstateInfo()
}
}
-bool LLEstateInfoModel::getUseFixedSun() const { return mFlags & REGION_FLAGS_SUN_FIXED; }
-bool LLEstateInfoModel::getIsExternallyVisible() const { return mFlags & REGION_FLAGS_EXTERNALLY_VISIBLE; }
-bool LLEstateInfoModel::getAllowDirectTeleport() const { return mFlags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT; }
-bool LLEstateInfoModel::getDenyAnonymous() const { return mFlags & REGION_FLAGS_DENY_ANONYMOUS; }
-bool LLEstateInfoModel::getDenyAgeUnverified() const { return mFlags & REGION_FLAGS_DENY_AGEUNVERIFIED; }
-bool LLEstateInfoModel::getAllowVoiceChat() const { return mFlags & REGION_FLAGS_ALLOW_VOICE; }
+bool LLEstateInfoModel::getUseFixedSun() const { return getFlag(REGION_FLAGS_SUN_FIXED); }
+bool LLEstateInfoModel::getIsExternallyVisible() const { return getFlag(REGION_FLAGS_EXTERNALLY_VISIBLE); }
+bool LLEstateInfoModel::getAllowDirectTeleport() const { return getFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT); }
+bool LLEstateInfoModel::getDenyAnonymous() const { return getFlag(REGION_FLAGS_DENY_ANONYMOUS); }
+bool LLEstateInfoModel::getDenyAgeUnverified() const { return getFlag(REGION_FLAGS_DENY_AGEUNVERIFIED); }
+bool LLEstateInfoModel::getAllowVoiceChat() const { return getFlag(REGION_FLAGS_ALLOW_VOICE); }
void LLEstateInfoModel::setUseFixedSun(bool val) { setFlag(REGION_FLAGS_SUN_FIXED, val); }
void LLEstateInfoModel::setIsExternallyVisible(bool val) { setFlag(REGION_FLAGS_EXTERNALLY_VISIBLE, val); }
@@ -122,9 +122,9 @@ public:
}
// if we get an error response
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Failed to commit estate info (" << status << "): " << reason << llendl;
+ llwarns << "Failed to commit estate info [status:" << status << "]: " << content << llendl;
}
};
@@ -199,18 +199,6 @@ void LLEstateInfoModel::commitEstateInfoDataserver()
gAgent.sendMessage();
}
-void LLEstateInfoModel::setFlag(U32 flag, bool val)
-{
- if (val)
- {
- mFlags |= flag;
- }
- else
- {
- mFlags &= ~flag;
- }
-}
-
std::string LLEstateInfoModel::getInfoDump()
{
LLSD dump;
diff --git a/indra/newview/llestateinfomodel.h b/indra/newview/llestateinfomodel.h
index 56391eda91..538f2f7c75 100644..100755
--- a/indra/newview/llestateinfomodel.h
+++ b/indra/newview/llestateinfomodel.h
@@ -85,19 +85,38 @@ protected:
private:
bool commitEstateInfoCaps();
void commitEstateInfoDataserver();
- U32 getFlags() const { return mFlags; }
- void setFlag(U32 flag, bool val);
+ inline bool getFlag(U64 flag) const;
+ inline void setFlag(U64 flag, bool val);
+ U64 getFlags() const { return mFlags; }
std::string getInfoDump();
// estate info
std::string mName; /// estate name
LLUUID mOwnerID; /// estate owner id
U32 mID; /// estate id
- U32 mFlags; /// estate flags
+ U64 mFlags; /// estate flags
F32 mSunHour; /// estate sun hour
update_signal_t mUpdateSignal; /// emitted when we receive update from sim
update_signal_t mCommitSignal; /// emitted when our update gets applied to sim
};
+inline bool LLEstateInfoModel::getFlag(U64 flag) const
+{
+ return ((mFlags & flag) != 0);
+}
+
+inline void LLEstateInfoModel::setFlag(U64 flag, bool val)
+{
+ if (val)
+ {
+ mFlags |= flag;
+ }
+ else
+ {
+ mFlags &= ~flag;
+ }
+}
+
+
#endif // LL_LLESTATEINFOMODEL_H
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index bedab75f98..bedab75f98 100644..100755
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
diff --git a/indra/newview/lleventnotifier.h b/indra/newview/lleventnotifier.h
index 3fee46c2f6..3fee46c2f6 100644..100755
--- a/indra/newview/lleventnotifier.h
+++ b/indra/newview/lleventnotifier.h
diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp
index 2c786b7f8b..e0f7223a8c 100644..100755
--- a/indra/newview/lleventpoll.cpp
+++ b/indra/newview/lleventpoll.cpp
@@ -62,7 +62,7 @@ namespace
void handleMessage(const LLSD& content);
- virtual void error(U32 status, const std::string& reason);
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
virtual void result(const LLSD& content);
virtual void completedRaw(U32 status,
@@ -187,7 +187,7 @@ namespace
}
//virtual
- void LLEventPollResponder::error(U32 status, const std::string& reason)
+ void LLEventPollResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
if (mDone) return;
@@ -207,13 +207,13 @@ namespace
+ mErrorCount * EVENT_POLL_ERROR_RETRY_SECONDS_INC
, this);
- llwarns << "Unexpected HTTP error. status: " << status << ", reason: " << reason << llendl;
+ llwarns << "LLEventPollResponder error [status:" << status << "]: " << content << llendl;
}
else
{
- llwarns << "LLEventPollResponder::error: <" << mCount << "> got "
- << status << ": " << reason
- << (mDone ? " -- done" : "") << llendl;
+ llwarns << "LLEventPollResponder error <" << mCount
+ << "> [status:" << status << "]: " << content
+ << (mDone ? " -- done" : "") << llendl;
stop();
// At this point we have given up and the viewer will not receive HTTP messages from the simulator.
diff --git a/indra/newview/lleventpoll.h b/indra/newview/lleventpoll.h
index e8d98062aa..e8d98062aa 100644..100755
--- a/indra/newview/lleventpoll.h
+++ b/indra/newview/lleventpoll.h
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index a50184460b..a50184460b 100644..100755
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h
index 399e48bea2..399e48bea2 100644..100755
--- a/indra/newview/llexpandabletextbox.h
+++ b/indra/newview/llexpandabletextbox.h
diff --git a/indra/newview/llexternaleditor.cpp b/indra/newview/llexternaleditor.cpp
index 9480e54809..9480e54809 100644..100755
--- a/indra/newview/llexternaleditor.cpp
+++ b/indra/newview/llexternaleditor.cpp
diff --git a/indra/newview/llexternaleditor.h b/indra/newview/llexternaleditor.h
index fd2c25020c..fd2c25020c 100644..100755
--- a/indra/newview/llexternaleditor.h
+++ b/indra/newview/llexternaleditor.h
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 28e4b32793..281f852b0a 100644..100755
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -555,8 +555,8 @@ void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color)
/* removed in lieu of raycast uv detection
void LLFace::renderSelectedUV()
{
- LLViewerTexture* red_blue_imagep = LLViewerTextureManager::getFetchedTextureFromFile("uv_test1.j2c", TRUE, LLViewerTexture::BOOST_UI);
- LLViewerTexture* green_imagep = LLViewerTextureManager::getFetchedTextureFromFile("uv_test2.tga", TRUE, LLViewerTexture::BOOST_UI);
+ LLViewerTexture* red_blue_imagep = LLViewerTextureManager::getFetchedTextureFromFile("uv_test1.j2c", TRUE, LLGLTexture::BOOST_UI);
+ LLViewerTexture* green_imagep = LLViewerTextureManager::getFetchedTextureFromFile("uv_test2.tga", TRUE, LLGLTexture::BOOST_UI);
LLGLSUVSelect object_select;
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index de4d03351c..de4d03351c 100644..100755
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
diff --git a/indra/newview/llface.inl b/indra/newview/llface.inl
index 85c35a88f3..85c35a88f3 100644..100755
--- a/indra/newview/llface.inl
+++ b/indra/newview/llface.inl
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 4dfb93f1bc..fbf72b1a85 100644..100755
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -368,7 +368,7 @@ void LLFastTimerView::draw()
S32 left, top, right, bottom;
S32 x, y, barw, barh, dx, dy;
- S32 texth, textw;
+ S32 texth;
LLPointer<LLUIImage> box_imagep = LLUI::getUIImage("Rounded_Square");
// Draw the window background
@@ -399,7 +399,6 @@ void LLFastTimerView::draw()
tdesc = llformat("Full bar = %s [Click to pause/reset] [SHIFT-Click to toggle]",modedesc[mDisplayMode]);
LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP);
- textw = LLFontGL::getFontMonospace()->getWidth(tdesc);
x = xleft, y -= (texth + 2);
tdesc = llformat("Justification = %s [CTRL-Click to toggle]",centerdesc[mDisplayCenter]);
@@ -526,8 +525,6 @@ void LLFastTimerView::draw()
y -= (texth + 2);
- textw = dx + LLFontGL::getFontMonospace()->getWidth(idp->getName()) + 40;
-
if (idp->getCollapsed())
{
it.skipDescendants();
@@ -1073,7 +1070,7 @@ void LLFastTimerView::exportCharts(const std::string& base, const std::string& t
{ //read base log into memory
S32 i = 0;
std::ifstream is(base.c_str());
- while (!is.eof() && LLSDSerialize::fromXML(cur, is))
+ while (!is.eof() && LLSDParser::PARSE_FAILURE != LLSDSerialize::fromXML(cur, is))
{
base_data[i++] = cur;
}
@@ -1086,7 +1083,7 @@ void LLFastTimerView::exportCharts(const std::string& base, const std::string& t
{ //read current log into memory
S32 i = 0;
std::ifstream is(target.c_str());
- while (!is.eof() && LLSDSerialize::fromXML(cur, is))
+ while (!is.eof() && LLSDParser::PARSE_FAILURE != LLSDSerialize::fromXML(cur, is))
{
cur_data[i++] = cur;
@@ -1377,7 +1374,7 @@ LLSD LLFastTimerView::analyzePerformanceLogDefault(std::istream& is)
stats_map_t time_stats;
stats_map_t sample_stats;
- while (!is.eof() && LLSDSerialize::fromXML(cur, is))
+ while (!is.eof() && LLSDParser::PARSE_FAILURE != LLSDSerialize::fromXML(cur, is))
{
for (LLSD::map_iterator iter = cur.beginMap(); iter != cur.endMap(); ++iter)
{
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index 5766cfa0b0..5766cfa0b0 100644..100755
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index e30dd51acb..6d90667194 100644..100755
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -1649,7 +1649,6 @@ void LLFavoritesOrderStorage::saveItemsOrder( const LLInventoryModel::item_array
gInventory.notifyObservers();
}
-
// See also LLInventorySort where landmarks in the Favorites folder are sorted.
class LLViewerInventoryItemSort
{
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index e000adc4aa..f06e9b9b64 100644..100755
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -161,7 +161,7 @@ private:
boost::signals2::connection mEndDragConnection;
};
-
+/*
class AddFavoriteLandmarkCallback : public LLInventoryCallback
{
public:
@@ -173,7 +173,7 @@ private:
LLUUID mTargetLandmarkId;
};
-
+*/
/**
* Class to store sorting order of favorites landmarks in a local file. EXT-3985.
* It replaced previously implemented solution to store sort index in landmark's name as a "<N>@" prefix.
@@ -272,5 +272,4 @@ private:
};
};
-
#endif // LL_LLFAVORITESBARCTRL_H
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index a4cadcd5dc..ddb9d3bc43 100644..100755
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -705,6 +705,20 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)
switch (level)
{
case 0:
+#if LL_DARWIN
+ // This Mac-specific change is to insure that we force 'Basic Shaders' for all Mac
+ // systems which support them instead of falling back to fixed-function unnecessarily
+ // MAINT-2157
+ //
+ if (gGLManager.mGLVersion < 2.1f)
+ {
+ maskFeatures("LowFixedFunction");
+ }
+ else
+ { //same as low, but with "Basic Shaders" enabled
+ maskFeatures("Low");
+ }
+#else
if (gGLManager.mGLVersion < 3.f || gGLManager.mIsIntel)
{ //only use fixed function by default if GL version < 3.0 or this is an intel graphics chip
maskFeatures("LowFixedFunction");
@@ -713,6 +727,7 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)
{ //same as low, but with "Basic Shaders" enabled
maskFeatures("Low");
}
+#endif
break;
case 1:
maskFeatures("LowMid");
diff --git a/indra/newview/llfeaturemanager.h b/indra/newview/llfeaturemanager.h
index ad72c16743..ad72c16743 100644..100755
--- a/indra/newview/llfeaturemanager.h
+++ b/indra/newview/llfeaturemanager.h
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 4bf5b26b3b..d13f85baa2 100644..100755
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -1103,6 +1103,7 @@ void LLFilePicker::chooser_responder(GtkWidget *widget, gint response, gpointer
GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::string context)
{
+#ifndef LL_MESA_HEADLESS
if (LLWindowSDL::ll_try_gtk_init())
{
GtkWidget *win = NULL;
@@ -1174,6 +1175,9 @@ GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::stri
{
return NULL;
}
+#else
+ return NULL;
+#endif //LL_MESA_HEADLESS
}
static void add_common_filters_to_gtkchooser(GtkFileFilter *gfilter,
@@ -1473,7 +1477,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename
return FALSE;
}
-BOOL LLFilePicker::getOpenFile( ELoadFilter filter )
+BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking )
{
// if local file browsing is turned off, return without opening dialog
// (Even though this is a stub, I think we still should not return anything at all)
@@ -1494,7 +1498,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter )
default: break;
}
mFiles.push_back(filename);
- llinfos << "getOpenFile: Will try to open file: " << hackyfilename << llendl;
+ llinfos << "getOpenFile: Will try to open file: " << filename << llendl;
return TRUE;
}
diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h
index 4f602f63f1..4f602f63f1 100644..100755
--- a/indra/newview/llfilepicker.h
+++ b/indra/newview/llfilepicker.h
diff --git a/indra/newview/llfilteredwearablelist.cpp b/indra/newview/llfilteredwearablelist.cpp
index a29ccf2b6d..a29ccf2b6d 100644..100755
--- a/indra/newview/llfilteredwearablelist.cpp
+++ b/indra/newview/llfilteredwearablelist.cpp
diff --git a/indra/newview/llfilteredwearablelist.h b/indra/newview/llfilteredwearablelist.h
index c21458ca98..c21458ca98 100644..100755
--- a/indra/newview/llfilteredwearablelist.h
+++ b/indra/newview/llfilteredwearablelist.h
diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp
index e2850f5181..e2850f5181 100644..100755
--- a/indra/newview/llfirstuse.cpp
+++ b/indra/newview/llfirstuse.cpp
diff --git a/indra/newview/llfirstuse.h b/indra/newview/llfirstuse.h
index 4c8c9d3cde..4c8c9d3cde 100644..100755
--- a/indra/newview/llfirstuse.h
+++ b/indra/newview/llfirstuse.h
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index a5ee4607a1..caad0afec0 100644..100755
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -270,9 +270,6 @@ void LLVolumeImplFlexible::setAttributesOfAllSections(LLVector3* inScale)
mSection[0].mVelocity.setVec(0,0,0);
mSection[0].mAxisRotation.setQuat(begin_rot,0,0,1);
- LLVector3 parentSectionPosition = mSection[0].mPosition;
- LLVector3 last_direction = mSection[0].mDirection;
-
remapSections(mSection, mInitializedRes, mSection, mSimulateRes);
mInitializedRes = mSimulateRes;
diff --git a/indra/newview/llflexibleobject.h b/indra/newview/llflexibleobject.h
index beb281a906..beb281a906 100644..100755
--- a/indra/newview/llflexibleobject.h
+++ b/indra/newview/llflexibleobject.h
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 83fb887d81..83fb887d81 100644..100755
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
diff --git a/indra/newview/llfloaterabout.h b/indra/newview/llfloaterabout.h
index 8fc1aa4f29..8fc1aa4f29 100644..100755
--- a/indra/newview/llfloaterabout.h
+++ b/indra/newview/llfloaterabout.h
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index 2939d31087..3c40e2d4bc 100644..100755
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -38,6 +38,7 @@
#include "message.h"
#include "llagent.h"
+#include "llassetstorage.h"
#include "llcombobox.h"
#include "llestateinfomodel.h"
#include "llmimetypes.h"
diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h
index 9c0c0f7775..9c0c0f7775 100644..100755
--- a/indra/newview/llfloaterauction.h
+++ b/indra/newview/llfloaterauction.h
diff --git a/indra/newview/llfloaterautoreplacesettings.cpp b/indra/newview/llfloaterautoreplacesettings.cpp
index 6e56e929df..6e56e929df 100644..100755
--- a/indra/newview/llfloaterautoreplacesettings.cpp
+++ b/indra/newview/llfloaterautoreplacesettings.cpp
diff --git a/indra/newview/llfloaterautoreplacesettings.h b/indra/newview/llfloaterautoreplacesettings.h
index 629aea3e3c..629aea3e3c 100644..100755
--- a/indra/newview/llfloaterautoreplacesettings.h
+++ b/indra/newview/llfloaterautoreplacesettings.h
diff --git a/indra/newview/llfloateravatar.cpp b/indra/newview/llfloateravatar.cpp
index bdc5b581a9..bdc5b581a9 100644..100755
--- a/indra/newview/llfloateravatar.cpp
+++ b/indra/newview/llfloateravatar.cpp
diff --git a/indra/newview/llfloateravatar.h b/indra/newview/llfloateravatar.h
index cadc5e4028..cadc5e4028 100644..100755
--- a/indra/newview/llfloateravatar.h
+++ b/indra/newview/llfloateravatar.h
diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp
index f7dd4a4a6b..113aa9a8f2 100644..100755
--- a/indra/newview/llfloateravatarpicker.cpp
+++ b/indra/newview/llfloateravatarpicker.cpp
@@ -483,8 +483,7 @@ public:
}
else
{
- llinfos << "avatar picker failed " << status
- << " reason " << reason << llendl;
+ llwarns << "avatar picker failed [status:" << status << "]: " << content << llendl;
}
}
@@ -819,7 +818,14 @@ bool LLFloaterAvatarPicker::isSelectBtnEnabled()
uuid_vec_t avatar_ids;
std::vector<LLAvatarName> avatar_names;
getSelectedAvatarData(list, avatar_ids, avatar_names);
- return mOkButtonValidateSignal(avatar_ids);
+ if (avatar_ids.size() >= 1)
+ {
+ ret_val = mOkButtonValidateSignal(avatar_ids);
+ }
+ else
+ {
+ ret_val = false;
+ }
}
}
diff --git a/indra/newview/llfloateravatarpicker.h b/indra/newview/llfloateravatarpicker.h
index ed3e51c56f..ed3e51c56f 100644..100755
--- a/indra/newview/llfloateravatarpicker.h
+++ b/indra/newview/llfloateravatarpicker.h
diff --git a/indra/newview/llfloateravatartextures.cpp b/indra/newview/llfloateravatartextures.cpp
index 4e10b4fc2c..048837acfe 100644..100755
--- a/indra/newview/llfloateravatartextures.cpp
+++ b/indra/newview/llfloateravatartextures.cpp
@@ -32,12 +32,13 @@
#include "llagent.h"
#include "llagentwearables.h"
+#include "llviewerwearable.h"
#include "lltexturectrl.h"
#include "lluictrlfactory.h"
#include "llviewerobjectlist.h"
#include "llvoavatarself.h"
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
LLFloaterAvatarTextures::LLFloaterAvatarTextures(const LLSD& id)
: LLFloater(id),
@@ -53,7 +54,7 @@ BOOL LLFloaterAvatarTextures::postBuild()
{
for (U32 i=0; i < TEX_NUM_INDICES; i++)
{
- const std::string tex_name = LLVOAvatarDictionary::getInstance()->getTexture(ETextureIndex(i))->mName;
+ const std::string tex_name = LLAvatarAppearanceDictionary::getInstance()->getTexture(ETextureIndex(i))->mName;
mTextures[i] = getChild<LLTextureCtrl>(tex_name);
}
mTitle = getTitle();
@@ -75,13 +76,13 @@ static void update_texture_ctrl(LLVOAvatar* avatarp,
ETextureIndex te)
{
LLUUID id = IMG_DEFAULT_AVATAR;
- const LLVOAvatarDictionary::TextureEntry* tex_entry = LLVOAvatarDictionary::getInstance()->getTexture(te);
+ const LLAvatarAppearanceDictionary::TextureEntry* tex_entry = LLAvatarAppearanceDictionary::getInstance()->getTexture(te);
if (tex_entry->mIsLocalTexture)
{
if (avatarp->isSelf())
{
const LLWearableType::EType wearable_type = tex_entry->mWearableType;
- LLWearable *wearable = gAgentWearables.getWearable(wearable_type, 0);
+ LLViewerWearable *wearable = gAgentWearables.getViewerWearable(wearable_type, 0);
if (wearable)
{
LLLocalTextureObject *lto = wearable->getLocalTextureObject(te);
@@ -163,17 +164,17 @@ void LLFloaterAvatarTextures::onClickDump(void* data)
const LLTextureEntry* te = avatarp->getTE(i);
if (!te) continue;
- const LLVOAvatarDictionary::TextureEntry* tex_entry = LLVOAvatarDictionary::getInstance()->getTexture((ETextureIndex)(i));
+ const LLAvatarAppearanceDictionary::TextureEntry* tex_entry = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)(i));
if (!tex_entry)
continue;
if (LLVOAvatar::isIndexLocalTexture((ETextureIndex)i))
{
LLUUID id = IMG_DEFAULT_AVATAR;
- LLWearableType::EType wearable_type = LLVOAvatarDictionary::getInstance()->getTEWearableType((ETextureIndex)i);
+ LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex)i);
if (avatarp->isSelf())
{
- LLWearable *wearable = gAgentWearables.getWearable(wearable_type, 0);
+ LLViewerWearable *wearable = gAgentWearables.getViewerWearable(wearable_type, 0);
if (wearable)
{
LLLocalTextureObject *lto = wearable->getLocalTextureObject(i);
diff --git a/indra/newview/llfloateravatartextures.h b/indra/newview/llfloateravatartextures.h
index 85ff545855..02474a10e1 100644..100755
--- a/indra/newview/llfloateravatartextures.h
+++ b/indra/newview/llfloateravatartextures.h
@@ -30,7 +30,7 @@
#include "llfloater.h"
#include "lluuid.h"
#include "llstring.h"
-#include "llvoavatardefines.h"
+#include "llavatarappearancedefines.h"
class LLTextureCtrl;
@@ -51,7 +51,7 @@ private:
private:
LLUUID mID;
std::string mTitle;
- LLTextureCtrl* mTextures[LLVOAvatarDefines::TEX_NUM_INDICES];
+ LLTextureCtrl* mTextures[LLAvatarAppearanceDefines::TEX_NUM_INDICES];
};
#endif
diff --git a/indra/newview/llfloaterbeacons.cpp b/indra/newview/llfloaterbeacons.cpp
index 316294a477..316294a477 100644..100755
--- a/indra/newview/llfloaterbeacons.cpp
+++ b/indra/newview/llfloaterbeacons.cpp
diff --git a/indra/newview/llfloaterbeacons.h b/indra/newview/llfloaterbeacons.h
index 47d0696296..47d0696296 100644..100755
--- a/indra/newview/llfloaterbeacons.h
+++ b/indra/newview/llfloaterbeacons.h
diff --git a/indra/newview/llfloaterbuildoptions.cpp b/indra/newview/llfloaterbuildoptions.cpp
index 1b65d8d683..1b65d8d683 100644..100755
--- a/indra/newview/llfloaterbuildoptions.cpp
+++ b/indra/newview/llfloaterbuildoptions.cpp
diff --git a/indra/newview/llfloaterbuildoptions.h b/indra/newview/llfloaterbuildoptions.h
index 02c56cb6a9..02c56cb6a9 100644..100755
--- a/indra/newview/llfloaterbuildoptions.h
+++ b/indra/newview/llfloaterbuildoptions.h
diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 39b6e465f3..39b6e465f3 100644..100755
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h
index 7dd05df7ee..7dd05df7ee 100644..100755
--- a/indra/newview/llfloaterbulkpermission.h
+++ b/indra/newview/llfloaterbulkpermission.h
diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp
index eeb81085bb..eeb81085bb 100644..100755
--- a/indra/newview/llfloaterbump.cpp
+++ b/indra/newview/llfloaterbump.cpp
diff --git a/indra/newview/llfloaterbump.h b/indra/newview/llfloaterbump.h
index 5acab6da8c..5acab6da8c 100644..100755
--- a/indra/newview/llfloaterbump.h
+++ b/indra/newview/llfloaterbump.h
diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp
index 087b0007e1..087b0007e1 100644..100755
--- a/indra/newview/llfloaterbuy.cpp
+++ b/indra/newview/llfloaterbuy.cpp
diff --git a/indra/newview/llfloaterbuy.h b/indra/newview/llfloaterbuy.h
index 3ec642dee1..3ec642dee1 100644..100755
--- a/indra/newview/llfloaterbuy.h
+++ b/indra/newview/llfloaterbuy.h
diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp
index fffd724b22..aa6ace2a61 100644..100755
--- a/indra/newview/llfloaterbuycontents.cpp
+++ b/indra/newview/llfloaterbuycontents.cpp
@@ -40,6 +40,7 @@
#include "llcheckboxctrl.h"
#include "llinventorydefines.h"
#include "llinventoryfunctions.h"
+#include "llinventoryicon.h"
#include "llinventorymodel.h" // for gInventory
#include "llfirstuse.h"
#include "llfloaterreg.h"
diff --git a/indra/newview/llfloaterbuycontents.h b/indra/newview/llfloaterbuycontents.h
index 19393fb6af..19393fb6af 100644..100755
--- a/indra/newview/llfloaterbuycontents.h
+++ b/indra/newview/llfloaterbuycontents.h
diff --git a/indra/newview/llfloaterbuycurrency.cpp b/indra/newview/llfloaterbuycurrency.cpp
index e21a8594bc..e21a8594bc 100644..100755
--- a/indra/newview/llfloaterbuycurrency.cpp
+++ b/indra/newview/llfloaterbuycurrency.cpp
diff --git a/indra/newview/llfloaterbuycurrency.h b/indra/newview/llfloaterbuycurrency.h
index 7ff6c42384..7ff6c42384 100644..100755
--- a/indra/newview/llfloaterbuycurrency.h
+++ b/indra/newview/llfloaterbuycurrency.h
diff --git a/indra/newview/llfloaterbuycurrencyhtml.cpp b/indra/newview/llfloaterbuycurrencyhtml.cpp
index 013cf74c7b..013cf74c7b 100644..100755
--- a/indra/newview/llfloaterbuycurrencyhtml.cpp
+++ b/indra/newview/llfloaterbuycurrencyhtml.cpp
diff --git a/indra/newview/llfloaterbuycurrencyhtml.h b/indra/newview/llfloaterbuycurrencyhtml.h
index 6b1fc53f1f..6b1fc53f1f 100644..100755
--- a/indra/newview/llfloaterbuycurrencyhtml.h
+++ b/indra/newview/llfloaterbuycurrencyhtml.h
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index 8223e89b64..42857b2aa2 100644..100755
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -538,7 +538,7 @@ void LLFloaterBuyLandUI::updateCovenantInfo()
LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");
if (resellable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if (region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL))
{
resellable_clause->setText(getString("can_not_resell"));
}
@@ -551,7 +551,7 @@ void LLFloaterBuyLandUI::updateCovenantInfo()
LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");
if (changeable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)
+ if (region->getRegionFlag(REGION_FLAGS_ALLOW_PARCEL_CHANGES))
{
changeable_clause->setText(getString("can_change"));
}
diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h
index 424f6f6616..424f6f6616 100644..100755
--- a/indra/newview/llfloaterbuyland.h
+++ b/indra/newview/llfloaterbuyland.h
diff --git a/indra/newview/llfloaterbvhpreview.cpp b/indra/newview/llfloaterbvhpreview.cpp
index 62848586cd..f2deb6a805 100644..100755
--- a/indra/newview/llfloaterbvhpreview.cpp
+++ b/indra/newview/llfloaterbvhpreview.cpp
@@ -1102,12 +1102,12 @@ BOOL LLPreviewAnimation::render()
gGL.flush();
- LLVector3 target_pos = avatarp->mRoot.getWorldPosition();
+ LLVector3 target_pos = avatarp->mRoot->getWorldPosition();
LLQuaternion camera_rot = LLQuaternion(mCameraPitch, LLVector3::y_axis) *
LLQuaternion(mCameraYaw, LLVector3::z_axis);
- LLQuaternion av_rot = avatarp->mRoot.getWorldRotation() * camera_rot;
+ LLQuaternion av_rot = avatarp->mRoot->getWorldRotation() * camera_rot;
LLViewerCamera::getInstance()->setOriginAndLookAt(
target_pos + ((LLVector3(mCameraDistance, 0.f, 0.f) + mCameraOffset) * av_rot), // camera
LLVector3::z_axis, // up
diff --git a/indra/newview/llfloaterbvhpreview.h b/indra/newview/llfloaterbvhpreview.h
index b81cc6e3a5..b81cc6e3a5 100644..100755
--- a/indra/newview/llfloaterbvhpreview.h
+++ b/indra/newview/llfloaterbvhpreview.h
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index c85d048c5a..c85d048c5a 100644..100755
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 4d6d03f22d..4d6d03f22d 100644..100755
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
diff --git a/indra/newview/llfloaterchatvoicevolume.cpp b/indra/newview/llfloaterchatvoicevolume.cpp
index 3c76a3a43c..3c76a3a43c 100644..100755
--- a/indra/newview/llfloaterchatvoicevolume.cpp
+++ b/indra/newview/llfloaterchatvoicevolume.cpp
diff --git a/indra/newview/llfloaterchatvoicevolume.h b/indra/newview/llfloaterchatvoicevolume.h
index 61ad92b6da..61ad92b6da 100644..100755
--- a/indra/newview/llfloaterchatvoicevolume.h
+++ b/indra/newview/llfloaterchatvoicevolume.h
diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp
index a03425649f..a03425649f 100644..100755
--- a/indra/newview/llfloatercolorpicker.cpp
+++ b/indra/newview/llfloatercolorpicker.cpp
diff --git a/indra/newview/llfloatercolorpicker.h b/indra/newview/llfloatercolorpicker.h
index bab0617712..bab0617712 100644..100755
--- a/indra/newview/llfloatercolorpicker.h
+++ b/indra/newview/llfloatercolorpicker.h
diff --git a/indra/newview/llfloaterconversationlog.cpp b/indra/newview/llfloaterconversationlog.cpp
index 4c910c5655..4c910c5655 100644..100755
--- a/indra/newview/llfloaterconversationlog.cpp
+++ b/indra/newview/llfloaterconversationlog.cpp
diff --git a/indra/newview/llfloaterconversationlog.h b/indra/newview/llfloaterconversationlog.h
index e971330f3d..e971330f3d 100644..100755
--- a/indra/newview/llfloaterconversationlog.h
+++ b/indra/newview/llfloaterconversationlog.h
diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp
index a3d715530d..a3d715530d 100644..100755
--- a/indra/newview/llfloaterconversationpreview.cpp
+++ b/indra/newview/llfloaterconversationpreview.cpp
diff --git a/indra/newview/llfloaterconversationpreview.h b/indra/newview/llfloaterconversationpreview.h
index b17ae84b63..b17ae84b63 100644..100755
--- a/indra/newview/llfloaterconversationpreview.h
+++ b/indra/newview/llfloaterconversationpreview.h
diff --git a/indra/newview/llfloaterdeleteenvpreset.cpp b/indra/newview/llfloaterdeleteenvpreset.cpp
index d08aa81cfe..d08aa81cfe 100644..100755
--- a/indra/newview/llfloaterdeleteenvpreset.cpp
+++ b/indra/newview/llfloaterdeleteenvpreset.cpp
diff --git a/indra/newview/llfloaterdeleteenvpreset.h b/indra/newview/llfloaterdeleteenvpreset.h
index 1211505273..1211505273 100644..100755
--- a/indra/newview/llfloaterdeleteenvpreset.h
+++ b/indra/newview/llfloaterdeleteenvpreset.h
diff --git a/indra/newview/llfloaterdestinations.cpp b/indra/newview/llfloaterdestinations.cpp
index af21cb593f..af21cb593f 100644..100755
--- a/indra/newview/llfloaterdestinations.cpp
+++ b/indra/newview/llfloaterdestinations.cpp
diff --git a/indra/newview/llfloaterdestinations.h b/indra/newview/llfloaterdestinations.h
index 85d9b3391e..85d9b3391e 100644..100755
--- a/indra/newview/llfloaterdestinations.h
+++ b/indra/newview/llfloaterdestinations.h
diff --git a/indra/newview/llfloaterdisplayname.cpp b/indra/newview/llfloaterdisplayname.cpp
index e2cef5630b..e2cef5630b 100644..100755
--- a/indra/newview/llfloaterdisplayname.cpp
+++ b/indra/newview/llfloaterdisplayname.cpp
diff --git a/indra/newview/llfloaterdisplayname.h b/indra/newview/llfloaterdisplayname.h
index a00bf56712..a00bf56712 100644..100755
--- a/indra/newview/llfloaterdisplayname.h
+++ b/indra/newview/llfloaterdisplayname.h
diff --git a/indra/newview/llfloatereditdaycycle.cpp b/indra/newview/llfloatereditdaycycle.cpp
index b63677b258..b63677b258 100644..100755
--- a/indra/newview/llfloatereditdaycycle.cpp
+++ b/indra/newview/llfloatereditdaycycle.cpp
diff --git a/indra/newview/llfloatereditdaycycle.h b/indra/newview/llfloatereditdaycycle.h
index e6e4fe39c1..e6e4fe39c1 100644..100755
--- a/indra/newview/llfloatereditdaycycle.h
+++ b/indra/newview/llfloatereditdaycycle.h
diff --git a/indra/newview/llfloatereditsky.cpp b/indra/newview/llfloatereditsky.cpp
index 352361ce9e..352361ce9e 100644..100755
--- a/indra/newview/llfloatereditsky.cpp
+++ b/indra/newview/llfloatereditsky.cpp
diff --git a/indra/newview/llfloatereditsky.h b/indra/newview/llfloatereditsky.h
index a06c4fc5fa..a06c4fc5fa 100644..100755
--- a/indra/newview/llfloatereditsky.h
+++ b/indra/newview/llfloatereditsky.h
diff --git a/indra/newview/llfloatereditwater.cpp b/indra/newview/llfloatereditwater.cpp
index 64cfc4054f..64cfc4054f 100644..100755
--- a/indra/newview/llfloatereditwater.cpp
+++ b/indra/newview/llfloatereditwater.cpp
diff --git a/indra/newview/llfloatereditwater.h b/indra/newview/llfloatereditwater.h
index 2211bca59f..2211bca59f 100644..100755
--- a/indra/newview/llfloatereditwater.h
+++ b/indra/newview/llfloatereditwater.h
diff --git a/indra/newview/llfloaterenvironmentsettings.cpp b/indra/newview/llfloaterenvironmentsettings.cpp
index 4dbc8cdee0..4dbc8cdee0 100644..100755
--- a/indra/newview/llfloaterenvironmentsettings.cpp
+++ b/indra/newview/llfloaterenvironmentsettings.cpp
diff --git a/indra/newview/llfloaterenvironmentsettings.h b/indra/newview/llfloaterenvironmentsettings.h
index 0ab458a0f6..0ab458a0f6 100644..100755
--- a/indra/newview/llfloaterenvironmentsettings.h
+++ b/indra/newview/llfloaterenvironmentsettings.h
diff --git a/indra/newview/llfloaterevent.cpp b/indra/newview/llfloaterevent.cpp
index a6dafda3e6..a6dafda3e6 100644..100755
--- a/indra/newview/llfloaterevent.cpp
+++ b/indra/newview/llfloaterevent.cpp
diff --git a/indra/newview/llfloaterevent.h b/indra/newview/llfloaterevent.h
index ed90055d95..ed90055d95 100644..100755
--- a/indra/newview/llfloaterevent.h
+++ b/indra/newview/llfloaterevent.h
diff --git a/indra/newview/llfloaterfonttest.cpp b/indra/newview/llfloaterfonttest.cpp
index ff27b683b7..ff27b683b7 100644..100755
--- a/indra/newview/llfloaterfonttest.cpp
+++ b/indra/newview/llfloaterfonttest.cpp
diff --git a/indra/newview/llfloaterfonttest.h b/indra/newview/llfloaterfonttest.h
index fc82d7ef51..fc82d7ef51 100644..100755
--- a/indra/newview/llfloaterfonttest.h
+++ b/indra/newview/llfloaterfonttest.h
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index 56051ff684..56051ff684 100644..100755
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
diff --git a/indra/newview/llfloatergesture.h b/indra/newview/llfloatergesture.h
index 8efb3e6461..8efb3e6461 100644..100755
--- a/indra/newview/llfloatergesture.h
+++ b/indra/newview/llfloatergesture.h
diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp
index 38abdcc830..fe6223fbf5 100644..100755
--- a/indra/newview/llfloatergodtools.cpp
+++ b/indra/newview/llfloatergodtools.cpp
@@ -164,9 +164,9 @@ LLFloaterGodTools::~LLFloaterGodTools()
}
-U32 LLFloaterGodTools::computeRegionFlags() const
+U64 LLFloaterGodTools::computeRegionFlags() const
{
- U32 flags = gAgent.getRegion()->getRegionFlags();
+ U64 flags = gAgent.getRegion()->getRegionFlags();
if (mPanelRegionTools) flags = mPanelRegionTools->computeRegionFlags(flags);
if (mPanelObjectTools) flags = mPanelObjectTools->computeRegionFlags(flags);
return flags;
@@ -210,7 +210,7 @@ void LLFloaterGodTools::processRegionInfo(LLMessageSystem* msg)
if (!msg) return;
//const S32 SIM_NAME_BUF = 256;
- U32 region_flags;
+ U64 region_flags;
U8 sim_access;
U8 agent_limit;
std::string sim_name;
@@ -231,13 +231,23 @@ void LLFloaterGodTools::processRegionInfo(LLMessageSystem* msg)
msg->getStringFast(_PREHASH_RegionInfo, _PREHASH_SimName, sim_name);
msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_EstateID, estate_id);
msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_ParentEstateID, parent_estate_id);
- msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_RegionFlags, region_flags);
msg->getU8Fast(_PREHASH_RegionInfo, _PREHASH_SimAccess, sim_access);
msg->getU8Fast(_PREHASH_RegionInfo, _PREHASH_MaxAgents, agent_limit);
msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_ObjectBonusFactor, object_bonus_factor);
msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_BillableFactor, billable_factor);
msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_WaterHeight, water_height);
+ if (msg->has(_PREHASH_RegionInfo3))
+ {
+ msg->getU64Fast(_PREHASH_RegionInfo3, _PREHASH_RegionFlagsExtended, region_flags);
+ }
+ else
+ {
+ U32 flags = 0;
+ msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_RegionFlags, flags);
+ region_flags = flags;
+ }
+
if (host != gAgent.getRegionHost())
{
// Update is for a different region than the one we're in.
@@ -341,6 +351,7 @@ void LLFloaterGodTools::sendGodUpdateRegionInfo()
LLMessageSystem *msg = gMessageSystem;
LLPanelRegionTools *rtool = god_tools->mPanelRegionTools;
+ U64 region_flags = computeRegionFlags();
msg->newMessage("GodUpdateRegionInfo");
msg->nextBlockFast(_PREHASH_AgentData);
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
@@ -349,11 +360,14 @@ void LLFloaterGodTools::sendGodUpdateRegionInfo()
msg->addStringFast(_PREHASH_SimName, rtool->getSimName());
msg->addU32Fast(_PREHASH_EstateID, rtool->getEstateID());
msg->addU32Fast(_PREHASH_ParentEstateID, rtool->getParentEstateID());
- msg->addU32Fast(_PREHASH_RegionFlags, computeRegionFlags());
+ // Legacy flags
+ msg->addU32Fast(_PREHASH_RegionFlags, U32(region_flags));
msg->addF32Fast(_PREHASH_BillableFactor, rtool->getBillableFactor());
msg->addS32Fast(_PREHASH_PricePerMeter, rtool->getPricePerMeter());
msg->addS32Fast(_PREHASH_RedirectGridX, rtool->getRedirectGridX());
msg->addS32Fast(_PREHASH_RedirectGridY, rtool->getRedirectGridY());
+ msg->nextBlockFast(_PREHASH_RegionInfo2);
+ msg->addU64Fast(_PREHASH_RegionFlagsExtended, region_flags);
gAgent.sendReliableMessage();
}
@@ -434,7 +448,7 @@ LLPanelRegionTools::~LLPanelRegionTools()
// base class will take care of everything
}
-U32 LLPanelRegionTools::computeRegionFlags(U32 flags) const
+U64 LLPanelRegionTools::computeRegionFlags(U64 flags) const
{
flags &= getRegionFlagsMask();
flags |= getRegionFlags();
@@ -562,9 +576,9 @@ S32 LLPanelRegionTools::getGridPosY() const
return getChild<LLUICtrl>("gridposy")->getValue().asInteger();
}
-U32 LLPanelRegionTools::getRegionFlags() const
+U64 LLPanelRegionTools::getRegionFlags() const
{
- U32 flags = 0x0;
+ U64 flags = 0x0;
flags = getChild<LLUICtrl>("check prelude")->getValue().asBoolean()
? set_prelude_flags(flags)
: unset_prelude_flags(flags);
@@ -601,9 +615,9 @@ U32 LLPanelRegionTools::getRegionFlags() const
return flags;
}
-U32 LLPanelRegionTools::getRegionFlagsMask() const
+U64 LLPanelRegionTools::getRegionFlagsMask() const
{
- U32 flags = 0xffffffff;
+ U64 flags = 0xFFFFFFFFFFFFFFFFULL;
flags = getChild<LLUICtrl>("check prelude")->getValue().asBoolean()
? set_prelude_flags(flags)
: unset_prelude_flags(flags);
@@ -684,7 +698,7 @@ void LLPanelRegionTools::setParentEstateID(U32 id)
getChild<LLUICtrl>("parentestate")->setValue((S32)id);
}
-void LLPanelRegionTools::setCheckFlags(U32 flags)
+void LLPanelRegionTools::setCheckFlags(U64 flags)
{
getChild<LLUICtrl>("check prelude")->setValue(is_prelude(flags) ? TRUE : FALSE);
getChild<LLUICtrl>("check fixed sun")->setValue(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE);
@@ -943,7 +957,7 @@ void LLPanelObjectTools::refresh()
}
-U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
+U64 LLPanelObjectTools::computeRegionFlags(U64 flags) const
{
if (getChild<LLUICtrl>("disable scripts")->getValue().asBoolean())
{
@@ -973,7 +987,7 @@ U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
}
-void LLPanelObjectTools::setCheckFlags(U32 flags)
+void LLPanelObjectTools::setCheckFlags(U64 flags)
{
getChild<LLUICtrl>("disable scripts")->setValue(flags & REGION_FLAGS_SKIP_SCRIPTS ? TRUE : FALSE);
getChild<LLUICtrl>("disable collisions")->setValue(flags & REGION_FLAGS_SKIP_COLLISIONS ? TRUE : FALSE);
diff --git a/indra/newview/llfloatergodtools.h b/indra/newview/llfloatergodtools.h
index 1aa8b838fb..cbaeee7051 100644..100755
--- a/indra/newview/llfloatergodtools.h
+++ b/indra/newview/llfloatergodtools.h
@@ -98,7 +98,7 @@ private:
~LLFloaterGodTools();
protected:
- U32 computeRegionFlags() const;
+ U64 computeRegionFlags() const;
protected:
@@ -147,8 +147,8 @@ public:
const std::string getSimName() const;
U32 getEstateID() const;
U32 getParentEstateID() const;
- U32 getRegionFlags() const;
- U32 getRegionFlagsMask() const;
+ U64 getRegionFlags() const;
+ U64 getRegionFlagsMask() const;
F32 getBillableFactor() const;
S32 getPricePerMeter() const;
S32 getGridPosX() const;
@@ -160,7 +160,7 @@ public:
void setSimName(const std::string& name);
void setEstateID(U32 id);
void setParentEstateID(U32 id);
- void setCheckFlags(U32 flags);
+ void setCheckFlags(U64 flags);
void setBillableFactor(F32 billable_factor);
void setPricePerMeter(S32 price);
void setGridPosX(S32 pos);
@@ -168,7 +168,7 @@ public:
void setRedirectGridX(S32 pos);
void setRedirectGridY(S32 pos);
- U32 computeRegionFlags(U32 initial_flags) const;
+ U64 computeRegionFlags(U64 initial_flags) const;
void clearAllWidgets();
void enableAllWidgets();
@@ -218,10 +218,10 @@ public:
/*virtual*/ void refresh();
void setTargetAvatar(const LLUUID& target_id);
- U32 computeRegionFlags(U32 initial_flags) const;
+ U64 computeRegionFlags(U64 initial_flags) const;
void clearAllWidgets();
void enableAllWidgets();
- void setCheckFlags(U32 flags);
+ void setCheckFlags(U64 flags);
void onChangeAnything();
void onApplyChanges();
diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp
index 49da4e64b3..49da4e64b3 100644..100755
--- a/indra/newview/llfloatergroupinvite.cpp
+++ b/indra/newview/llfloatergroupinvite.cpp
diff --git a/indra/newview/llfloatergroupinvite.h b/indra/newview/llfloatergroupinvite.h
index f6a3ca5550..f6a3ca5550 100644..100755
--- a/indra/newview/llfloatergroupinvite.h
+++ b/indra/newview/llfloatergroupinvite.h
diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp
index d84364a68a..d84364a68a 100644..100755
--- a/indra/newview/llfloatergroups.cpp
+++ b/indra/newview/llfloatergroups.cpp
diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h
index 1ad27cea19..1ad27cea19 100644..100755
--- a/indra/newview/llfloatergroups.h
+++ b/indra/newview/llfloatergroups.h
diff --git a/indra/newview/llfloaterhandler.cpp b/indra/newview/llfloaterhandler.cpp
index e2160498e9..e2160498e9 100644..100755
--- a/indra/newview/llfloaterhandler.cpp
+++ b/indra/newview/llfloaterhandler.cpp
diff --git a/indra/newview/llfloaterhandler.h b/indra/newview/llfloaterhandler.h
index 5915642d66..5915642d66 100644..100755
--- a/indra/newview/llfloaterhandler.h
+++ b/indra/newview/llfloaterhandler.h
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 116bd241c4..116bd241c4 100644..100755
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
diff --git a/indra/newview/llfloaterhardwaresettings.h b/indra/newview/llfloaterhardwaresettings.h
index 626771b1d2..626771b1d2 100644..100755
--- a/indra/newview/llfloaterhardwaresettings.h
+++ b/indra/newview/llfloaterhardwaresettings.h
diff --git a/indra/newview/llfloaterhelpbrowser.cpp b/indra/newview/llfloaterhelpbrowser.cpp
index 4cb632bd6a..4cb632bd6a 100644..100755
--- a/indra/newview/llfloaterhelpbrowser.cpp
+++ b/indra/newview/llfloaterhelpbrowser.cpp
diff --git a/indra/newview/llfloaterhelpbrowser.h b/indra/newview/llfloaterhelpbrowser.h
index bf4f544a14..bf4f544a14 100644..100755
--- a/indra/newview/llfloaterhelpbrowser.h
+++ b/indra/newview/llfloaterhelpbrowser.h
diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp
index 58c76a0b85..58c76a0b85 100644..100755
--- a/indra/newview/llfloaterhud.cpp
+++ b/indra/newview/llfloaterhud.cpp
diff --git a/indra/newview/llfloaterhud.h b/indra/newview/llfloaterhud.h
index e560d6320b..e560d6320b 100644..100755
--- a/indra/newview/llfloaterhud.h
+++ b/indra/newview/llfloaterhud.h
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 2575f6f817..52e678ce24 100644..100755
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -593,7 +593,7 @@ S8 LLImagePreviewAvatar::getType() const
void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const std::string& mesh_name, LLImageRaw* imagep, F32 distance, BOOL male)
{
- mTargetJoint = mDummyAvatar->mRoot.findJoint(joint_name);
+ mTargetJoint = mDummyAvatar->mRoot->findJoint(joint_name);
// clear out existing test mesh
if (mTargetMesh)
{
@@ -612,9 +612,9 @@ void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const
mDummyAvatar->updateVisualParams();
mDummyAvatar->updateGeometry(mDummyAvatar->mDrawable);
}
- mDummyAvatar->mRoot.setVisible(FALSE, TRUE);
+ mDummyAvatar->mRoot->setVisible(FALSE, TRUE);
- mTargetMesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name);
+ mTargetMesh = dynamic_cast<LLViewerJointMesh*>(mDummyAvatar->mRoot->findJoint(mesh_name));
mTargetMesh->setTestTexture(mTextureName);
mTargetMesh->setVisible(TRUE, FALSE);
mCameraDistance = distance;
@@ -631,7 +631,7 @@ void LLImagePreviewAvatar::clearPreviewTexture(const std::string& mesh_name)
{
if (mDummyAvatar)
{
- LLViewerJointMesh *mesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name);
+ LLViewerJointMesh *mesh = dynamic_cast<LLViewerJointMesh*>(mDummyAvatar->mRoot->findJoint(mesh_name));
// clear out existing test mesh
if (mesh)
{
diff --git a/indra/newview/llfloaterimagepreview.h b/indra/newview/llfloaterimagepreview.h
index d034622c35..d034622c35 100644..100755
--- a/indra/newview/llfloaterimagepreview.h
+++ b/indra/newview/llfloaterimagepreview.h
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 65155041f0..b0c41430d0 100644..100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -585,6 +585,28 @@ void LLFloaterIMContainer::returnFloaterToHost()
floater->onTearOffClicked();
}
+void LLFloaterIMContainer::setMinimized(BOOL b)
+{
+ bool was_minimized = isMinimized();
+ LLMultiFloater::setMinimized(b);
+
+ //Switching from minimized to un-minimized
+ if(was_minimized && !b)
+ {
+ LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(mSelectedSession);
+
+ if(session_floater && !session_floater->isTornOff())
+ {
+ //When in DND mode, remove stored IM notifications
+ //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
+ if(gAgent.isDoNotDisturb() && mSelectedSession.notNull())
+ {
+ LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSelectedSession);
+ }
+ }
+ }
+}
+
void LLFloaterIMContainer::setVisible(BOOL visible)
{ LLFloaterIMNearbyChat* nearby_chat;
if (visible)
@@ -597,10 +619,21 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
// *TODO: find a way to move this to XML as a default panel or something like that
LLSD name("nearby_chat");
LLFloaterReg::toggleInstanceOrBringToFront(name);
- setSelectedSession(LLUUID(NULL));
+ selectConversationPair(LLUUID(NULL), false, false);
}
openNearbyChat();
- selectConversationPair(getSelectedSession(), false, false);
+ flashConversationItemWidget(mSelectedSession,false);
+
+ LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(mSelectedSession);
+ if(session_floater && !session_floater->isMinimized())
+ {
+ //When in DND mode, remove stored IM notifications
+ //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
+ if(gAgent.isDoNotDisturb() && mSelectedSession.notNull())
+ {
+ LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSelectedSession);
+ }
+ }
}
nearby_chat = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat");
@@ -626,6 +659,12 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
LLMultiFloater::setVisible(visible);
}
+void LLFloaterIMContainer::setVisibleAndFrontmost(BOOL take_focus, const LLSD& key)
+{
+ LLMultiFloater::setVisibleAndFrontmost(take_focus, key);
+ selectConversationPair(getSelectedSession(), false, take_focus);
+}
+
void LLFloaterIMContainer::updateResizeLimits()
{
LLMultiFloater::updateResizeLimits();
@@ -1335,7 +1374,10 @@ void LLFloaterIMContainer::showConversation(const LLUUID& session_id)
selectConversationPair(session_id, true);
LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(session_id);
- session_floater->restoreFloater();
+ if (session_floater)
+ {
+ session_floater->restoreFloater();
+ }
}
void LLFloaterIMContainer::clearAllFlashStates()
@@ -1384,13 +1426,6 @@ BOOL LLFloaterIMContainer::selectConversationPair(const LLUUID& session_id, bool
widget->getParentFolder()->setSelection(widget, FALSE, FALSE);
mConversationsRoot->scrollToShowSelection();
}
-
- //When in DND mode, remove stored IM notifications
- //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
- if(gAgent.isDoNotDisturb() && session_id.notNull())
- {
- LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, session_id);
- }
}
/* floater processing */
@@ -1415,14 +1450,19 @@ BOOL LLFloaterIMContainer::selectConversationPair(const LLUUID& session_id, bool
{
showStub(true);
}
+
+ //When in DND mode, remove stored IM notifications
+ //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
+ if(gAgent.isDoNotDisturb() && session_id.notNull())
+ {
+ LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, session_id);
+ }
}
// Set the focus on the selected floater
- if (!session_floater->hasFocus())
+ if (!session_floater->hasFocus() && !session_floater->isMinimized())
{
- BOOL is_minimized = session_floater->isMinimized();
session_floater->setFocus(focus_floater);
- session_floater->setMinimized(is_minimized);
}
}
flashConversationItemWidget(session_id,false);
@@ -1967,10 +2007,13 @@ bool LLFloaterIMContainer::selectNextorPreviousConversation(bool select_next, bo
void LLFloaterIMContainer::expandConversation()
{
- LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(get_ptr_in_map(mConversationsWidgets,getSelectedSession()));
- if (widget)
+ if(!mConversationsPane->isCollapsed())
{
- widget->setOpen(!widget->isOpen());
+ LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(get_ptr_in_map(mConversationsWidgets,getSelectedSession()));
+ if (widget)
+ {
+ widget->setOpen(!widget->isOpen());
+ }
}
}
@@ -1978,8 +2021,11 @@ void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/)
{
// Always unminimize before trying to close.
// Most of the time the user will never see this state.
- setMinimized(FALSE);
-
+ if(isMinimized())
+ {
+ LLMultiFloater::setMinimized(FALSE);
+ }
+
LLFloater::closeFloater(app_quitting);
}
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index 2cbc1e99f9..e39d20ec35 100644..100755
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -59,7 +59,9 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void draw();
+ /*virtual*/ void setMinimized(BOOL b);
/*virtual*/ void setVisible(BOOL visible);
+ /*virtual*/ void setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());
/*virtual*/ void updateResizeLimits();
void onCloseFloater(LLUUID& id);
diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp
index b287950c21..49f36a2f32 100644..100755
--- a/indra/newview/llfloaterimnearbychat.cpp
+++ b/indra/newview/llfloaterimnearbychat.cpp
@@ -264,7 +264,7 @@ void LLFloaterIMNearbyChat::setVisibleAndFrontmost(BOOL take_focus, const LLSD&
if(!isTornOff() && matchesKey(key))
{
- LLFloaterIMContainer::getInstance()->selectConversationPair(mSessionID, true, false);
+ LLFloaterIMContainer::getInstance()->selectConversationPair(mSessionID, true, take_focus);
}
}
@@ -283,6 +283,11 @@ void LLFloaterIMNearbyChat::onTearOffClicked()
void LLFloaterIMNearbyChat::onOpen(const LLSD& key)
{
LLFloaterIMSessionTab::onOpen(key);
+ if(!isMessagePaneExpanded())
+ {
+ restoreFloater();
+ onCollapseToLine(this);
+ }
showTranslationCheckbox(LLTranslate::isTranslationConfigured());
}
@@ -322,10 +327,7 @@ void LLFloaterIMNearbyChat::onChatFontChange(LLFontGL* fontp)
void LLFloaterIMNearbyChat::show()
{
- if (isChatMultiTab())
- {
openFloater(getKey());
- }
}
bool LLFloaterIMNearbyChat::isChatVisible() const
@@ -480,11 +482,14 @@ void LLFloaterIMNearbyChat::onChatBoxKeystroke()
if (LLGestureMgr::instance().matchPrefix(utf8_trigger, &utf8_out_str))
{
std::string rest_of_match = utf8_out_str.substr(utf8_trigger.size());
- mInputEditor->setText(utf8_trigger + rest_of_match); // keep original capitalization for user-entered part
+ if (!rest_of_match.empty())
+ {
+ mInputEditor->setText(utf8_trigger + rest_of_match); // keep original capitalization for user-entered part
- // Select to end of line, starting from the character
- // after the last one the user typed.
- mInputEditor->selectNext(rest_of_match, false);
+ // Select to end of line, starting from the character
+ // after the last one the user typed.
+ mInputEditor->selectNext(rest_of_match, false);
+ }
}
else if (matchChatTypeTrigger(utf8_trigger, &utf8_out_str))
{
@@ -741,15 +746,14 @@ void LLFloaterIMNearbyChat::startChat(const char* line)
{
if(!nearby_chat->isTornOff())
{
- nearby_chat->show();
+ LLFloaterIMContainer::getInstance()->selectConversation(LLUUID(NULL));
}
if(nearby_chat->isMinimized())
{
nearby_chat->setMinimized(false);
}
- nearby_chat->setVisible(TRUE);
+ nearby_chat->show();
nearby_chat->setFocus(TRUE);
- nearby_chat->mInputEditor->setFocus(TRUE);
if (line)
{
diff --git a/indra/newview/llfloaterimnearbychat.h b/indra/newview/llfloaterimnearbychat.h
index 05b48cccb0..05b48cccb0 100644..100755
--- a/indra/newview/llfloaterimnearbychat.h
+++ b/indra/newview/llfloaterimnearbychat.h
diff --git a/indra/newview/llfloaterimnearbychathandler.cpp b/indra/newview/llfloaterimnearbychathandler.cpp
index 7afcf288ce..9ce5e12897 100644..100755
--- a/indra/newview/llfloaterimnearbychathandler.cpp
+++ b/indra/newview/llfloaterimnearbychathandler.cpp
@@ -559,9 +559,7 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg,
LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
- if(( nearby_chat->hasFocus()
- || im_box->hasFocus()
- || ( chat_msg.mSourceType == CHAT_SOURCE_AGENT
+ if(( ( chat_msg.mSourceType == CHAT_SOURCE_AGENT
&& gSavedSettings.getBOOL("UseChatBubbles") )
|| mChannel.isDead()
|| !mChannel.get()->getShowToasts() )
@@ -606,17 +604,20 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg,
toast_msg = chat_msg.mText;
}
- //Don't show nearby toast, if conversation is visible but not focused
- LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(LLUUID());
- if (session_floater && session_floater->isMessagePaneExpanded()
- && session_floater->isInVisibleChain() && !session_floater->isMinimized()
- && !(session_floater->getHost() && session_floater->getHost()->isMinimized()))
+ //Don't show nearby toast, if conversation is visible and selected
+ if ((nearby_chat->hasFocus()) ||
+ ((im_box->getSelectedSession().isNull() &&
+ ((LLFloater::isVisible(im_box) && !im_box->isMinimized() && im_box->isFrontmost())
+ || (LLFloater::isVisible(nearby_chat) && !nearby_chat->isMinimized() && nearby_chat->isFrontmost())))))
{
- return;
+ if(nearby_chat->isMessagePaneExpanded())
+ {
+ return;
+ }
}
//Will show toast when chat preference is set
- if((gSavedSettings.getString("NotificationNearbyChatOptions") == "toast") || !session_floater->isMessagePaneExpanded())
+ if((gSavedSettings.getString("NotificationNearbyChatOptions") == "toast") || !nearby_chat->isMessagePaneExpanded())
{
// Add a nearby chat toast.
LLUUID id;
diff --git a/indra/newview/llfloaterimnearbychathandler.h b/indra/newview/llfloaterimnearbychathandler.h
index 5e6f8cde30..5e6f8cde30 100644..100755
--- a/indra/newview/llfloaterimnearbychathandler.h
+++ b/indra/newview/llfloaterimnearbychathandler.h
diff --git a/indra/newview/llfloaterimnearbychatlistener.cpp b/indra/newview/llfloaterimnearbychatlistener.cpp
index 14a22bcd84..14a22bcd84 100644..100755
--- a/indra/newview/llfloaterimnearbychatlistener.cpp
+++ b/indra/newview/llfloaterimnearbychatlistener.cpp
diff --git a/indra/newview/llfloaterimnearbychatlistener.h b/indra/newview/llfloaterimnearbychatlistener.h
index 1470a6dc1e..1470a6dc1e 100644..100755
--- a/indra/newview/llfloaterimnearbychatlistener.h
+++ b/indra/newview/llfloaterimnearbychatlistener.h
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index 73adfd0eda..8ec85e1160 100644..100755
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -39,6 +39,7 @@
#include "llchannelmanager.h"
#include "llchiclet.h"
#include "llchicletbar.h"
+#include "lldonotdisturbnotificationstorage.h"
#include "llfloaterreg.h"
#include "llfloateravatarpicker.h"
#include "llfloaterimcontainer.h" // to replace separate IM Floaters with multifloater container
@@ -618,6 +619,8 @@ void LLFloaterIMSession::onClose(bool app_quitting)
// Last change:
// EXT-3516 X Button should end IM session, _ button should hide
gIMMgr->leaveSession(mSessionID);
+ // *TODO: Study why we need to restore the floater before we close it.
+ // Might be because we want to save some state data in some clean open state.
LLFloaterIMSessionTab::restoreFloater();
// Clean up the conversation *after* the session has been ended
LLFloaterIMSessionTab::onClose(app_quitting);
@@ -643,6 +646,23 @@ void LLFloaterIMSession::setDocked(bool docked, bool pop_on_undock)
}
}
+void LLFloaterIMSession::setMinimized(BOOL b)
+{
+ bool wasMinimized = isMinimized();
+ LLFloaterIMSessionTab::setMinimized(b);
+
+ //Switching from minimized state to un-minimized state
+ if(wasMinimized && !b)
+ {
+ //When in DND mode, remove stored IM notifications
+ //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
+ if(gAgent.isDoNotDisturb())
+ {
+ LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSessionID);
+ }
+ }
+}
+
void LLFloaterIMSession::setVisible(BOOL visible)
{
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
@@ -711,6 +731,18 @@ BOOL LLFloaterIMSession::getVisible()
return visible;
}
+void LLFloaterIMSession::setFocus(BOOL focus)
+{
+ LLFloaterIMSessionTab::setFocus(focus);
+
+ //When in DND mode, remove stored IM notifications
+ //Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
+ if(focus && gAgent.isDoNotDisturb())
+ {
+ LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSessionID);
+ }
+}
+
//static
bool LLFloaterIMSession::toggle(const LLUUID& session_id)
{
@@ -1123,9 +1155,10 @@ public:
mSessionID = session_id;
}
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- llinfos << "Error inviting all agents to session" << llendl;
+ llwarns << "Error inviting all agents to session [status:"
+ << statusNum << "]: " << content << llendl;
//throw something back to the viewer here?
}
diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h
index cb330bca0f..a0e0171b34 100644..100755
--- a/indra/newview/llfloaterimsession.h
+++ b/indra/newview/llfloaterimsession.h
@@ -65,8 +65,10 @@ public:
// LLView overrides
/*virtual*/ BOOL postBuild();
+ /*virtual*/ void setMinimized(BOOL b);
/*virtual*/ void setVisible(BOOL visible);
/*virtual*/ BOOL getVisible();
+ /*virtual*/ void setFocus(BOOL focus);
// Check typing timeout timer.
/*virtual*/ void draw();
diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp
index eab2ce7798..ce6e639305 100644..100755
--- a/indra/newview/llfloaterimsessiontab.cpp
+++ b/indra/newview/llfloaterimsessiontab.cpp
@@ -64,6 +64,8 @@ LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
, mHasVisibleBeenInitialized(false)
, mIsParticipantListExpanded(true)
, mChatLayoutPanel(NULL)
+ , mInputPanels(NULL)
+ , mChatLayoutPanelHeight(0)
{
setAutoFocus(FALSE);
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
@@ -132,6 +134,12 @@ void LLFloaterIMSessionTab::setVisible(BOOL visible)
LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container")->setVisible(true);
}
LLFloaterIMSessionTab::addToHost(mSessionID);
+ LLFloaterIMSessionTab* conversp = LLFloaterIMSessionTab::getConversation(mSessionID);
+
+ if (conversp && conversp->isNearbyChat() && gSavedPerAccountSettings.getBOOL("NearbyChatIsNotCollapsed"))
+ {
+ onCollapseToLine(this);
+ }
mInputButtonPanel->setVisible(isTornOff());
}
@@ -259,13 +267,15 @@ BOOL LLFloaterIMSessionTab::postBuild()
mInputEditor = getChild<LLChatEntry>("chat_editor");
mChatLayoutPanel = getChild<LLLayoutPanel>("chat_layout_panel");
+ mInputPanels = getChild<LLLayoutStack>("input_panels");
mInputEditor->setTextExpandedCallback(boost::bind(&LLFloaterIMSessionTab::reshapeChatLayoutPanel, this));
mInputEditor->setCommitOnFocusLost( FALSE );
mInputEditor->setPassDelete(TRUE);
mInputEditor->setFont(LLViewerChat::getChatFont());
- mInputEditorPad = mChatLayoutPanel->getRect().getHeight() - mInputEditor->getRect().getHeight();
+ mChatLayoutPanelHeight = mChatLayoutPanel->getRect().getHeight();
+ mInputEditorPad = mChatLayoutPanelHeight - mInputEditor->getRect().getHeight();
setOpenPositioning(LLFloaterEnums::POSITIONING_RELATIVE);
@@ -356,7 +366,7 @@ void LLFloaterIMSessionTab::draw()
// Restart the refresh timer
mRefreshTimer->setTimerExpirySec(REFRESH_INTERVAL);
}
-
+
LLTransientDockableFloater::draw();
}
@@ -698,10 +708,12 @@ void LLFloaterIMSessionTab::updateHeaderAndToolbar()
&& !mIsP2PChat;
mParticipantListAndHistoryStack->collapsePanel(mParticipantListPanel, !is_participant_list_visible);
+ mParticipantListPanel->setVisible(is_participant_list_visible);
// Display collapse image (<<) if the floater is hosted
// or if it is torn off but has an open control panel.
bool is_expanded = is_not_torn_off || is_participant_list_visible;
+
mExpandCollapseBtn->setImageOverlay(getString(is_expanded ? "collapse_icon" : "expand_icon"));
mExpandCollapseBtn->setToolTip(
is_not_torn_off?
@@ -741,9 +753,7 @@ void LLFloaterIMSessionTab::forceReshape()
void LLFloaterIMSessionTab::reshapeChatLayoutPanel()
{
- LLRect chat_layout_panel_rect = mChatLayoutPanel->getRect();
- LLRect input_rect = mInputEditor->getRect();
- mChatLayoutPanel->reshape(chat_layout_panel_rect.getWidth(), input_rect.getHeight() + mInputEditorPad, FALSE);
+ mChatLayoutPanel->reshape(mChatLayoutPanel->getRect().getWidth(), mInputEditor->getRect().getHeight() + mInputEditorPad, FALSE);
}
void LLFloaterIMSessionTab::showTranslationCheckbox(BOOL show)
@@ -818,14 +828,15 @@ void LLFloaterIMSessionTab::onSlide(LLFloaterIMSessionTab* self)
{
if (!self->mIsP2PChat)
{
+ // The state must toggle the collapsed state of the panel
bool should_be_expanded = self->mParticipantListPanel->isCollapsed();
- // Expand/collapse the participant list panel
- self->mParticipantListAndHistoryStack->collapsePanel(self->mParticipantListPanel, !should_be_expanded);
- self->mParticipantListPanel->setVisible(should_be_expanded);
+ // Update the expand/collapse flag of the participant list panel and save it
gSavedSettings.setBOOL("IMShowControlPanel", should_be_expanded);
self->mIsParticipantListExpanded = should_be_expanded;
- self->mExpandCollapseBtn->setImageOverlay(self->getString(should_be_expanded ? "collapse_icon" : "expand_icon"));
+
+ // Refresh for immediate feedback
+ self->refreshConversation();
}
}
@@ -841,6 +852,7 @@ void LLFloaterIMSessionTab::onCollapseToLine(LLFloaterIMSessionTab* self)
self->mExpandCollapseLineBtn->setImageOverlay(self->getString(expand ? "collapseline_icon" : "expandline_icon"));
self->mContentPanel->setVisible(!expand);
self->mToolbarPanel->setVisible(!expand);
+ self->mInputEditor->enableSingleLineMode(expand);
self->reshapeFloater(expand);
self->setMessagePaneExpanded(!expand);
}
@@ -853,20 +865,20 @@ void LLFloaterIMSessionTab::reshapeFloater(bool collapse)
if(collapse)
{
mFloaterHeight = floater_rect.getHeight();
- S32 height = mContentPanel->getRect().getHeight() + mToolbarPanel->getRect().getHeight();
+ S32 height = mContentPanel->getRect().getHeight() + mToolbarPanel->getRect().getHeight()
+ + mChatLayoutPanel->getRect().getHeight() - mChatLayoutPanelHeight + 2;
floater_rect.mTop -= height;
- enableResizeCtrls(true, true, false);
}
else
{
floater_rect.mTop = floater_rect.mBottom + mFloaterHeight;
- enableResizeCtrls(true, true, true);
-
}
+ enableResizeCtrls(true, true, !collapse);
+
+ saveCollapsedState();
setShape(floater_rect, true);
mBodyStack->updateLayout();
-
}
void LLFloaterIMSessionTab::restoreFloater()
@@ -885,6 +897,7 @@ void LLFloaterIMSessionTab::restoreFloater()
mBodyStack->updateLayout();
mExpandCollapseLineBtn->setImageOverlay(getString("expandline_icon"));
setMessagePaneExpanded(true);
+ saveCollapsedState();
enableResizeCtrls(true, true, true);
}
}
@@ -1060,6 +1073,14 @@ LLConversationItem* LLFloaterIMSessionTab::getCurSelectedViewModelItem()
return conversationItem;
}
+void LLFloaterIMSessionTab::saveCollapsedState()
+{
+ LLFloaterIMSessionTab* conversp = LLFloaterIMSessionTab::getConversation(mSessionID);
+ if(conversp->isNearbyChat())
+ {
+ gSavedPerAccountSettings.setBOOL("NearbyChatIsNotCollapsed", isMessagePaneExpanded());
+ }
+}
BOOL LLFloaterIMSessionTab::handleKeyHere(KEY key, MASK mask )
{
if(mask == MASK_ALT)
diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h
index f0899a3c09..302d5a8066 100644..100755
--- a/indra/newview/llfloaterimsessiontab.h
+++ b/indra/newview/llfloaterimsessiontab.h
@@ -101,6 +101,7 @@ public:
bool isMessagePaneExpanded(){return mMessagePaneExpanded;}
void setMessagePaneExpanded(bool expanded){mMessagePaneExpanded = expanded;}
void restoreFloater();
+ void saveCollapsedState();
protected:
@@ -174,17 +175,14 @@ protected:
LLChatHistory* mChatHistory;
LLChatEntry* mInputEditor;
LLLayoutPanel * mChatLayoutPanel;
- int mInputEditorPad; // padding between input field and chat history
-
+ LLLayoutStack * mInputPanels;
+
LLButton* mExpandCollapseLineBtn;
LLButton* mExpandCollapseBtn;
LLButton* mTearOffBtn;
LLButton* mCloseBtn;
LLButton* mGearBtn;
- S32 mFloaterHeight;
-
-
private:
// Handling selection and contextual menu
void doToSelected(const LLSD& userdata);
@@ -208,6 +206,10 @@ private:
bool mHasVisibleBeenInitialized;
LLTimer* mRefreshTimer; ///< Defines the rate at which refresh() is called.
+
+ S32 mInputEditorPad;
+ S32 mChatLayoutPanelHeight;
+ S32 mFloaterHeight;
};
diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp
index 5a1dfc99ab..5a1dfc99ab 100644..100755
--- a/indra/newview/llfloaterinspect.cpp
+++ b/indra/newview/llfloaterinspect.cpp
diff --git a/indra/newview/llfloaterinspect.h b/indra/newview/llfloaterinspect.h
index 44381eac96..44381eac96 100644..100755
--- a/indra/newview/llfloaterinspect.h
+++ b/indra/newview/llfloaterinspect.h
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 9b9b90e521..9b9b90e521 100644..100755
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h
index 823c4903b4..823c4903b4 100644..100755
--- a/indra/newview/llfloaterinventory.h
+++ b/indra/newview/llfloaterinventory.h
diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp
index d0c22d25f2..d0c22d25f2 100644..100755
--- a/indra/newview/llfloaterjoystick.cpp
+++ b/indra/newview/llfloaterjoystick.cpp
diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h
index dfdb108ff8..dfdb108ff8 100644..100755
--- a/indra/newview/llfloaterjoystick.h
+++ b/indra/newview/llfloaterjoystick.h
diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp
index 68b1770bb2..68b1770bb2 100644..100755
--- a/indra/newview/llfloaterlagmeter.cpp
+++ b/indra/newview/llfloaterlagmeter.cpp
diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h
index eef6955601..eef6955601 100644..100755
--- a/indra/newview/llfloaterlagmeter.h
+++ b/indra/newview/llfloaterlagmeter.h
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 0a30fef768..8290494c22 100644..100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -557,7 +557,7 @@ void LLPanelLandGeneral::refresh()
BOOL is_leased = (LLParcel::OS_LEASED == parcel->getOwnershipStatus());
BOOL region_xfer = FALSE;
if(regionp
- && !(regionp->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL))
+ && !(regionp->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL)))
{
region_xfer = TRUE;
}
@@ -2120,7 +2120,7 @@ void LLPanelLandOptions::refreshSearch()
LLViewerParcelMgr::isParcelModifiableByAgent(
parcel, GP_LAND_CHANGE_IDENTITY)
&& region
- && !(region->getRegionFlags() & REGION_FLAGS_BLOCK_PARCEL_SEARCH);
+ && !(region->getRegionFlag(REGION_FLAGS_BLOCK_PARCEL_SEARCH));
// There is a bug with this panel whereby the Show Directory bit can be
// slammed off by the Region based on an override. Since this data is cached
@@ -2873,7 +2873,7 @@ void LLPanelLandCovenant::refresh()
LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");
if (resellable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if (region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL))
{
resellable_clause->setText(getString("can_not_resell"));
}
@@ -2886,7 +2886,7 @@ void LLPanelLandCovenant::refresh()
LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");
if (changeable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)
+ if (region->getRegionFlag(REGION_FLAGS_ALLOW_PARCEL_CHANGES))
{
changeable_clause->setText(getString("can_change"));
}
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index 4f1c10274a..4f1c10274a 100644..100755
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
diff --git a/indra/newview/llfloaterlandholdings.cpp b/indra/newview/llfloaterlandholdings.cpp
index 98e9b74278..98e9b74278 100644..100755
--- a/indra/newview/llfloaterlandholdings.cpp
+++ b/indra/newview/llfloaterlandholdings.cpp
diff --git a/indra/newview/llfloaterlandholdings.h b/indra/newview/llfloaterlandholdings.h
index d1d510bb40..d1d510bb40 100644..100755
--- a/indra/newview/llfloaterlandholdings.h
+++ b/indra/newview/llfloaterlandholdings.h
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index 473e2938be..473e2938be 100644..100755
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
diff --git a/indra/newview/llfloatermap.h b/indra/newview/llfloatermap.h
index ff2fb20535..ff2fb20535 100644..100755
--- a/indra/newview/llfloatermap.h
+++ b/indra/newview/llfloatermap.h
diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp
index 4f2a6ec1b7..4f2a6ec1b7 100644..100755
--- a/indra/newview/llfloatermediasettings.cpp
+++ b/indra/newview/llfloatermediasettings.cpp
diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h
index 1d25530986..1d25530986 100644..100755
--- a/indra/newview/llfloatermediasettings.h
+++ b/indra/newview/llfloatermediasettings.h
diff --git a/indra/newview/llfloatermemleak.cpp b/indra/newview/llfloatermemleak.cpp
index 9edfe1e354..9edfe1e354 100644..100755
--- a/indra/newview/llfloatermemleak.cpp
+++ b/indra/newview/llfloatermemleak.cpp
diff --git a/indra/newview/llfloatermemleak.h b/indra/newview/llfloatermemleak.h
index 86416eaa07..86416eaa07 100644..100755
--- a/indra/newview/llfloatermemleak.h
+++ b/indra/newview/llfloatermemleak.h
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index ea839e6f5a..100f1d580b 100755
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -760,7 +760,6 @@ void LLFloaterModelPreview::onLODParamCommit(S32 lod, bool enforce_tri_limit)
void LLFloaterModelPreview::draw()
{
LLFloater::draw();
- LLRect r = getRect();
mModelPreview->update();
@@ -1684,7 +1683,6 @@ bool LLModelLoader::doLoadModel()
//If no skeleton, do a breadth-first search to get at specific joints
bool rootNode = false;
- bool skeletonWithNoRootNode = false;
//Need to test for a skeleton that does not have a root node
//This occurs when your instance controller does not have an associated scene
@@ -1695,10 +1693,6 @@ bool LLModelLoader::doLoadModel()
{
rootNode = true;
}
- else
- {
- skeletonWithNoRootNode = true;
- }
}
if ( !pSkeleton || !rootNode )
@@ -2502,7 +2496,7 @@ void LLModelLoader::loadTextures()
if(!material.mDiffuseMapFilename.empty())
{
material.mDiffuseMap =
- LLViewerTextureManager::getFetchedTextureFromUrl("file://" + material.mDiffuseMapFilename, TRUE, LLViewerTexture::BOOST_PREVIEW);
+ LLViewerTextureManager::getFetchedTextureFromUrl("file://" + material.mDiffuseMapFilename, FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_PREVIEW);
material.mDiffuseMap->setLoadedCallback(LLModelPreview::textureLoadedCallback, 0, TRUE, FALSE, mPreview, NULL, FALSE);
material.mDiffuseMap->forceToSaveRawImage(0, F32_MAX);
mNumOfFetchingTextures++ ;
@@ -5020,16 +5014,9 @@ BOOL LLModelPreview::render()
bool upload_skin = mFMP->childGetValue("upload_skin").asBoolean();
bool upload_joints = mFMP->childGetValue("upload_joints").asBoolean();
- bool resetJoints = false;
if ( upload_joints != mLastJointUpdate )
{
- if ( mLastJointUpdate )
- {
- resetJoints = true;
- }
-
mLastJointUpdate = upload_joints;
-
}
for (LLModelLoader::scene::iterator iter = mScene[mPreviewLOD].begin(); iter != mScene[mPreviewLOD].end(); ++iter)
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index e588418f7b..e588418f7b 100644..100755
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
diff --git a/indra/newview/llfloatermodeluploadbase.cpp b/indra/newview/llfloatermodeluploadbase.cpp
index 6d3800bfa4..6d3800bfa4 100644..100755
--- a/indra/newview/llfloatermodeluploadbase.cpp
+++ b/indra/newview/llfloatermodeluploadbase.cpp
diff --git a/indra/newview/llfloatermodeluploadbase.h b/indra/newview/llfloatermodeluploadbase.h
index a52bc28687..a52bc28687 100644..100755
--- a/indra/newview/llfloatermodeluploadbase.h
+++ b/indra/newview/llfloatermodeluploadbase.h
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index 27b1c3b9cd..27b1c3b9cd 100644..100755
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
diff --git a/indra/newview/llfloaternamedesc.h b/indra/newview/llfloaternamedesc.h
index 41643681ac..41643681ac 100644..100755
--- a/indra/newview/llfloaternamedesc.h
+++ b/indra/newview/llfloaternamedesc.h
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 4f35c325a8..4f35c325a8 100644..100755
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
diff --git a/indra/newview/llfloaternotificationsconsole.h b/indra/newview/llfloaternotificationsconsole.h
index 4e92b7d857..4e92b7d857 100644..100755
--- a/indra/newview/llfloaternotificationsconsole.h
+++ b/indra/newview/llfloaternotificationsconsole.h
diff --git a/indra/newview/llfloaterobjectweights.cpp b/indra/newview/llfloaterobjectweights.cpp
index 0862cd2897..0862cd2897 100644..100755
--- a/indra/newview/llfloaterobjectweights.cpp
+++ b/indra/newview/llfloaterobjectweights.cpp
diff --git a/indra/newview/llfloaterobjectweights.h b/indra/newview/llfloaterobjectweights.h
index 9a244573be..9a244573be 100644..100755
--- a/indra/newview/llfloaterobjectweights.h
+++ b/indra/newview/llfloaterobjectweights.h
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index 4bfef8b45f..4bfef8b45f 100644..100755
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
diff --git a/indra/newview/llfloateropenobject.h b/indra/newview/llfloateropenobject.h
index bf7fe69c65..bf7fe69c65 100644..100755
--- a/indra/newview/llfloateropenobject.h
+++ b/indra/newview/llfloateropenobject.h
diff --git a/indra/newview/llfloateroutbox.cpp b/indra/newview/llfloateroutbox.cpp
index 29a3e6ac3a..29a3e6ac3a 100644..100755
--- a/indra/newview/llfloateroutbox.cpp
+++ b/indra/newview/llfloateroutbox.cpp
diff --git a/indra/newview/llfloateroutbox.h b/indra/newview/llfloateroutbox.h
index a91d8c1139..a91d8c1139 100644..100755
--- a/indra/newview/llfloateroutbox.h
+++ b/indra/newview/llfloateroutbox.h
diff --git a/indra/newview/llfloaterpathfindingcharacters.cpp b/indra/newview/llfloaterpathfindingcharacters.cpp
index 69c9d94dfa..69c9d94dfa 100644..100755
--- a/indra/newview/llfloaterpathfindingcharacters.cpp
+++ b/indra/newview/llfloaterpathfindingcharacters.cpp
diff --git a/indra/newview/llfloaterpathfindingcharacters.h b/indra/newview/llfloaterpathfindingcharacters.h
index 4021f4f119..4021f4f119 100644..100755
--- a/indra/newview/llfloaterpathfindingcharacters.h
+++ b/indra/newview/llfloaterpathfindingcharacters.h
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp
index 298454724b..298454724b 100644..100755
--- a/indra/newview/llfloaterpathfindingconsole.cpp
+++ b/indra/newview/llfloaterpathfindingconsole.cpp
diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h
index e999e57741..e999e57741 100644..100755
--- a/indra/newview/llfloaterpathfindingconsole.h
+++ b/indra/newview/llfloaterpathfindingconsole.h
diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp
index 1e46d7a402..1e46d7a402 100644..100755
--- a/indra/newview/llfloaterpathfindinglinksets.cpp
+++ b/indra/newview/llfloaterpathfindinglinksets.cpp
diff --git a/indra/newview/llfloaterpathfindinglinksets.h b/indra/newview/llfloaterpathfindinglinksets.h
index 7149da9215..7149da9215 100644..100755
--- a/indra/newview/llfloaterpathfindinglinksets.h
+++ b/indra/newview/llfloaterpathfindinglinksets.h
diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp
index 20c1215bcb..20c1215bcb 100644..100755
--- a/indra/newview/llfloaterpathfindingobjects.cpp
+++ b/indra/newview/llfloaterpathfindingobjects.cpp
diff --git a/indra/newview/llfloaterpathfindingobjects.h b/indra/newview/llfloaterpathfindingobjects.h
index 4024e15fd6..4024e15fd6 100644..100755
--- a/indra/newview/llfloaterpathfindingobjects.h
+++ b/indra/newview/llfloaterpathfindingobjects.h
diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp
index b0009fd94f..b0009fd94f 100644..100755
--- a/indra/newview/llfloaterpay.cpp
+++ b/indra/newview/llfloaterpay.cpp
diff --git a/indra/newview/llfloaterpay.h b/indra/newview/llfloaterpay.h
index f322e5ef04..f322e5ef04 100644..100755
--- a/indra/newview/llfloaterpay.h
+++ b/indra/newview/llfloaterpay.h
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 80b55c3cbb..80b55c3cbb 100644..100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 6b65f4b0cd..6b65f4b0cd 100644..100755
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
diff --git a/indra/newview/llfloaterpostprocess.cpp b/indra/newview/llfloaterpostprocess.cpp
index 2d61109e17..2d61109e17 100644..100755
--- a/indra/newview/llfloaterpostprocess.cpp
+++ b/indra/newview/llfloaterpostprocess.cpp
diff --git a/indra/newview/llfloaterpostprocess.h b/indra/newview/llfloaterpostprocess.h
index 424a5fc8f0..424a5fc8f0 100644..100755
--- a/indra/newview/llfloaterpostprocess.h
+++ b/indra/newview/llfloaterpostprocess.h
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index a28af2101b..bbf88060c1 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -558,7 +558,7 @@ void LLFloaterPreference::apply()
LLViewerMedia::setCookiesEnabled(getChild<LLUICtrl>("cookies_enabled")->getValue());
- if (hasChild("web_proxy_enabled") &&hasChild("web_proxy_editor") && hasChild("web_proxy_port"))
+ if (hasChild("web_proxy_enabled", TRUE) &&hasChild("web_proxy_editor", TRUE) && hasChild("web_proxy_port", TRUE))
{
bool proxy_enable = getChild<LLUICtrl>("web_proxy_enabled")->getValue();
std::string proxy_address = getChild<LLUICtrl>("web_proxy_editor")->getValue();
@@ -1582,7 +1582,7 @@ void LLFloaterPreference::onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name)
{
std::string ctrl_name = name.asString();
- if ((ctrl_name =="" )|| !hasChild(ctrl_name, true))
+ if ((ctrl_name =="" )|| !hasChild(ctrl_name, TRUE))
return;
LLTextBox* text_box = getChild<LLTextBox>(name.asString());
@@ -1819,7 +1819,7 @@ LLPanelPreference::LLPanelPreference()
BOOL LLPanelPreference::postBuild()
{
////////////////////// PanelGeneral ///////////////////
- if (hasChild("display_names_check"))
+ if (hasChild("display_names_check", TRUE))
{
BOOL use_people_api = gSavedSettings.getBOOL("UsePeopleAPI");
LLCheckBoxCtrl* ctrl_display_name = getChild<LLCheckBoxCtrl>("display_names_check");
@@ -1831,7 +1831,7 @@ BOOL LLPanelPreference::postBuild()
}
////////////////////// PanelVoice ///////////////////
- if (hasChild("voice_unavailable"))
+ if (hasChild("voice_unavailable", TRUE))
{
BOOL voice_disabled = gSavedSettings.getBOOL("CmdLineDisableVoice");
getChildView("voice_unavailable")->setVisible( voice_disabled);
@@ -1840,7 +1840,7 @@ BOOL LLPanelPreference::postBuild()
//////////////////////PanelSkins ///////////////////
- if (hasChild("skin_selection"))
+ if (hasChild("skin_selection", TRUE))
{
LLFloaterPreference::refreshSkin(this);
@@ -1854,28 +1854,28 @@ BOOL LLPanelPreference::postBuild()
}
//////////////////////PanelPrivacy ///////////////////
- if (hasChild("media_enabled"))
+ if (hasChild("media_enabled", TRUE))
{
bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia");
getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled);
getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled);
}
- if (hasChild("music_enabled"))
+ if (hasChild("music_enabled", TRUE))
{
getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic"));
}
- if (hasChild("voice_call_friends_only_check"))
+ if (hasChild("voice_call_friends_only_check", TRUE))
{
getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
}
- if (hasChild("favorites_on_login_check"))
+ if (hasChild("favorites_on_login_check", TRUE))
{
getChild<LLCheckBoxCtrl>("favorites_on_login_check")->setCommitCallback(boost::bind(&showFavoritesOnLoginWarning, _1, _2));
}
//////////////////////PanelAdvanced ///////////////////
- if (hasChild("modifier_combo"))
+ if (hasChild("modifier_combo", TRUE))
{
//localizing if push2talk button is set to middle mouse
if (MIDDLE_MOUSE_CV == getChild<LLUICtrl>("modifier_combo")->getValue().asString())
@@ -1885,7 +1885,7 @@ BOOL LLPanelPreference::postBuild()
}
//////////////////////PanelSetup ///////////////////
- if (hasChild("max_bandwidth"))
+ if (hasChild("max_bandwidth"), TRUE)
{
mBandWidthUpdater = new LLPanelPreference::Updater(boost::bind(&handleBandwidthChanged, _1), BANDWIDTH_UPDATER_TIMEOUT);
gSavedSettings.getControl("ThrottleBandwidthKBPS")->getSignal()->connect(boost::bind(&LLPanelPreference::Updater::update, mBandWidthUpdater, _2));
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 22e80a21cb..22e80a21cb 100644..100755
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index 3f00ba39c7..3f00ba39c7 100644..100755
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
diff --git a/indra/newview/llfloaterproperties.h b/indra/newview/llfloaterproperties.h
index aa3fcec337..aa3fcec337 100644..100755
--- a/indra/newview/llfloaterproperties.h
+++ b/indra/newview/llfloaterproperties.h
diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp
index c7fab2573f..3a7ca17b73 100644..100755
--- a/indra/newview/llfloaterregiondebugconsole.cpp
+++ b/indra/newview/llfloaterregiondebugconsole.cpp
@@ -75,7 +75,7 @@ namespace
{
public:
/* virtual */
- void error(U32 status, const std::string& reason)
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
sConsoleReplySignal(UNABLE_TO_SEND_COMMAND);
}
diff --git a/indra/newview/llfloaterregiondebugconsole.h b/indra/newview/llfloaterregiondebugconsole.h
index fd3af4152e..fd3af4152e 100644..100755
--- a/indra/newview/llfloaterregiondebugconsole.h
+++ b/indra/newview/llfloaterregiondebugconsole.h
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index e6b76159a1..50c013a49d 100644..100755
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -318,7 +318,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
// extract message
std::string sim_name;
std::string sim_type = LLTrans::getString("land_type_unknown");
- U32 region_flags;
+ U64 region_flags;
U8 agent_limit;
F32 object_bonus_factor;
U8 sim_access;
@@ -328,7 +328,6 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
BOOL use_estate_sun;
F32 sun_hour;
msg->getString("RegionInfo", "SimName", sim_name);
- msg->getU32("RegionInfo", "RegionFlags", region_flags);
msg->getU8("RegionInfo", "MaxAgents", agent_limit);
msg->getF32("RegionInfo", "ObjectBonusFactor", object_bonus_factor);
msg->getU8("RegionInfo", "SimAccess", sim_access);
@@ -347,6 +346,17 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
LLTrans::findString(sim_type, sim_type); // try localizing sim product name
}
+ if (msg->has(_PREHASH_RegionInfo3))
+ {
+ msg->getU64("RegionInfo3", "RegionFlagsExtended", region_flags);
+ }
+ else
+ {
+ U32 flags = 0;
+ msg->getU32("RegionInfo", "RegionFlags", flags);
+ region_flags = flags;
+ }
+
// GENERAL PANEL
panel = tab->getChild<LLPanel>("General");
panel->getChild<LLUICtrl>("region_text")->setValue(LLSD(sim_name));
@@ -378,9 +388,9 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
panel = tab->getChild<LLPanel>("Debug");
panel->getChild<LLUICtrl>("region_text")->setValue(LLSD(sim_name) );
- panel->getChild<LLUICtrl>("disable_scripts_check")->setValue(LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_SCRIPTS)) );
- panel->getChild<LLUICtrl>("disable_collisions_check")->setValue(LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_COLLISIONS)) );
- panel->getChild<LLUICtrl>("disable_physics_check")->setValue(LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_PHYSICS)) );
+ panel->getChild<LLUICtrl>("disable_scripts_check")->setValue(LLSD((BOOL)((region_flags & REGION_FLAGS_SKIP_SCRIPTS) ? TRUE : FALSE )) );
+ panel->getChild<LLUICtrl>("disable_collisions_check")->setValue(LLSD((BOOL)((region_flags & REGION_FLAGS_SKIP_COLLISIONS) ? TRUE : FALSE )) );
+ panel->getChild<LLUICtrl>("disable_physics_check")->setValue(LLSD((BOOL)((region_flags & REGION_FLAGS_SKIP_PHYSICS) ? TRUE : FALSE )) );
panel->setCtrlsEnabled(allow_modify);
// TERRAIN PANEL
@@ -748,9 +758,10 @@ class ConsoleRequestResponder : public LLHTTPClient::Responder
{
public:
/*virtual*/
- void error(U32 status, const std::string& reason)
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "requesting mesh_rez_enabled failed" << llendl;
+ llwarns << "ConsoleRequestResponder error requesting mesh_rez_enabled [status:"
+ << status << "]: " << content << llendl;
}
};
@@ -760,9 +771,10 @@ class ConsoleUpdateResponder : public LLHTTPClient::Responder
{
public:
/* virtual */
- void error(U32 status, const std::string& reason)
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Updating mesh enabled region setting failed" << llendl;
+ llwarns << "ConsoleRequestResponder error updating mesh enabled region setting [status:"
+ << status << "]: " << content << llendl;
}
};
@@ -2239,10 +2251,10 @@ public:
}
// if we get an error response
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llinfos << "LLEstateChangeInfoResponder::error "
- << status << ": " << reason << llendl;
+ llinfos << "LLEstateChangeInfoResponder::error [status:"
+ << status << "]: " << content << llendl;
}
private:
LLHandle<LLPanel> mpPanel;
@@ -2318,7 +2330,7 @@ bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region)
LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");
if (resellable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if (region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL))
{
resellable_clause->setText(getString("can_not_resell"));
}
@@ -2331,7 +2343,7 @@ bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region)
LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");
if (changeable_clause)
{
- if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)
+ if (region->getRegionFlag(REGION_FLAGS_ALLOW_PARCEL_CHANGES))
{
changeable_clause->setText(getString("can_change"));
}
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index f0499f1903..f0499f1903 100644..100755
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index 0e4c7406c5..35b63c5480 100644..100755
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -111,9 +111,6 @@ LLFloaterReporter::LLFloaterReporter(const LLSD& key)
// static
void LLFloaterReporter::processRegionInfo(LLMessageSystem* msg)
{
- U32 region_flags;
- msg->getU32("RegionInfo", "RegionFlags", region_flags);
-
if ( LLFloaterReg::instanceVisible("reporter") )
{
LLNotificationsUtil::add("HelpReportAbuseEmailLL");
@@ -713,7 +710,7 @@ class LLUserReportResponder : public LLHTTPClient::Responder
public:
LLUserReportResponder(): LLHTTPClient::Responder() {}
- void error(U32 status, const std::string& reason)
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
// *TODO do some user messaging here
LLUploadDialog::modalUploadFinished();
@@ -783,8 +780,8 @@ void LLFloaterReporter::takeScreenshot()
// store in the image list so it doesn't try to fetch from the server
LLPointer<LLViewerFetchedTexture> image_in_list =
- LLViewerTextureManager::getFetchedTexture(mResourceDatap->mAssetInfo.mUuid, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::FETCHED_TEXTURE);
- image_in_list->createGLTexture(0, raw, 0, TRUE, LLViewerTexture::OTHER);
+ LLViewerTextureManager::getFetchedTexture(mResourceDatap->mAssetInfo.mUuid);
+ image_in_list->createGLTexture(0, raw, 0, TRUE, LLGLTexture::OTHER);
// the texture picker then uses that texture
LLTexturePicker* texture = getChild<LLTextureCtrl>("screenshot");
@@ -831,12 +828,7 @@ void LLFloaterReporter::uploadDoneCallback(const LLUUID &uuid, void *user_data,
return;
}
- EReportType report_type = UNKNOWN_REPORT;
- if (data->mPreferredLocation == LLResourceData::INVALID_LOCATION)
- {
- report_type = COMPLAINT_REPORT;
- }
- else
+ if (data->mPreferredLocation != LLResourceData::INVALID_LOCATION)
{
llwarns << "Unknown report type : " << data->mPreferredLocation << llendl;
}
diff --git a/indra/newview/llfloaterreporter.h b/indra/newview/llfloaterreporter.h
index d54e7f6ab0..d54e7f6ab0 100644..100755
--- a/indra/newview/llfloaterreporter.h
+++ b/indra/newview/llfloaterreporter.h
diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp
index b691db1049..6c17f62c1e 100644..100755
--- a/indra/newview/llfloaterscriptdebug.cpp
+++ b/indra/newview/llfloaterscriptdebug.cpp
@@ -105,7 +105,7 @@ void LLFloaterScriptDebug::addScriptLine(const std::string &utf8mesg, const std:
if (objectp)
{
- objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", TRUE, LLViewerTexture::BOOST_UI));
+ objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI));
floater_label = llformat("%s(%.0f, %.0f, %.0f)",
user_name.c_str(),
objectp->getPositionRegion().mV[VX],
diff --git a/indra/newview/llfloaterscriptdebug.h b/indra/newview/llfloaterscriptdebug.h
index 6d9d1eb500..6d9d1eb500 100644..100755
--- a/indra/newview/llfloaterscriptdebug.h
+++ b/indra/newview/llfloaterscriptdebug.h
diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp
index 8d8bba7b17..13cb3c2eb0 100644..100755
--- a/indra/newview/llfloaterscriptlimits.cpp
+++ b/indra/newview/llfloaterscriptlimits.cpp
@@ -221,9 +221,9 @@ void fetchScriptLimitsRegionInfoResponder::result(const LLSD& content)
}
}
-void fetchScriptLimitsRegionInfoResponder::error(U32 status, const std::string& reason)
+void fetchScriptLimitsRegionInfoResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Error from responder " << reason << llendl;
+ llwarns << "fetchScriptLimitsRegionInfoResponder error [status:" << status << "]: " << content << llendl;
}
void fetchScriptLimitsRegionSummaryResponder::result(const LLSD& content_ref)
@@ -308,9 +308,9 @@ void fetchScriptLimitsRegionSummaryResponder::result(const LLSD& content_ref)
}
}
-void fetchScriptLimitsRegionSummaryResponder::error(U32 status, const std::string& reason)
+void fetchScriptLimitsRegionSummaryResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Error from responder " << reason << llendl;
+ llwarns << "fetchScriptLimitsRegionSummaryResponder error [status:" << status << "]: " << content << llendl;
}
void fetchScriptLimitsRegionDetailsResponder::result(const LLSD& content_ref)
@@ -417,9 +417,9 @@ result (map)
}
}
-void fetchScriptLimitsRegionDetailsResponder::error(U32 status, const std::string& reason)
+void fetchScriptLimitsRegionDetailsResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Error from responder " << reason << llendl;
+ llwarns << "fetchScriptLimitsRegionDetailsResponder error [status:" << status << "]: " << content << llendl;
}
void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref)
@@ -513,9 +513,9 @@ void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref)
}
}
-void fetchScriptLimitsAttachmentInfoResponder::error(U32 status, const std::string& reason)
+void fetchScriptLimitsAttachmentInfoResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "Error from responder " << reason << llendl;
+ llwarns << "fetchScriptLimitsAttachmentInfoResponder error [status:" << status << "]: " << content << llendl;
}
///----------------------------------------------------------------------------
diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h
index 9bcfa5fe14..f8732ef94b 100644..100755
--- a/indra/newview/llfloaterscriptlimits.h
+++ b/indra/newview/llfloaterscriptlimits.h
@@ -89,7 +89,7 @@ class fetchScriptLimitsRegionInfoResponder: public LLHTTPClient::Responder
fetchScriptLimitsRegionInfoResponder(const LLSD& info) : mInfo(info) {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
public:
protected:
LLSD mInfo;
@@ -101,7 +101,7 @@ class fetchScriptLimitsRegionSummaryResponder: public LLHTTPClient::Responder
fetchScriptLimitsRegionSummaryResponder(const LLSD& info) : mInfo(info) {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
public:
protected:
LLSD mInfo;
@@ -113,7 +113,7 @@ class fetchScriptLimitsRegionDetailsResponder: public LLHTTPClient::Responder
fetchScriptLimitsRegionDetailsResponder(const LLSD& info) : mInfo(info) {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
public:
protected:
LLSD mInfo;
@@ -125,7 +125,7 @@ class fetchScriptLimitsAttachmentInfoResponder: public LLHTTPClient::Responder
fetchScriptLimitsAttachmentInfoResponder() {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
public:
protected:
};
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 2a946b1edf..2a946b1edf 100644..100755
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h
index 35b268e1b2..35b268e1b2 100644..100755
--- a/indra/newview/llfloatersearch.h
+++ b/indra/newview/llfloatersearch.h
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 0cb37dabe7..0cb37dabe7 100644..100755
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
diff --git a/indra/newview/llfloatersellland.h b/indra/newview/llfloatersellland.h
index 808e2ce4b0..808e2ce4b0 100644..100755
--- a/indra/newview/llfloatersellland.h
+++ b/indra/newview/llfloatersellland.h
diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp
index 07f5220ab7..07f5220ab7 100644..100755
--- a/indra/newview/llfloatersettingsdebug.cpp
+++ b/indra/newview/llfloatersettingsdebug.cpp
diff --git a/indra/newview/llfloatersettingsdebug.h b/indra/newview/llfloatersettingsdebug.h
index f07e0557e3..f07e0557e3 100644..100755
--- a/indra/newview/llfloatersettingsdebug.h
+++ b/indra/newview/llfloatersettingsdebug.h
diff --git a/indra/newview/llfloatersidepanelcontainer.cpp b/indra/newview/llfloatersidepanelcontainer.cpp
index 96b5c6b09b..5f9556a870 100644..100755
--- a/indra/newview/llfloatersidepanelcontainer.cpp
+++ b/indra/newview/llfloatersidepanelcontainer.cpp
@@ -28,10 +28,13 @@
#include "llfloaterreg.h"
#include "llfloatersidepanelcontainer.h"
+#include "llpaneleditwearable.h"
// newview includes
#include "llsidetraypanelcontainer.h"
#include "lltransientfloatermgr.h"
+#include "llpaneloutfitedit.h"
+#include "llsidepanelappearance.h"
//static
const std::string LLFloaterSidePanelContainer::sMainPanelName("main_panel");
@@ -54,6 +57,27 @@ void LLFloaterSidePanelContainer::onOpen(const LLSD& key)
getChild<LLPanel>(sMainPanelName)->onOpen(key);
}
+void LLFloaterSidePanelContainer::onClickCloseBtn()
+{
+ LLPanelOutfitEdit* panel_outfit_edit =
+ dynamic_cast<LLPanelOutfitEdit*>(LLFloaterSidePanelContainer::getPanel("appearance", "panel_outfit_edit"));
+ if (panel_outfit_edit)
+ {
+ LLFloater *parent = gFloaterView->getParentFloater(panel_outfit_edit);
+ if (parent == this )
+ {
+ LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance*>(getPanel("appearance"));
+ if ( panel_appearance )
+ {
+ panel_appearance->getWearable()->onClose();
+ panel_appearance->showOutfitsInventoryPanel();
+ }
+ }
+ }
+
+ LLFloater::onClickCloseBtn();
+}
+
LLPanel* LLFloaterSidePanelContainer::openChildPanel(const std::string& panel_name, const LLSD& params)
{
LLView* view = findChildView(panel_name, true);
diff --git a/indra/newview/llfloatersidepanelcontainer.h b/indra/newview/llfloatersidepanelcontainer.h
index 10d85867ce..491723471f 100644..100755
--- a/indra/newview/llfloatersidepanelcontainer.h
+++ b/indra/newview/llfloatersidepanelcontainer.h
@@ -51,6 +51,8 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void onClickCloseBtn();
+
LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params);
static void showPanel(const std::string& floater_name, const LLSD& key);
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index d8d62e5bbb..d8d62e5bbb 100644..100755
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h
index afe135fa40..afe135fa40 100644..100755
--- a/indra/newview/llfloatersnapshot.h
+++ b/indra/newview/llfloatersnapshot.h
diff --git a/indra/newview/llfloatersounddevices.cpp b/indra/newview/llfloatersounddevices.cpp
index 72c077d215..72c077d215 100644..100755
--- a/indra/newview/llfloatersounddevices.cpp
+++ b/indra/newview/llfloatersounddevices.cpp
diff --git a/indra/newview/llfloatersounddevices.h b/indra/newview/llfloatersounddevices.h
index f09ee3b069..f09ee3b069 100644..100755
--- a/indra/newview/llfloatersounddevices.h
+++ b/indra/newview/llfloatersounddevices.h
diff --git a/indra/newview/llfloaterspellchecksettings.cpp b/indra/newview/llfloaterspellchecksettings.cpp
index 5ecdd11918..5ecdd11918 100644..100755
--- a/indra/newview/llfloaterspellchecksettings.cpp
+++ b/indra/newview/llfloaterspellchecksettings.cpp
diff --git a/indra/newview/llfloaterspellchecksettings.h b/indra/newview/llfloaterspellchecksettings.h
index eded3a9133..eded3a9133 100644..100755
--- a/indra/newview/llfloaterspellchecksettings.h
+++ b/indra/newview/llfloaterspellchecksettings.h
diff --git a/indra/newview/llfloatertelehub.cpp b/indra/newview/llfloatertelehub.cpp
index b845fd132d..b845fd132d 100644..100755
--- a/indra/newview/llfloatertelehub.cpp
+++ b/indra/newview/llfloatertelehub.cpp
diff --git a/indra/newview/llfloatertelehub.h b/indra/newview/llfloatertelehub.h
index 9b9b11fb29..9b9b11fb29 100644..100755
--- a/indra/newview/llfloatertelehub.h
+++ b/indra/newview/llfloatertelehub.h
diff --git a/indra/newview/llfloatertestinspectors.cpp b/indra/newview/llfloatertestinspectors.cpp
index 8a1582569b..8a1582569b 100644..100755
--- a/indra/newview/llfloatertestinspectors.cpp
+++ b/indra/newview/llfloatertestinspectors.cpp
diff --git a/indra/newview/llfloatertestinspectors.h b/indra/newview/llfloatertestinspectors.h
index 1724a2e076..1724a2e076 100644..100755
--- a/indra/newview/llfloatertestinspectors.h
+++ b/indra/newview/llfloatertestinspectors.h
diff --git a/indra/newview/llfloatertestlistview.cpp b/indra/newview/llfloatertestlistview.cpp
index 97cf95baed..97cf95baed 100644..100755
--- a/indra/newview/llfloatertestlistview.cpp
+++ b/indra/newview/llfloatertestlistview.cpp
diff --git a/indra/newview/llfloatertestlistview.h b/indra/newview/llfloatertestlistview.h
index 0d4c7eb793..0d4c7eb793 100644..100755
--- a/indra/newview/llfloatertestlistview.h
+++ b/indra/newview/llfloatertestlistview.h
diff --git a/indra/newview/llfloatertexturefetchdebugger.cpp b/indra/newview/llfloatertexturefetchdebugger.cpp
index 9a23d99802..9a23d99802 100644..100755
--- a/indra/newview/llfloatertexturefetchdebugger.cpp
+++ b/indra/newview/llfloatertexturefetchdebugger.cpp
diff --git a/indra/newview/llfloatertexturefetchdebugger.h b/indra/newview/llfloatertexturefetchdebugger.h
index 096ad88e07..096ad88e07 100644..100755
--- a/indra/newview/llfloatertexturefetchdebugger.h
+++ b/indra/newview/llfloatertexturefetchdebugger.h
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 14923eec3c..14923eec3c 100644..100755
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h
index ecb0092a6f..ecb0092a6f 100644..100755
--- a/indra/newview/llfloatertools.h
+++ b/indra/newview/llfloatertools.h
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 7530c72dd2..7530c72dd2 100644..100755
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
diff --git a/indra/newview/llfloatertopobjects.h b/indra/newview/llfloatertopobjects.h
index 6edc46cf79..6edc46cf79 100644..100755
--- a/indra/newview/llfloatertopobjects.h
+++ b/indra/newview/llfloatertopobjects.h
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index a242b224cd..a242b224cd 100644..100755
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h
index 8921d11489..8921d11489 100644..100755
--- a/indra/newview/llfloatertos.h
+++ b/indra/newview/llfloatertos.h
diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index 324afe661f..324afe661f 100644..100755
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h
index 10aee0e6f5..10aee0e6f5 100644..100755
--- a/indra/newview/llfloatertoybox.h
+++ b/indra/newview/llfloatertoybox.h
diff --git a/indra/newview/llfloatertranslationsettings.cpp b/indra/newview/llfloatertranslationsettings.cpp
index 33f2c35239..33f2c35239 100644..100755
--- a/indra/newview/llfloatertranslationsettings.cpp
+++ b/indra/newview/llfloatertranslationsettings.cpp
diff --git a/indra/newview/llfloatertranslationsettings.h b/indra/newview/llfloatertranslationsettings.h
index b9bfd6265a..b9bfd6265a 100644..100755
--- a/indra/newview/llfloatertranslationsettings.h
+++ b/indra/newview/llfloatertranslationsettings.h
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index 15e0b89f6c..0106a1615d 100644..100755
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -855,7 +855,6 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID)
LLPanel* panel = LLUICtrlFactory::create<LLPanel>(panel_params); // create a new panel
panel->buildFromFile(path); // build it
- LLRect new_size = panel->getRect(); // get its rectangle
panel->setOrigin(2,2); // reset its origin point so it's not offset by -left or other XUI attributes
(*floaterp)->setTitle(path); // use the file name as its title, since panels have no guaranteed meaningful name attribute
panel->setUseBoundingRect(TRUE); // enable the use of its outer bounding rect (normally disabled because it's O(n) on the number of sub-elements)
diff --git a/indra/newview/llfloateruipreview.h b/indra/newview/llfloateruipreview.h
index 910ab7ebc9..910ab7ebc9 100644..100755
--- a/indra/newview/llfloateruipreview.h
+++ b/indra/newview/llfloateruipreview.h
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index e85d849c9a..e85d849c9a 100644..100755
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
diff --git a/indra/newview/llfloaterurlentry.h b/indra/newview/llfloaterurlentry.h
index dfb49fe5ac..dfb49fe5ac 100644..100755
--- a/indra/newview/llfloaterurlentry.h
+++ b/indra/newview/llfloaterurlentry.h
diff --git a/indra/newview/llfloatervoiceeffect.cpp b/indra/newview/llfloatervoiceeffect.cpp
index 227720bee3..227720bee3 100644..100755
--- a/indra/newview/llfloatervoiceeffect.cpp
+++ b/indra/newview/llfloatervoiceeffect.cpp
diff --git a/indra/newview/llfloatervoiceeffect.h b/indra/newview/llfloatervoiceeffect.h
index 4d432c46cc..4d432c46cc 100644..100755
--- a/indra/newview/llfloatervoiceeffect.h
+++ b/indra/newview/llfloatervoiceeffect.h
diff --git a/indra/newview/llfloatervoicevolume.cpp b/indra/newview/llfloatervoicevolume.cpp
index 38446e46df..38446e46df 100644..100755
--- a/indra/newview/llfloatervoicevolume.cpp
+++ b/indra/newview/llfloatervoicevolume.cpp
diff --git a/indra/newview/llfloatervoicevolume.h b/indra/newview/llfloatervoicevolume.h
index 8fcf7f250b..8fcf7f250b 100644..100755
--- a/indra/newview/llfloatervoicevolume.h
+++ b/indra/newview/llfloatervoicevolume.h
diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp
index 3fe2518de6..3fe2518de6 100644..100755
--- a/indra/newview/llfloaterwebcontent.cpp
+++ b/indra/newview/llfloaterwebcontent.cpp
diff --git a/indra/newview/llfloaterwebcontent.h b/indra/newview/llfloaterwebcontent.h
index cfc87e9015..cfc87e9015 100644..100755
--- a/indra/newview/llfloaterwebcontent.h
+++ b/indra/newview/llfloaterwebcontent.h
diff --git a/indra/newview/llfloaterwebprofile.cpp b/indra/newview/llfloaterwebprofile.cpp
index c41f6f148f..c41f6f148f 100644..100755
--- a/indra/newview/llfloaterwebprofile.cpp
+++ b/indra/newview/llfloaterwebprofile.cpp
diff --git a/indra/newview/llfloaterwebprofile.h b/indra/newview/llfloaterwebprofile.h
index 4c355e401b..4c355e401b 100644..100755
--- a/indra/newview/llfloaterwebprofile.h
+++ b/indra/newview/llfloaterwebprofile.h
diff --git a/indra/newview/llfloaterwhitelistentry.cpp b/indra/newview/llfloaterwhitelistentry.cpp
index 2a499f681b..2a499f681b 100644..100755
--- a/indra/newview/llfloaterwhitelistentry.cpp
+++ b/indra/newview/llfloaterwhitelistentry.cpp
diff --git a/indra/newview/llfloaterwhitelistentry.h b/indra/newview/llfloaterwhitelistentry.h
index deab49c523..deab49c523 100644..100755
--- a/indra/newview/llfloaterwhitelistentry.h
+++ b/indra/newview/llfloaterwhitelistentry.h
diff --git a/indra/newview/llfloaterwindowsize.cpp b/indra/newview/llfloaterwindowsize.cpp
index ec161018b8..ec161018b8 100644..100755
--- a/indra/newview/llfloaterwindowsize.cpp
+++ b/indra/newview/llfloaterwindowsize.cpp
diff --git a/indra/newview/llfloaterwindowsize.h b/indra/newview/llfloaterwindowsize.h
index a71e5e273c..a71e5e273c 100644..100755
--- a/indra/newview/llfloaterwindowsize.h
+++ b/indra/newview/llfloaterwindowsize.h
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h
index e3b83b2579..e3b83b2579 100644..100755
--- a/indra/newview/llfloaterworldmap.h
+++ b/indra/newview/llfloaterworldmap.h
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index 586965e5a0..586965e5a0 100644..100755
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
diff --git a/indra/newview/llfolderviewmodelinventory.h b/indra/newview/llfolderviewmodelinventory.h
index 890d03d1c9..890d03d1c9 100644..100755
--- a/indra/newview/llfolderviewmodelinventory.h
+++ b/indra/newview/llfolderviewmodelinventory.h
diff --git a/indra/newview/llfollowcam.cpp b/indra/newview/llfollowcam.cpp
index 47612fe25c..47612fe25c 100644..100755
--- a/indra/newview/llfollowcam.cpp
+++ b/indra/newview/llfollowcam.cpp
diff --git a/indra/newview/llfollowcam.h b/indra/newview/llfollowcam.h
index f4b7b2723a..f4b7b2723a 100644..100755
--- a/indra/newview/llfollowcam.h
+++ b/indra/newview/llfollowcam.h
diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp
index a4dfd94496..5c6ce9d311 100644..100755
--- a/indra/newview/llfriendcard.cpp
+++ b/indra/newview/llfriendcard.cpp
@@ -521,7 +521,7 @@ public:
void fire(const LLUUID& inv_item_id)
{
LLViewerInventoryItem* item = gInventory.getItem(inv_item_id);
-
+
if (item)
LLFriendCardsManager::instance().extractAvatarID(item->getCreatorUUID());
}
@@ -557,7 +557,7 @@ void LLFriendCardsManager::addFriendCardToInventory(const LLUUID& avatarID)
lldebugs << "Sent create_inventory_item for " << avatarID << ", " << name << llendl;
// TODO: mantipov: Is CreateFriendCardCallback really needed? Probably not
- LLPointer<LLInventoryCallback> cb = new CreateFriendCardCallback();
+ LLPointer<LLInventoryCallback> cb = new CreateFriendCardCallback;
create_inventory_callingcard(avatarID, findFriendAllSubfolderUUIDImpl(), cb);
}
diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h
index 48a9f70079..48a9f70079 100644..100755
--- a/indra/newview/llfriendcard.h
+++ b/indra/newview/llfriendcard.h
diff --git a/indra/newview/llgesturelistener.cpp b/indra/newview/llgesturelistener.cpp
index 2fff506681..2fff506681 100644..100755
--- a/indra/newview/llgesturelistener.cpp
+++ b/indra/newview/llgesturelistener.cpp
diff --git a/indra/newview/llgesturelistener.h b/indra/newview/llgesturelistener.h
index 6f59698ed1..6f59698ed1 100644..100755
--- a/indra/newview/llgesturelistener.h
+++ b/indra/newview/llgesturelistener.h
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index f307505ff8..9aa86297fc 100644..100755
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -338,7 +338,7 @@ void LLGestureMgr::deactivateGesture(const LLUUID& item_id)
gAgent.sendReliableMessage();
- LLAppearanceMgr::instance().removeCOFItemLinks(base_item_id, false);
+ LLAppearanceMgr::instance().removeCOFItemLinks(base_item_id);
notifyObservers();
}
diff --git a/indra/newview/llgesturemgr.h b/indra/newview/llgesturemgr.h
index 26a5924ec3..26a5924ec3 100644..100755
--- a/indra/newview/llgesturemgr.h
+++ b/indra/newview/llgesturemgr.h
diff --git a/indra/newview/llgiveinventory.cpp b/indra/newview/llgiveinventory.cpp
index 72bea8db10..72bea8db10 100644..100755
--- a/indra/newview/llgiveinventory.cpp
+++ b/indra/newview/llgiveinventory.cpp
diff --git a/indra/newview/llgiveinventory.h b/indra/newview/llgiveinventory.h
index 85bc1ed49c..85bc1ed49c 100644..100755
--- a/indra/newview/llgiveinventory.h
+++ b/indra/newview/llgiveinventory.h
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 1208c9378e..60fa53f491 100644..100755
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -79,10 +79,10 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask)
S32 top = llmax(y, mDragStartY);
S32 bottom =llmin(y, mDragStartY);
- left = llround((F32) left * LLUI::sGLScaleFactor.mV[VX]);
- right = llround((F32) right * LLUI::sGLScaleFactor.mV[VX]);
- top = llround((F32) top * LLUI::sGLScaleFactor.mV[VY]);
- bottom = llround((F32) bottom * LLUI::sGLScaleFactor.mV[VY]);
+ left = llround((F32) left * LLUI::getScaleFactor().mV[VX]);
+ right = llround((F32) right * LLUI::getScaleFactor().mV[VX]);
+ top = llround((F32) top * LLUI::getScaleFactor().mV[VY]);
+ bottom = llround((F32) bottom * LLUI::getScaleFactor().mV[VY]);
F32 old_far_plane = LLViewerCamera::getInstance()->getFar();
F32 old_near_plane = LLViewerCamera::getInstance()->getNear();
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
index a0f2918bd7..a0f2918bd7 100644..100755
--- a/indra/newview/llgroupactions.cpp
+++ b/indra/newview/llgroupactions.cpp
diff --git a/indra/newview/llgroupactions.h b/indra/newview/llgroupactions.h
index 3f9852f194..3f9852f194 100644..100755
--- a/indra/newview/llgroupactions.h
+++ b/indra/newview/llgroupactions.h
diff --git a/indra/newview/llgroupiconctrl.cpp b/indra/newview/llgroupiconctrl.cpp
index 188c4bcf25..2d0fc26c2a 100644..100755
--- a/indra/newview/llgroupiconctrl.cpp
+++ b/indra/newview/llgroupiconctrl.cpp
@@ -29,6 +29,7 @@
#include "llgroupiconctrl.h"
#include "llagent.h"
+#include "llviewertexture.h"
/*
#include "llavatarconstants.h"
#include "llcallingcard.h" // for LLAvatarTracker
diff --git a/indra/newview/llgroupiconctrl.h b/indra/newview/llgroupiconctrl.h
index f42593c9e1..f42593c9e1 100644..100755
--- a/indra/newview/llgroupiconctrl.h
+++ b/indra/newview/llgroupiconctrl.h
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
index aba3d74d87..aba3d74d87 100644..100755
--- a/indra/newview/llgrouplist.cpp
+++ b/indra/newview/llgrouplist.cpp
diff --git a/indra/newview/llgrouplist.h b/indra/newview/llgrouplist.h
index e96a720886..e96a720886 100644..100755
--- a/indra/newview/llgrouplist.h
+++ b/indra/newview/llgrouplist.h
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 81eb1d397e..cbd844cdac 100644..100755
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -1847,14 +1847,15 @@ public:
GroupMemberDataResponder() {}
virtual ~GroupMemberDataResponder() {}
virtual void result(const LLSD& pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
private:
LLSD mMemberData;
};
-void GroupMemberDataResponder::error(U32 pStatus, const std::string& pReason)
+void GroupMemberDataResponder::errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent)
{
- LL_WARNS("GrpMgr") << "Error receiving group member data." << LL_ENDL;
+ LL_WARNS("GrpMgr") << "Error receiving group member data [status:"
+ << pStatus << "]: " << pContent << LL_ENDL;
}
void GroupMemberDataResponder::result(const LLSD& content)
diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h
index d8c1ab7ef5..d8c1ab7ef5 100644..100755
--- a/indra/newview/llgroupmgr.h
+++ b/indra/newview/llgroupmgr.h
diff --git a/indra/newview/llhasheduniqueid.cpp b/indra/newview/llhasheduniqueid.cpp
new file mode 100644
index 0000000000..03192d3e61
--- /dev/null
+++ b/indra/newview/llhasheduniqueid.cpp
@@ -0,0 +1,55 @@
+/**
+ * @file llhasheduniqueid.cpp
+ * @brief retrieves an obfuscated unique id for the system
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "llhasheduniqueid.h"
+#include "llviewernetwork.h"
+#include "lluuid.h"
+#include "llmachineid.h"
+
+bool llHashedUniqueID(unsigned char id[MD5HEX_STR_SIZE])
+{
+ bool idIsUnique = true;
+ LLMD5 hashed_unique_id;
+ unsigned char unique_id[MAC_ADDRESS_BYTES];
+ if ( LLUUID::getNodeID(unique_id)
+ || LLMachineID::getUniqueID(unique_id, sizeof(unique_id))
+ )
+ {
+ hashed_unique_id.update(unique_id, MAC_ADDRESS_BYTES);
+ hashed_unique_id.finalize();
+ hashed_unique_id.hex_digest((char*)id);
+ LL_INFOS_ONCE("AppInit") << "System ID " << id << LL_ENDL;
+ }
+ else
+ {
+ idIsUnique = false;
+ memcpy(id,"00000000000000000000000000000000", MD5HEX_STR_SIZE);
+ LL_WARNS_ONCE("AppInit") << "Failed to get an id; cannot uniquely identify this machine." << LL_ENDL;
+ }
+ return idIsUnique;
+}
+
diff --git a/indra/newview/llhasheduniqueid.h b/indra/newview/llhasheduniqueid.h
new file mode 100644
index 0000000000..8ef706c1f3
--- /dev/null
+++ b/indra/newview/llhasheduniqueid.h
@@ -0,0 +1,34 @@
+/**
+ * @file llhasheduniqueid.h
+ * @brief retrieves obfuscated but unique id for the system
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+#ifndef LL_LLHASHEDUNIQUEID_H
+#define LL_LLHASHEDUNIQUEID_H
+#include "llmd5.h"
+
+/// Get an obfuscated identifier for this system
+bool llHashedUniqueID(unsigned char id[MD5HEX_STR_SIZE]);
+///< @returns true if the id is considered valid (if false, the id is all zeros)
+
+#endif // LL_LLHASHEDUNIQUEID_H
diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp
index 197408b40e..197408b40e 100644..100755
--- a/indra/newview/llhints.cpp
+++ b/indra/newview/llhints.cpp
diff --git a/indra/newview/llhints.h b/indra/newview/llhints.h
index ebffe561b9..ebffe561b9 100644..100755
--- a/indra/newview/llhints.h
+++ b/indra/newview/llhints.h
diff --git a/indra/newview/llhomelocationresponder.cpp b/indra/newview/llhomelocationresponder.cpp
index 4850d18d99..37428c4a44 100644..100755
--- a/indra/newview/llhomelocationresponder.cpp
+++ b/indra/newview/llhomelocationresponder.cpp
@@ -97,7 +97,7 @@ void LLHomeLocationResponder::result( const LLSD& content )
}
}
-void LLHomeLocationResponder::error( U32 status, const std::string& reason )
+void LLHomeLocationResponder::errorWithContent( U32 status, const std::string& reason, const LLSD& content )
{
- llinfos << "received error(" << reason << ")" << llendl;
+ llwarns << "LLHomeLocationResponder error [status:" << status << "]: " << content << llendl;
}
diff --git a/indra/newview/llhomelocationresponder.h b/indra/newview/llhomelocationresponder.h
index d640b9c894..9bf4b12c4e 100644..100755
--- a/indra/newview/llhomelocationresponder.h
+++ b/indra/newview/llhomelocationresponder.h
@@ -36,7 +36,7 @@
class LLHomeLocationResponder : public LLHTTPClient::Responder
{
virtual void result( const LLSD& content );
- virtual void error( U32 status, const std::string& reason );
+ virtual void errorWithContent( U32 status, const std::string& reason, const LLSD& content );
};
#endif
diff --git a/indra/newview/llhudeffect.cpp b/indra/newview/llhudeffect.cpp
index 159ec6c803..159ec6c803 100644..100755
--- a/indra/newview/llhudeffect.cpp
+++ b/indra/newview/llhudeffect.cpp
diff --git a/indra/newview/llhudeffect.h b/indra/newview/llhudeffect.h
index 7c825e3f3d..7c825e3f3d 100644..100755
--- a/indra/newview/llhudeffect.h
+++ b/indra/newview/llhudeffect.h
diff --git a/indra/newview/llhudeffectbeam.cpp b/indra/newview/llhudeffectbeam.cpp
index 8abad3d292..8abad3d292 100644..100755
--- a/indra/newview/llhudeffectbeam.cpp
+++ b/indra/newview/llhudeffectbeam.cpp
diff --git a/indra/newview/llhudeffectbeam.h b/indra/newview/llhudeffectbeam.h
index fdee5178af..fdee5178af 100644..100755
--- a/indra/newview/llhudeffectbeam.h
+++ b/indra/newview/llhudeffectbeam.h
diff --git a/indra/newview/llhudeffectblob.cpp b/indra/newview/llhudeffectblob.cpp
index c909551b51..c909551b51 100644..100755
--- a/indra/newview/llhudeffectblob.cpp
+++ b/indra/newview/llhudeffectblob.cpp
diff --git a/indra/newview/llhudeffectblob.h b/indra/newview/llhudeffectblob.h
index ce3e8500fc..ce3e8500fc 100644..100755
--- a/indra/newview/llhudeffectblob.h
+++ b/indra/newview/llhudeffectblob.h
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp
index bc3b220dc0..9dde65ceb6 100644..100755
--- a/indra/newview/llhudeffectlookat.cpp
+++ b/indra/newview/llhudeffectlookat.cpp
@@ -636,7 +636,7 @@ bool LLHUDEffectLookAt::calcTargetPosition()
}
else
{
- target_rot = target_av->mRoot.getWorldRotation();
+ target_rot = target_av->mRoot->getWorldRotation();
}
}
else // target obj is not an avatar
diff --git a/indra/newview/llhudeffectlookat.h b/indra/newview/llhudeffectlookat.h
index fd057715b6..fd057715b6 100644..100755
--- a/indra/newview/llhudeffectlookat.h
+++ b/indra/newview/llhudeffectlookat.h
diff --git a/indra/newview/llhudeffectpointat.cpp b/indra/newview/llhudeffectpointat.cpp
index 114a633821..114a633821 100644..100755
--- a/indra/newview/llhudeffectpointat.cpp
+++ b/indra/newview/llhudeffectpointat.cpp
diff --git a/indra/newview/llhudeffectpointat.h b/indra/newview/llhudeffectpointat.h
index 6200b68cbc..6200b68cbc 100644..100755
--- a/indra/newview/llhudeffectpointat.h
+++ b/indra/newview/llhudeffectpointat.h
diff --git a/indra/newview/llhudeffecttrail.cpp b/indra/newview/llhudeffecttrail.cpp
index 39b526c1b5..39b526c1b5 100644..100755
--- a/indra/newview/llhudeffecttrail.cpp
+++ b/indra/newview/llhudeffecttrail.cpp
diff --git a/indra/newview/llhudeffecttrail.h b/indra/newview/llhudeffecttrail.h
index 6f5a328c63..6f5a328c63 100644..100755
--- a/indra/newview/llhudeffecttrail.h
+++ b/indra/newview/llhudeffecttrail.h
diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp
index 7e1025c41b..7e1025c41b 100644..100755
--- a/indra/newview/llhudicon.cpp
+++ b/indra/newview/llhudicon.cpp
diff --git a/indra/newview/llhudicon.h b/indra/newview/llhudicon.h
index 644daa0299..644daa0299 100644..100755
--- a/indra/newview/llhudicon.h
+++ b/indra/newview/llhudicon.h
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp
index 8f14b53db0..8f14b53db0 100644..100755
--- a/indra/newview/llhudmanager.cpp
+++ b/indra/newview/llhudmanager.cpp
diff --git a/indra/newview/llhudmanager.h b/indra/newview/llhudmanager.h
index 09e79acbfc..09e79acbfc 100644..100755
--- a/indra/newview/llhudmanager.h
+++ b/indra/newview/llhudmanager.h
diff --git a/indra/newview/llhudnametag.cpp b/indra/newview/llhudnametag.cpp
index 3336097955..3336097955 100644..100755
--- a/indra/newview/llhudnametag.cpp
+++ b/indra/newview/llhudnametag.cpp
diff --git a/indra/newview/llhudnametag.h b/indra/newview/llhudnametag.h
index 72647d5b26..72647d5b26 100644..100755
--- a/indra/newview/llhudnametag.h
+++ b/indra/newview/llhudnametag.h
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index 95d57d08d8..95d57d08d8 100644..100755
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h
index 2f7a98c86c..2f7a98c86c 100644..100755
--- a/indra/newview/llhudobject.h
+++ b/indra/newview/llhudobject.h
diff --git a/indra/newview/llhudrender.cpp b/indra/newview/llhudrender.cpp
index dff310ecf9..dff310ecf9 100644..100755
--- a/indra/newview/llhudrender.cpp
+++ b/indra/newview/llhudrender.cpp
diff --git a/indra/newview/llhudrender.h b/indra/newview/llhudrender.h
index b541cd5036..b541cd5036 100644..100755
--- a/indra/newview/llhudrender.h
+++ b/indra/newview/llhudrender.h
diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp
index 579b6008ae..3c6bcd9829 100644..100755
--- a/indra/newview/llhudtext.cpp
+++ b/indra/newview/llhudtext.cpp
@@ -186,11 +186,8 @@ void LLHUDText::renderText()
LLViewerCamera::getInstance()->getPixelVectors(mPositionAgent, y_pixel_vec, x_pixel_vec);
}
- LLVector2 border_scale_vec((F32)border_width / (F32)imagep->getTextureWidth(), (F32)border_height / (F32)imagep->getTextureHeight());
LLVector3 width_vec = mWidth * x_pixel_vec;
LLVector3 height_vec = mHeight * y_pixel_vec;
- LLVector3 scaled_border_width = (F32)llfloor(border_scale * (F32)border_width) * x_pixel_vec;
- LLVector3 scaled_border_height = (F32)llfloor(border_scale * (F32)border_height) * y_pixel_vec;
mRadius = (width_vec + height_vec).magVec() * 0.5f;
@@ -440,7 +437,7 @@ LLVector2 LLHUDText::updateScreenPos(LLVector2 &offset)
LLVector3 x_pixel_vec;
LLVector3 y_pixel_vec;
LLViewerCamera::getInstance()->getPixelVectors(mPositionAgent, y_pixel_vec, x_pixel_vec);
- LLVector3 world_pos = mPositionAgent + (offset.mV[VX] * x_pixel_vec) + (offset.mV[VY] * y_pixel_vec);
+// LLVector3 world_pos = mPositionAgent + (offset.mV[VX] * x_pixel_vec) + (offset.mV[VY] * y_pixel_vec);
// if (!LLViewerCamera::getInstance()->projectPosAgentToScreen(world_pos, screen_pos, FALSE) && mVisibleOffScreen)
// {
// // bubble off-screen, so find a spot for it along screen edge
diff --git a/indra/newview/llhudtext.h b/indra/newview/llhudtext.h
index 36015d51f0..36015d51f0 100644..100755
--- a/indra/newview/llhudtext.h
+++ b/indra/newview/llhudtext.h
diff --git a/indra/newview/llhudview.cpp b/indra/newview/llhudview.cpp
index 9a63e99357..9a63e99357 100644..100755
--- a/indra/newview/llhudview.cpp
+++ b/indra/newview/llhudview.cpp
diff --git a/indra/newview/llhudview.h b/indra/newview/llhudview.h
index 6689554706..6689554706 100644..100755
--- a/indra/newview/llhudview.h
+++ b/indra/newview/llhudview.h
diff --git a/indra/newview/llimhandler.cpp b/indra/newview/llimhandler.cpp
index c2b29f36e8..c2b29f36e8 100644..100755
--- a/indra/newview/llimhandler.cpp
+++ b/indra/newview/llimhandler.cpp
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index c64ecdc47a..59272d721f 100644..100755
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -394,9 +394,10 @@ public:
mSessionID = session_id;
}
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- llinfos << "Error inviting all agents to session" << llendl;
+ llwarns << "Error inviting all agents to session [status:"
+ << statusNum << "]: " << content << llendl;
//throw something back to the viewer here?
}
diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h
index c5930b56f7..c5930b56f7 100644..100755
--- a/indra/newview/llimpanel.h
+++ b/indra/newview/llimpanel.h
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 8c862548bb..2c20409381 100644..100755
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -160,163 +160,157 @@ static void on_avatar_name_cache_toast(const LLUUID& agent_id,
void on_new_message(const LLSD& msg)
{
- std::string action;
+ std::string user_preferences;
LLUUID participant_id = msg["from_id"].asUUID();
LLUUID session_id = msg["session_id"].asUUID();
LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(session_id);
- // determine action for this session
+ // do not show notification which goes from agent
+ if (gAgent.getID() == participant_id)
+ {
+ return;
+ }
+
+ // determine state of conversations floater
+ enum {CLOSED, NOT_ON_TOP, ON_TOP, ON_TOP_AND_ITEM_IS_SELECTED} conversations_floater_status;
+
+
+
+ LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
+ LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(session_id);
+
+ if (!LLFloater::isVisible(im_box) || im_box->isMinimized())
+ {
+ conversations_floater_status = CLOSED;
+ }
+ else if (!im_box->hasFocus() &&
+ !(session_floater && LLFloater::isVisible(session_floater)
+ && !session_floater->isMinimized() && session_floater->hasFocus()))
+ {
+ conversations_floater_status = NOT_ON_TOP;
+ }
+ else if (im_box->getSelectedSession() != session_id)
+ {
+ conversations_floater_status = ON_TOP;
+ }
+ else
+ {
+ conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
+ }
+ // determine user prefs for this session
if (session_id.isNull())
{
- action = gSavedSettings.getString("NotificationNearbyChatOptions");
+ user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
}
else if(session->isP2PSessionType())
{
if (LLAvatarTracker::instance().isBuddy(participant_id))
{
- action = gSavedSettings.getString("NotificationFriendIMOptions");
+ user_preferences = gSavedSettings.getString("NotificationFriendIMOptions");
}
else
{
- action = gSavedSettings.getString("NotificationNonFriendIMOptions");
+ user_preferences = gSavedSettings.getString("NotificationNonFriendIMOptions");
}
}
else if(session->isAdHocSessionType())
{
- action = gSavedSettings.getString("NotificationConferenceIMOptions");
+ user_preferences = gSavedSettings.getString("NotificationConferenceIMOptions");
}
else if(session->isGroupSessionType())
{
- action = gSavedSettings.getString("NotificationGroupChatOptions");
+ user_preferences = gSavedSettings.getString("NotificationGroupChatOptions");
}
- // do not show notification which goes from agent
- if (gAgent.getID() == participant_id)
- {
- return;
- }
-
- // execution of the action
-
- LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
- LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(session_id);
-
- if (im_box->isFrontmost() && im_box->getSelectedSession() == session_id
- && !(session_floater->getHost() ? im_box->isMinimized() : session_floater->isMinimized()))
- {
- return;
- }
-
- //session floater not focused (visible or not)
- bool session_floater_not_focused = session_floater && !session_floater->hasFocus();
-
- //conv. floater is closed
- bool conversation_floater_is_closed =
- !( im_box
- && im_box->isInVisibleChain()
- && !im_box->isMinimized());
-
- //conversation floater not focused (visible or not)
- bool conversation_floater_not_focused =
- conversation_floater_is_closed || !im_box->hasFocus();
- // sess. floater is open
- bool session_floater_is_open =
- session_floater
- && session_floater->isInVisibleChain()
- && !session_floater->isMinimized()
- && !(session_floater->getHost() && session_floater->getHost()->isMinimized());
-
- bool conversation_floater_collapsed = !session_floater->isMessagePaneExpanded();
- if (("toast" == action && !session_floater_is_open) || conversation_floater_collapsed)
- {
- //User is not focused on conversation containing the message
- if(session_floater_not_focused || conversation_floater_collapsed)
- {
- if(!LLMuteList::getInstance()->isMuted(participant_id))
- {
- im_box->flashConversationItemWidget(session_id, true);
- }
- //The conversation floater isn't focused/open
- if(conversation_floater_not_focused || conversation_floater_collapsed)
- {
- if(!LLMuteList::getInstance()->isMuted(participant_id)
- && !gAgent.isDoNotDisturb())
- {
- gToolBarView->flashCommand(LLCommandId("chat"), true);
- }
-
- //Show IM toasts (upper right toasts)
- // Skip toasting for system messages and for nearby chat
- if(session_id.notNull() && participant_id.notNull())
- {
- LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
- }
- }
- }
- }
+ // actions:
- else if ("flash" == action)
+ // 0. nothing - exit
+ if (("none" == user_preferences ||
+ ON_TOP_AND_ITEM_IS_SELECTED == conversations_floater_status)
+ && session_floater->isMessagePaneExpanded())
{
- if (!gAgent.isDoNotDisturb())
- {
- im_box->flashConversationItemWidget(session_id, true);
- if(conversation_floater_not_focused)
- {
- //User is not focused on conversation containing the message
- gToolBarView->flashCommand(LLCommandId("chat"), true);
- }
- }
- else if(session_id.notNull() && participant_id.notNull())
- {
- //If a DND message, allow notification to be stored so upon DND exit
- //useMostItrusiveIMNotification will be called to notify user a message exists
- LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
- }
+ return;
}
- else if("openconversations" == action)
+ // 1. open floater and [optional] surface it
+ if ("openconversations" == user_preferences &&
+ (CLOSED == conversations_floater_status
+ || NOT_ON_TOP == conversations_floater_status))
{
- //User is not focused on conversation containing the message
- if(session_floater_not_focused)
+ if(!gAgent.isDoNotDisturb())
{
- //Flash line item
- im_box->flashConversationItemWidget(session_id, true);
-
- if(!gAgent.isDoNotDisturb())
- {
- //Surface conversations floater
- LLFloaterReg::showInstance("im_container");
- im_box->collapseMessagesPane(false);
- if (session_floater)
+ // Open conversations floater
+ LLFloaterReg::showInstance("im_container");
+ im_box->collapseMessagesPane(false);
+ if (session_floater)
+ {
+ if (session_floater->getHost())
{
- if (session_floater->getHost())
+ if (NULL != im_box && im_box->isMinimized())
{
- if (NULL != im_box && im_box->isMinimized())
- {
- LLFloater::onClickMinimize(im_box);
- }
+ LLFloater::onClickMinimize(im_box);
}
- else
+ }
+ else
+ {
+ if (session_floater->isMinimized())
{
- if (session_floater->isMinimized())
- {
- LLFloater::onClickMinimize(session_floater);
- }
+ LLFloater::onClickMinimize(session_floater);
}
}
}
-
- //If in DND mode, allow notification to be stored so upon DND exit
+ }
+ else
+ {
+ //If in DND mode, allow notification to be stored so upon DND exit
//useMostItrusiveIMNotification will be called to notify user a message exists
- if(session_id.notNull()
- && participant_id.notNull()
- && gAgent.isDoNotDisturb()
- && !session_floater_is_open)
+ if(session_id.notNull()
+ && participant_id.notNull()
+ && !session_floater->isShown())
{
LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
- }
- }
+ }
+ }
+ }
+
+ // 2. Flash line item
+ if ("openconversations" == user_preferences
+ || ON_TOP == conversations_floater_status
+ || ("toast" == user_preferences && ON_TOP != conversations_floater_status)
+ || ("flash" == user_preferences && CLOSED == conversations_floater_status))
+ {
+ if(!LLMuteList::getInstance()->isMuted(participant_id))
+ {
+ im_box->flashConversationItemWidget(session_id, true);
+ }
+ }
+
+ // 3. Flash FUI button
+ if (("toast" == user_preferences || "flash" == user_preferences) &&
+ (CLOSED == conversations_floater_status
+ || NOT_ON_TOP == conversations_floater_status))
+ {
+ if(!LLMuteList::getInstance()->isMuted(participant_id)
+ && !gAgent.isDoNotDisturb())
+ {
+ gToolBarView->flashCommand(LLCommandId("chat"), true);
+ }
+ }
+
+ // 4. Toast
+ if ((("toast" == user_preferences) &&
+ (CLOSED == conversations_floater_status
+ || NOT_ON_TOP == conversations_floater_status))
+ || !session_floater->isMessagePaneExpanded())
+
+ {
+ //Show IM toasts (upper right toasts)
+ // Skip toasting for system messages and for nearby chat
+ if(session_id.notNull() && participant_id.notNull())
+ {
+ LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
+ }
}
}
@@ -1406,7 +1400,7 @@ public:
mAgents = agents_to_invite;
}
- virtual void error(U32 statusNum, const std::string& reason)
+ virtual void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
//try an "old school" way.
if ( statusNum == 400 )
@@ -1418,6 +1412,9 @@ public:
mAgents);
}
+ llwarns << "LLStartConferenceChatResponder error [status:"
+ << statusNum << "]: " << content << llendl;
+
//else throw an error back to the client?
//in theory we should have just have these error strings
//etc. set up in this file as opposed to the IMMgr,
@@ -1563,8 +1560,10 @@ public:
}
}
- void error(U32 statusNum, const std::string& reason)
- {
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
+ {
+ llwarns << "LLViewerChatterBoxInvitationAcceptResponder error [status:"
+ << statusNum << "]: " << content << llendl;
//throw something back to the viewer here?
if ( gIMMgr )
{
@@ -2852,6 +2851,8 @@ LLUUID LLIMMgr::addSession(
//we don't need to show notes about online/offline, mute/unmute users' statuses for existing sessions
if (!new_session) return session_id;
+ llinfos << "LLIMMgr::addSession, new session added, name = " << name << ", session id = " << session_id << llendl;
+
//Per Plan's suggestion commented "explicit offline status warning" out to make Dessie happier (see EXT-3609)
//*TODO After February 2010 remove this commented out line if no one will be missing that warning
//noteOfflineUsers(session_id, floater, ids);
@@ -2887,6 +2888,8 @@ void LLIMMgr::removeSession(const LLUUID& session_id)
LLIMModel::getInstance()->clearSession(session_id);
+ llinfos << "LLIMMgr::removeSession, session removed, session id = " << session_id << llendl;
+
notifyObserverSessionRemoved(session_id);
}
@@ -2904,7 +2907,6 @@ void LLIMMgr::inviteToSession(
// 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);
@@ -2927,13 +2929,11 @@ void LLIMMgr::inviteToSession(
//else it's an ad-hoc
//and a voice ad-hoc
notify_box_type = "VoiceInviteAdHoc";
- ad_hoc_invite = TRUE;
voice_invite = TRUE;
}
else if ( inv_type == INVITATION_TYPE_IMMEDIATE )
{
notify_box_type = "InviteAdHoc";
- ad_hoc_invite = TRUE;
}
LLSD payload;
@@ -3518,10 +3518,9 @@ public:
}
std::string buffer = saved + message;
- BOOL is_this_agent = FALSE;
if(from_id == gAgentID)
{
- is_this_agent = TRUE;
+ return;
}
gIMMgr->addMessage(
session_id,
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index da6039a3ae..da6039a3ae 100644..100755
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
diff --git a/indra/newview/llinspect.cpp b/indra/newview/llinspect.cpp
index 14382e82d7..14382e82d7 100644..100755
--- a/indra/newview/llinspect.cpp
+++ b/indra/newview/llinspect.cpp
diff --git a/indra/newview/llinspect.h b/indra/newview/llinspect.h
index 1f6aafc7bd..1f6aafc7bd 100644..100755
--- a/indra/newview/llinspect.h
+++ b/indra/newview/llinspect.h
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 1e15dc832c..9c6db3676f 100644..100755
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -292,6 +292,11 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data)
delete mPropertiesRequest;
mPropertiesRequest = NULL;
}
+/*
+prep#
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+ llwarns << "MuteVoiceResponder error [status:" << status << "]: " << content << llendl;
+ */
void LLInspectAvatar::updateVolumeSlider()
{
diff --git a/indra/newview/llinspectavatar.h b/indra/newview/llinspectavatar.h
index 4329504b62..4329504b62 100644..100755
--- a/indra/newview/llinspectavatar.h
+++ b/indra/newview/llinspectavatar.h
diff --git a/indra/newview/llinspectgroup.cpp b/indra/newview/llinspectgroup.cpp
index 76617b55bf..76617b55bf 100644..100755
--- a/indra/newview/llinspectgroup.cpp
+++ b/indra/newview/llinspectgroup.cpp
diff --git a/indra/newview/llinspectgroup.h b/indra/newview/llinspectgroup.h
index 8b135a465e..8b135a465e 100644..100755
--- a/indra/newview/llinspectgroup.h
+++ b/indra/newview/llinspectgroup.h
diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp
index a7b93b8030..a7b93b8030 100644..100755
--- a/indra/newview/llinspectobject.cpp
+++ b/indra/newview/llinspectobject.cpp
diff --git a/indra/newview/llinspectobject.h b/indra/newview/llinspectobject.h
index 9362139458..9362139458 100644..100755
--- a/indra/newview/llinspectobject.h
+++ b/indra/newview/llinspectobject.h
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index a12ec390af..a12ec390af 100644..100755
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
diff --git a/indra/newview/llinspectremoteobject.h b/indra/newview/llinspectremoteobject.h
index 173efd1c0c..173efd1c0c 100644..100755
--- a/indra/newview/llinspectremoteobject.h
+++ b/indra/newview/llinspectremoteobject.h
diff --git a/indra/newview/llinspecttoast.cpp b/indra/newview/llinspecttoast.cpp
index f4fe5dec01..f4fe5dec01 100644..100755
--- a/indra/newview/llinspecttoast.cpp
+++ b/indra/newview/llinspecttoast.cpp
diff --git a/indra/newview/llinspecttoast.h b/indra/newview/llinspecttoast.h
index 441dffdfde..441dffdfde 100644..100755
--- a/indra/newview/llinspecttoast.h
+++ b/indra/newview/llinspecttoast.h
diff --git a/indra/newview/llinventoryactions.h b/indra/newview/llinventoryactions.h
index 96e9f42ca4..96e9f42ca4 100644..100755
--- a/indra/newview/llinventoryactions.h
+++ b/indra/newview/llinventoryactions.h
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 93be2edf79..0298ea1785 100644..100755
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -51,6 +51,7 @@
#include "llclipboard.h"
#include "llinventorydefines.h"
#include "llinventoryfunctions.h"
+#include "llinventoryicon.h"
#include "llinventorymodel.h"
#include "llinventorymodelbackgroundfetch.h"
#include "llinventorypanel.h"
@@ -96,8 +97,6 @@ struct LLMoveInv
using namespace LLOldEvents;
// Function declarations
-void remove_inventory_category_from_avatar(LLInventoryCategory* category);
-void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_id);
bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, LLMoveInv*);
bool confirm_attachment_rez(const LLSD& notification, const LLSD& response);
void teleport_via_landmark(const LLUUID& asset_id);
@@ -1545,7 +1544,7 @@ LLUIImagePtr LLItemBridge::getIcon() const
mIsLink);
}
- return LLInventoryIcon::getIcon(LLInventoryIcon::ICONNAME_OBJECT);
+ return LLInventoryIcon::getIcon(LLInventoryType::ICONNAME_OBJECT);
}
LLUIImagePtr LLItemBridge::getIconOverlay() const
@@ -2649,7 +2648,6 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
if(drop && accept)
{
it = inventory_objects.begin();
- LLInventoryObject::object_list_t::iterator first_it = inventory_objects.begin();
LLMoveInv* move_inv = new LLMoveInv;
move_inv->mObjectID = object_id;
move_inv->mCategoryID = category_id;
@@ -2926,7 +2924,7 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
LLViewerInventoryCategory* cat = getCategory();
if(!cat) return;
- remove_inventory_category_from_avatar ( cat );
+ LLAppearanceMgr::instance().takeOffOutfit( cat->getLinkedUUID() );
return;
}
else if ("purge" == action)
@@ -5248,7 +5246,7 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
else if(item && item->isFinished())
{
// must be in library. copy it to our inventory and put it on.
- LLPointer<LLInventoryCallback> cb = new RezAttachmentCallback(0);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0));
copy_inventory_item(
gAgent.getID(),
item->getPermissions().getOwner(),
@@ -5265,11 +5263,7 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
}
else if (isRemoveAction(action))
{
- LLInventoryItem* item = gInventory.getItem(mUUID);
- if(item)
- {
- LLVOAvatarSelf::detachAttachmentIntoInventory(item->getLinkedUUID());
- }
+ LLAppearanceMgr::instance().removeItemFromAvatar(mUUID);
}
else LLItemBridge::performAction(model, action);
}
@@ -5561,120 +5555,6 @@ LLWearableBridge::LLWearableBridge(LLInventoryPanel* inventory,
mInvType = inv_type;
}
-void remove_inventory_category_from_avatar( LLInventoryCategory* category )
-{
- if(!category) return;
- lldebugs << "remove_inventory_category_from_avatar( " << category->getName()
- << " )" << llendl;
-
-
- if (gAgentCamera.cameraCustomizeAvatar())
- {
- // switching to outfit editor should automagically save any currently edited wearable
- LLFloaterSidePanelContainer::showPanel("appearance", LLSD().with("type", "edit_outfit"));
- }
-
- remove_inventory_category_from_avatar_step2(TRUE, category->getUUID() );
-}
-
-struct OnRemoveStruct
-{
- LLUUID mUUID;
- OnRemoveStruct(const LLUUID& uuid):
- mUUID(uuid)
- {
- }
-};
-
-void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_id)
-{
-
- // Find all the wearables that are in the category's subtree.
- lldebugs << "remove_inventory_category_from_avatar_step2()" << llendl;
- if(proceed)
- {
- LLInventoryModel::cat_array_t cat_array;
- LLInventoryModel::item_array_t item_array;
- LLFindWearables is_wearable;
- gInventory.collectDescendentsIf(category_id,
- cat_array,
- item_array,
- LLInventoryModel::EXCLUDE_TRASH,
- is_wearable);
- S32 i;
- S32 wearable_count = item_array.count();
-
- LLInventoryModel::cat_array_t obj_cat_array;
- LLInventoryModel::item_array_t obj_item_array;
- LLIsType is_object( LLAssetType::AT_OBJECT );
- gInventory.collectDescendentsIf(category_id,
- obj_cat_array,
- obj_item_array,
- LLInventoryModel::EXCLUDE_TRASH,
- is_object);
- S32 obj_count = obj_item_array.count();
-
- // Find all gestures in this folder
- LLInventoryModel::cat_array_t gest_cat_array;
- LLInventoryModel::item_array_t gest_item_array;
- LLIsType is_gesture( LLAssetType::AT_GESTURE );
- gInventory.collectDescendentsIf(category_id,
- gest_cat_array,
- gest_item_array,
- LLInventoryModel::EXCLUDE_TRASH,
- is_gesture);
- S32 gest_count = gest_item_array.count();
-
- if (wearable_count > 0) //Loop through wearables. If worn, remove.
- {
- for(i = 0; i < wearable_count; ++i)
- {
- LLViewerInventoryItem *item = item_array.get(i);
- if (item->getType() == LLAssetType::AT_BODYPART)
- continue;
- if (gAgent.isTeen() && item->isWearableType() &&
- (item->getWearableType() == LLWearableType::WT_UNDERPANTS || item->getWearableType() == LLWearableType::WT_UNDERSHIRT))
- continue;
- if (get_is_item_worn(item->getUUID()))
- {
- LLWearableList::instance().getAsset(item->getAssetUUID(),
- item->getName(),
- item->getType(),
- LLWearableBridge::onRemoveFromAvatarArrived,
- new OnRemoveStruct(item->getLinkedUUID()));
- }
- }
- }
-
- if (obj_count > 0)
- {
- for(i = 0; i < obj_count; ++i)
- {
- LLViewerInventoryItem *obj_item = obj_item_array.get(i);
- if (get_is_item_worn(obj_item->getUUID()))
- {
- LLVOAvatarSelf::detachAttachmentIntoInventory(obj_item->getLinkedUUID());
- }
- }
- }
-
- if (gest_count > 0)
- {
- for(i = 0; i < gest_count; ++i)
- {
- LLViewerInventoryItem *gest_item = gest_item_array.get(i);
- if (get_is_item_worn(gest_item->getUUID()))
- {
- LLGestureMgr::instance().deactivateGesture( gest_item->getLinkedUUID() );
- gInventory.updateItem( gest_item );
- gInventory.notifyObservers();
- }
-
- }
- }
- }
-}
-
BOOL LLWearableBridge::renameItem(const std::string& new_name)
{
if (get_is_item_worn(mUUID))
@@ -5885,7 +5765,7 @@ void LLWearableBridge::wearAddOnAvatar()
}
// static
-void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userdata )
+void LLWearableBridge::onWearOnAvatarArrived( LLViewerWearable* wearable, void* userdata )
{
LLUUID* item_id = (LLUUID*) userdata;
if(wearable)
@@ -5911,7 +5791,7 @@ void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userda
// static
// BAP remove the "add" code path once everything is fully COF-ified.
-void LLWearableBridge::onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata )
+void LLWearableBridge::onWearAddOnAvatarArrived( LLViewerWearable* wearable, void* userdata )
{
LLUUID* item_id = (LLUUID*) userdata;
if(wearable)
@@ -5971,95 +5851,12 @@ BOOL LLWearableBridge::canRemoveFromAvatar(void* user_data)
return FALSE;
}
-// static
-void LLWearableBridge::onRemoveFromAvatar(void* user_data)
-{
- LLWearableBridge* self = (LLWearableBridge*)user_data;
- if(!self) return;
- if(get_is_item_worn(self->mUUID))
- {
- LLViewerInventoryItem* item = self->getItem();
- if (item)
- {
- LLUUID parent_id = item->getParentUUID();
- LLWearableList::instance().getAsset(item->getAssetUUID(),
- item->getName(),
- item->getType(),
- onRemoveFromAvatarArrived,
- new OnRemoveStruct(LLUUID(self->mUUID)));
- }
- }
-}
-
-// static
-void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable,
- void* userdata)
-{
- OnRemoveStruct *on_remove_struct = (OnRemoveStruct*) userdata;
- const LLUUID &item_id = gInventory.getLinkedItemID(on_remove_struct->mUUID);
- if(wearable)
- {
- if( get_is_item_worn( item_id ) )
- {
- LLWearableType::EType type = wearable->getType();
-
- if( !(type==LLWearableType::WT_SHAPE || type==LLWearableType::WT_SKIN || type==LLWearableType::WT_HAIR || type==LLWearableType::WT_EYES ) ) //&&
- //!((!gAgent.isTeen()) && ( type==LLWearableType::WT_UNDERPANTS || type==LLWearableType::WT_UNDERSHIRT )) )
- {
- bool do_remove_all = false;
- U32 index = gAgentWearables.getWearableIndex(wearable);
- gAgentWearables.removeWearable( type, do_remove_all, index );
- }
- }
- }
-
- // Find and remove this item from the COF.
- LLAppearanceMgr::instance().removeCOFItemLinks(item_id,false);
- gInventory.notifyObservers();
-
- delete on_remove_struct;
-}
-
-// static
-void LLWearableBridge::removeAllClothesFromAvatar()
-{
- // Fetch worn clothes (i.e. the ones in COF).
- LLInventoryModel::item_array_t clothing_items;
- LLInventoryModel::cat_array_t dummy;
- LLIsType is_clothing(LLAssetType::AT_CLOTHING);
- gInventory.collectDescendentsIf(LLAppearanceMgr::instance().getCOF(),
- dummy,
- clothing_items,
- LLInventoryModel::EXCLUDE_TRASH,
- is_clothing,
- false);
-
- // Take them off by removing from COF.
- for (LLInventoryModel::item_array_t::const_iterator it = clothing_items.begin(); it != clothing_items.end(); ++it)
- {
- LLAppearanceMgr::instance().removeItemFromAvatar((*it)->getUUID());
- }
-}
-
-// static
-void LLWearableBridge::removeItemFromAvatar(LLViewerInventoryItem *item)
-{
- if (item)
- {
- LLWearableList::instance().getAsset(item->getAssetUUID(),
- item->getName(),
- item->getType(),
- LLWearableBridge::onRemoveFromAvatarArrived,
- new OnRemoveStruct(item->getUUID()));
- }
-}
-
void LLWearableBridge::removeFromAvatar()
{
+ llwarns << "safe to remove?" << llendl;
if (get_is_item_worn(mUUID))
{
- LLViewerInventoryItem* item = getItem();
- removeItemFromAvatar(item);
+ LLAppearanceMgr::instance().removeItemFromAvatar(mUUID);
}
}
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index 5c6cf0f0f0..517153e171 100644..100755
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -34,7 +34,7 @@
#include "llinventoryobserver.h"
#include "llinventorypanel.h"
#include "llviewercontrol.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
#include "lltooldraganddrop.h"
class LLInventoryFilter;
@@ -509,10 +509,10 @@ public:
static void onWearOnAvatar( void* userdata ); // Access to wearOnAvatar() from menu
static BOOL canWearOnAvatar( void* userdata );
- static void onWearOnAvatarArrived( LLWearable* wearable, void* userdata );
+ static void onWearOnAvatarArrived( LLViewerWearable* wearable, void* userdata );
void wearOnAvatar();
- static void onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata );
+ static void onWearAddOnAvatarArrived( LLViewerWearable* wearable, void* userdata );
void wearAddOnAvatar();
static BOOL canEditOnAvatar( void* userdata ); // Access to editOnAvatar() from menu
@@ -520,9 +520,6 @@ public:
void editOnAvatar();
static BOOL canRemoveFromAvatar( void* userdata );
- static void onRemoveFromAvatar( void* userdata );
- static void onRemoveFromAvatarArrived( LLWearable* wearable, void* userdata );
- static void removeItemFromAvatar(LLViewerInventoryItem *item);
static void removeAllClothesFromAvatar();
void removeFromAvatar();
protected:
diff --git a/indra/newview/llinventoryclipboard.cpp b/indra/newview/llinventoryclipboard.cpp
index 53da34f448..53da34f448 100644..100755
--- a/indra/newview/llinventoryclipboard.cpp
+++ b/indra/newview/llinventoryclipboard.cpp
diff --git a/indra/newview/llinventoryclipboard.h b/indra/newview/llinventoryclipboard.h
index b9f1451e5c..b9f1451e5c 100644..100755
--- a/indra/newview/llinventoryclipboard.h
+++ b/indra/newview/llinventoryclipboard.h
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 92f2d33073..92f2d33073 100644..100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index 4912b5ca91..4912b5ca91 100644..100755
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index f1a4889f5a..f1a4889f5a 100644..100755
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h
index f1066a4dc9..f1066a4dc9 100644..100755
--- a/indra/newview/llinventoryfunctions.h
+++ b/indra/newview/llinventoryfunctions.h
diff --git a/indra/newview/llinventoryicon.cpp b/indra/newview/llinventoryicon.cpp
index 34734d57c5..02a2475cfd 100644..100755
--- a/indra/newview/llinventoryicon.cpp
+++ b/indra/newview/llinventoryicon.cpp
@@ -25,6 +25,8 @@
*/
#include "llviewerprecompiledheaders.h"
+
+#include "linden_common.h"
#include "llinventoryicon.h"
#include "lldictionary.h"
@@ -41,7 +43,7 @@ struct IconEntry : public LLDictionaryEntry
};
class LLIconDictionary : public LLSingleton<LLIconDictionary>,
- public LLDictionary<LLInventoryIcon::EIconName, IconEntry>
+ public LLDictionary<LLInventoryType::EIconName, IconEntry>
{
public:
LLIconDictionary();
@@ -49,48 +51,48 @@ public:
LLIconDictionary::LLIconDictionary()
{
- addEntry(LLInventoryIcon::ICONNAME_TEXTURE, new IconEntry("Inv_Texture"));
- addEntry(LLInventoryIcon::ICONNAME_SOUND, new IconEntry("Inv_Sound"));
- addEntry(LLInventoryIcon::ICONNAME_CALLINGCARD_ONLINE, new IconEntry("Inv_CallingCard"));
- addEntry(LLInventoryIcon::ICONNAME_CALLINGCARD_OFFLINE, new IconEntry("Inv_CallingCard"));
- addEntry(LLInventoryIcon::ICONNAME_LANDMARK, new IconEntry("Inv_Landmark"));
- addEntry(LLInventoryIcon::ICONNAME_LANDMARK_VISITED, new IconEntry("Inv_Landmark"));
- addEntry(LLInventoryIcon::ICONNAME_SCRIPT, new IconEntry("Inv_Script"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING, new IconEntry("Inv_Clothing"));
- addEntry(LLInventoryIcon::ICONNAME_OBJECT, new IconEntry("Inv_Object"));
- addEntry(LLInventoryIcon::ICONNAME_OBJECT_MULTI, new IconEntry("Inv_Object_Multi"));
- addEntry(LLInventoryIcon::ICONNAME_NOTECARD, new IconEntry("Inv_Notecard"));
- addEntry(LLInventoryIcon::ICONNAME_BODYPART, new IconEntry("Inv_Skin"));
- addEntry(LLInventoryIcon::ICONNAME_SNAPSHOT, new IconEntry("Inv_Snapshot"));
-
- addEntry(LLInventoryIcon::ICONNAME_BODYPART_SHAPE, new IconEntry("Inv_BodyShape"));
- addEntry(LLInventoryIcon::ICONNAME_BODYPART_SKIN, new IconEntry("Inv_Skin"));
- addEntry(LLInventoryIcon::ICONNAME_BODYPART_HAIR, new IconEntry("Inv_Hair"));
- addEntry(LLInventoryIcon::ICONNAME_BODYPART_EYES, new IconEntry("Inv_Eye"));
-
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_SHIRT, new IconEntry("Inv_Shirt"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_PANTS, new IconEntry("Inv_Pants"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_SHOES, new IconEntry("Inv_Shoe"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_SOCKS, new IconEntry("Inv_Socks"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_JACKET, new IconEntry("Inv_Jacket"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_GLOVES, new IconEntry("Inv_Gloves"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_UNDERSHIRT, new IconEntry("Inv_Undershirt"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_UNDERPANTS, new IconEntry("Inv_Underpants"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_SKIRT, new IconEntry("Inv_Skirt"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_ALPHA, new IconEntry("Inv_Alpha"));
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_TATTOO, new IconEntry("Inv_Tattoo"));
- addEntry(LLInventoryIcon::ICONNAME_ANIMATION, new IconEntry("Inv_Animation"));
- addEntry(LLInventoryIcon::ICONNAME_GESTURE, new IconEntry("Inv_Gesture"));
-
- addEntry(LLInventoryIcon::ICONNAME_CLOTHING_PHYSICS, new IconEntry("Inv_Physics"));
-
- addEntry(LLInventoryIcon::ICONNAME_LINKITEM, new IconEntry("Inv_LinkItem"));
- addEntry(LLInventoryIcon::ICONNAME_LINKFOLDER, new IconEntry("Inv_LinkFolder"));
- addEntry(LLInventoryIcon::ICONNAME_MESH, new IconEntry("Inv_Mesh"));
-
- addEntry(LLInventoryIcon::ICONNAME_INVALID, new IconEntry("Inv_Invalid"));
-
- addEntry(LLInventoryIcon::ICONNAME_NONE, new IconEntry("NONE"));
+ addEntry(LLInventoryType::ICONNAME_TEXTURE, new IconEntry("Inv_Texture"));
+ addEntry(LLInventoryType::ICONNAME_SOUND, new IconEntry("Inv_Sound"));
+ addEntry(LLInventoryType::ICONNAME_CALLINGCARD_ONLINE, new IconEntry("Inv_CallingCard"));
+ addEntry(LLInventoryType::ICONNAME_CALLINGCARD_OFFLINE, new IconEntry("Inv_CallingCard"));
+ addEntry(LLInventoryType::ICONNAME_LANDMARK, new IconEntry("Inv_Landmark"));
+ addEntry(LLInventoryType::ICONNAME_LANDMARK_VISITED, new IconEntry("Inv_Landmark"));
+ addEntry(LLInventoryType::ICONNAME_SCRIPT, new IconEntry("Inv_Script"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING, new IconEntry("Inv_Clothing"));
+ addEntry(LLInventoryType::ICONNAME_OBJECT, new IconEntry("Inv_Object"));
+ addEntry(LLInventoryType::ICONNAME_OBJECT_MULTI, new IconEntry("Inv_Object_Multi"));
+ addEntry(LLInventoryType::ICONNAME_NOTECARD, new IconEntry("Inv_Notecard"));
+ addEntry(LLInventoryType::ICONNAME_BODYPART, new IconEntry("Inv_Skin"));
+ addEntry(LLInventoryType::ICONNAME_SNAPSHOT, new IconEntry("Inv_Snapshot"));
+
+ addEntry(LLInventoryType::ICONNAME_BODYPART_SHAPE, new IconEntry("Inv_BodyShape"));
+ addEntry(LLInventoryType::ICONNAME_BODYPART_SKIN, new IconEntry("Inv_Skin"));
+ addEntry(LLInventoryType::ICONNAME_BODYPART_HAIR, new IconEntry("Inv_Hair"));
+ addEntry(LLInventoryType::ICONNAME_BODYPART_EYES, new IconEntry("Inv_Eye"));
+
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_SHIRT, new IconEntry("Inv_Shirt"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_PANTS, new IconEntry("Inv_Pants"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_SHOES, new IconEntry("Inv_Shoe"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_SOCKS, new IconEntry("Inv_Socks"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_JACKET, new IconEntry("Inv_Jacket"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_GLOVES, new IconEntry("Inv_Gloves"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_UNDERSHIRT, new IconEntry("Inv_Undershirt"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_UNDERPANTS, new IconEntry("Inv_Underpants"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_SKIRT, new IconEntry("Inv_Skirt"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_ALPHA, new IconEntry("Inv_Alpha"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_TATTOO, new IconEntry("Inv_Tattoo"));
+ addEntry(LLInventoryType::ICONNAME_ANIMATION, new IconEntry("Inv_Animation"));
+ addEntry(LLInventoryType::ICONNAME_GESTURE, new IconEntry("Inv_Gesture"));
+
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_PHYSICS, new IconEntry("Inv_Physics"));
+
+ addEntry(LLInventoryType::ICONNAME_LINKITEM, new IconEntry("Inv_LinkItem"));
+ addEntry(LLInventoryType::ICONNAME_LINKFOLDER, new IconEntry("Inv_LinkFolder"));
+ addEntry(LLInventoryType::ICONNAME_MESH, new IconEntry("Inv_Mesh"));
+
+ addEntry(LLInventoryType::ICONNAME_INVALID, new IconEntry("Inv_Invalid"));
+
+ addEntry(LLInventoryType::ICONNAME_NONE, new IconEntry("NONE"));
}
LLUIImagePtr LLInventoryIcon::getIcon(LLAssetType::EType asset_type,
@@ -102,7 +104,7 @@ LLUIImagePtr LLInventoryIcon::getIcon(LLAssetType::EType asset_type,
return LLUI::getUIImage(icon_name);
}
-LLUIImagePtr LLInventoryIcon::getIcon(EIconName idx)
+LLUIImagePtr LLInventoryIcon::getIcon(LLInventoryType::EIconName idx)
{
return LLUI::getUIImage(getIconName(idx));
}
@@ -112,56 +114,56 @@ const std::string& LLInventoryIcon::getIconName(LLAssetType::EType asset_type,
U32 misc_flag,
BOOL item_is_multi)
{
- EIconName idx = ICONNAME_OBJECT;
+ LLInventoryType::EIconName idx = LLInventoryType::ICONNAME_OBJECT;
if (item_is_multi)
{
- idx = ICONNAME_OBJECT_MULTI;
+ idx = LLInventoryType::ICONNAME_OBJECT_MULTI;
return getIconName(idx);
}
switch(asset_type)
{
case LLAssetType::AT_TEXTURE:
- idx = (inventory_type == LLInventoryType::IT_SNAPSHOT) ? ICONNAME_SNAPSHOT : ICONNAME_TEXTURE;
+ idx = (inventory_type == LLInventoryType::IT_SNAPSHOT) ? LLInventoryType::ICONNAME_SNAPSHOT : LLInventoryType::ICONNAME_TEXTURE;
break;
case LLAssetType::AT_SOUND:
- idx = ICONNAME_SOUND;
+ idx = LLInventoryType::ICONNAME_SOUND;
break;
case LLAssetType::AT_CALLINGCARD:
- idx = (misc_flag != 0) ? ICONNAME_CALLINGCARD_ONLINE : ICONNAME_CALLINGCARD_OFFLINE;
+ idx = (misc_flag != 0) ? LLInventoryType::ICONNAME_CALLINGCARD_ONLINE : LLInventoryType::ICONNAME_CALLINGCARD_OFFLINE;
break;
case LLAssetType::AT_LANDMARK:
- idx = (misc_flag != 0) ? ICONNAME_LANDMARK_VISITED : ICONNAME_LANDMARK;
+ idx = (misc_flag != 0) ? LLInventoryType::ICONNAME_LANDMARK_VISITED : LLInventoryType::ICONNAME_LANDMARK;
break;
case LLAssetType::AT_SCRIPT:
case LLAssetType::AT_LSL_TEXT:
case LLAssetType::AT_LSL_BYTECODE:
- idx = ICONNAME_SCRIPT;
+ idx = LLInventoryType::ICONNAME_SCRIPT;
break;
case LLAssetType::AT_CLOTHING:
case LLAssetType::AT_BODYPART:
idx = assignWearableIcon(misc_flag);
break;
case LLAssetType::AT_NOTECARD:
- idx = ICONNAME_NOTECARD;
+ idx = LLInventoryType::ICONNAME_NOTECARD;
break;
case LLAssetType::AT_ANIMATION:
- idx = ICONNAME_ANIMATION;
+ idx = LLInventoryType::ICONNAME_ANIMATION;
break;
case LLAssetType::AT_GESTURE:
- idx = ICONNAME_GESTURE;
+ idx = LLInventoryType::ICONNAME_GESTURE;
break;
case LLAssetType::AT_LINK:
- idx = ICONNAME_LINKITEM;
+ idx = LLInventoryType::ICONNAME_LINKITEM;
break;
case LLAssetType::AT_LINK_FOLDER:
- idx = ICONNAME_LINKFOLDER;
+ idx = LLInventoryType::ICONNAME_LINKFOLDER;
break;
case LLAssetType::AT_OBJECT:
- idx = ICONNAME_OBJECT;
+ idx = LLInventoryType::ICONNAME_OBJECT;
break;
case LLAssetType::AT_MESH:
- idx = ICONNAME_MESH;
+ idx = LLInventoryType::ICONNAME_MESH;
default:
break;
}
@@ -170,13 +172,13 @@ const std::string& LLInventoryIcon::getIconName(LLAssetType::EType asset_type,
}
-const std::string& LLInventoryIcon::getIconName(EIconName idx)
+const std::string& LLInventoryIcon::getIconName(LLInventoryType::EIconName idx)
{
const IconEntry *entry = LLIconDictionary::instance().lookup(idx);
return entry->mName;
}
-LLInventoryIcon::EIconName LLInventoryIcon::assignWearableIcon(U32 misc_flag)
+LLInventoryType::EIconName LLInventoryIcon::assignWearableIcon(U32 misc_flag)
{
const LLWearableType::EType wearable_type = LLWearableType::EType(LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK & misc_flag);
return LLWearableType::getIconName(wearable_type);
diff --git a/indra/newview/llinventoryicon.h b/indra/newview/llinventoryicon.h
index 5c8acf9e85..2197c53bb8 100644..100755
--- a/indra/newview/llinventoryicon.h
+++ b/indra/newview/llinventoryicon.h
@@ -35,66 +35,20 @@
class LLInventoryIcon
{
public:
- enum EIconName
- {
- ICONNAME_TEXTURE,
- ICONNAME_SOUND,
- ICONNAME_CALLINGCARD_ONLINE,
- ICONNAME_CALLINGCARD_OFFLINE,
- ICONNAME_LANDMARK,
- ICONNAME_LANDMARK_VISITED,
- ICONNAME_SCRIPT,
- ICONNAME_CLOTHING,
- ICONNAME_OBJECT,
- ICONNAME_OBJECT_MULTI,
- ICONNAME_NOTECARD,
- ICONNAME_BODYPART,
- ICONNAME_SNAPSHOT,
-
- ICONNAME_BODYPART_SHAPE,
- ICONNAME_BODYPART_SKIN,
- ICONNAME_BODYPART_HAIR,
- ICONNAME_BODYPART_EYES,
- ICONNAME_CLOTHING_SHIRT,
- ICONNAME_CLOTHING_PANTS,
- ICONNAME_CLOTHING_SHOES,
- ICONNAME_CLOTHING_SOCKS,
- ICONNAME_CLOTHING_JACKET,
- ICONNAME_CLOTHING_GLOVES,
- ICONNAME_CLOTHING_UNDERSHIRT,
- ICONNAME_CLOTHING_UNDERPANTS,
- ICONNAME_CLOTHING_SKIRT,
- ICONNAME_CLOTHING_ALPHA,
- ICONNAME_CLOTHING_TATTOO,
-
- ICONNAME_ANIMATION,
- ICONNAME_GESTURE,
-
- ICONNAME_CLOTHING_PHYSICS,
-
- ICONNAME_LINKITEM,
- ICONNAME_LINKFOLDER,
- ICONNAME_MESH,
-
- ICONNAME_INVALID,
- ICONNAME_COUNT,
- ICONNAME_NONE = -1
- };
-
static const std::string& getIconName(LLAssetType::EType asset_type,
LLInventoryType::EType inventory_type = LLInventoryType::IT_NONE,
U32 misc_flag = 0, // different meanings depending on item type
BOOL item_is_multi = FALSE);
- static const std::string& getIconName(EIconName idx);
+ static const std::string& getIconName(LLInventoryType::EIconName idx);
static LLUIImagePtr getIcon(LLAssetType::EType asset_type,
LLInventoryType::EType inventory_type = LLInventoryType::IT_NONE,
U32 misc_flag = 0, // different meanings depending on item type
BOOL item_is_multi = FALSE);
- static LLUIImagePtr getIcon(EIconName idx);
+ static LLUIImagePtr getIcon(LLInventoryType::EIconName idx);
protected:
- static EIconName assignWearableIcon(U32 misc_flag);
+ static LLInventoryType::EIconName assignWearableIcon(U32 misc_flag);
};
#endif // LL_LLINVENTORYICON_H
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index 348d7ebcec..348d7ebcec 100644..100755
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
diff --git a/indra/newview/llinventoryitemslist.h b/indra/newview/llinventoryitemslist.h
index b183a2052d..b183a2052d 100644..100755
--- a/indra/newview/llinventoryitemslist.h
+++ b/indra/newview/llinventoryitemslist.h
diff --git a/indra/newview/llinventorylistitem.cpp b/indra/newview/llinventorylistitem.cpp
index 3e0849a795..0601796436 100644..100755
--- a/indra/newview/llinventorylistitem.cpp
+++ b/indra/newview/llinventorylistitem.cpp
@@ -37,6 +37,7 @@
#include "lltextutil.h"
// newview
+#include "llinventoryicon.h"
#include "llinventorymodel.h"
#include "llviewerinventory.h"
@@ -230,7 +231,7 @@ const std::string& LLPanelInventoryListItemBase::getDescription() const
{
return LLStringUtil::null;
}
- return inv_item->getDescription();
+ return inv_item->getActualDescription();
}
time_t LLPanelInventoryListItemBase::getCreationDate() const
diff --git a/indra/newview/llinventorylistitem.h b/indra/newview/llinventorylistitem.h
index b1ef6c74ee..b1ef6c74ee 100644..100755
--- a/indra/newview/llinventorylistitem.h
+++ b/indra/newview/llinventorylistitem.h
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index e7d59d92d9..935fe2b4d0 100644..100755
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -460,9 +460,10 @@ public:
{
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("InvAPI") << "CreateInventoryCategory failed. status = " << status << ", reasion = \"" << reason << "\"" << LL_ENDL;
+ LL_WARNS("InvAPI") << "CreateInventoryCategory failed [status:"
+ << status << "]: " << content << LL_ENDL;
}
virtual void result(const LLSD& content)
@@ -1410,7 +1411,6 @@ void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)
item_array_t items;
update_map_t update;
S32 count = content["items"].size();
- bool all_one_folder = true;
LLUUID folder_id;
// Does this loop ever execute more than once?
for(S32 i = 0; i < count; ++i)
@@ -1443,10 +1443,6 @@ void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)
{
folder_id = titem->getParentUUID();
}
- else
- {
- all_one_folder = false;
- }
}
U32 changes = 0x0;
@@ -1460,10 +1456,9 @@ void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)
}
//If we get back an error (not found, etc...), handle it here
-void LLInventoryModel::fetchInventoryResponder::error(U32 status, const std::string& reason)
+void LLInventoryModel::fetchInventoryResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llinfos << "fetchInventory::error "
- << status << ": " << reason << llendl;
+ llwarns << "fetchInventory error [status:" << status << "]: " << content << llendl;
gInventory.notifyObservers();
}
@@ -1996,8 +1991,9 @@ bool LLInventoryModel::loadSkeleton(
{
LLViewerInventoryCategory* cat = (*invalid_cat_it).get();
cat->setVersion(NO_VERSION);
- llinfos << "Invalidating category name: " << cat->getName() << " UUID: " << cat->getUUID() << " due to invalid descendents cache" << llendl;
+ LL_DEBUGS("Inventory") << "Invalidating category name: " << cat->getName() << " UUID: " << cat->getUUID() << " due to invalid descendents cache" << llendl;
}
+ LL_INFOS("Inventory") << "Invalidated " << invalid_categories.size() << " categories due to invalid descendents cache" << llendl;
// At this point, we need to set the known descendents for each
// category which successfully cached so that we do not
@@ -2534,7 +2530,6 @@ bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account)
item_array_t items;
update_map_t update;
S32 count = msg->getNumberOfBlocksFast(_PREHASH_InventoryData);
- bool all_one_folder = true;
LLUUID folder_id;
// Does this loop ever execute more than once?
for(S32 i = 0; i < count; ++i)
@@ -2566,10 +2561,6 @@ bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account)
{
folder_id = titem->getParentUUID();
}
- else
- {
- all_one_folder = false;
- }
}
if(account)
{
@@ -3295,8 +3286,71 @@ void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, c
}
}
+//* @param[in] items vector of items in order to be saved.
+/*
+void LLInventoryModel::saveItemsOrder(const LLInventoryModel::item_array_t& items)
+{
+ int sortField = 0;
+
+ // current order is saved by setting incremental values (1, 2, 3, ...) for the sort field
+ for (item_array_t::const_iterator i = items.begin(); i != items.end(); ++i)
+ {
+ LLViewerInventoryItem* item = *i;
+
+ item->setSortField(++sortField);
+ item->setComplete(TRUE);
+ item->updateServer(FALSE);
+
+ updateItem(item);
+ // Tell the parent folder to refresh its sort order.
+ addChangedMask(LLInventoryObserver::SORT, item->getParentUUID());
+ }
+ notifyObservers();
+}
+*/
+// See also LLInventorySort where landmarks in the Favorites folder are sorted.
+class LLViewerInventoryItemSort
+{
+public:
+ bool operator()(const LLPointer<LLViewerInventoryItem>& a, const LLPointer<LLViewerInventoryItem>& b)
+ {
+ return a->getSortField() < b->getSortField();
+ }
+};
+
+/**
+ * Sorts passed items by LLViewerInventoryItem sort field.
+ *
+ * @param[in, out] items - array of items, not sorted.
+ */
+//static void rearrange_item_order_by_sort_field(LLInventoryModel::item_array_t& items)
+//{
+// static LLViewerInventoryItemSort sort_functor;
+// std::sort(items.begin(), items.end(), sort_functor);
+//}
+
+// * @param source_item_id - LLUUID of the source item to be moved into new position
+// * @param target_item_id - LLUUID of the target item before which source item should be placed.
+/*
+void LLInventoryModel::rearrangeFavoriteLandmarks(const LLUUID& source_item_id, const LLUUID& target_item_id)
+{
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLIsType is_type(LLAssetType::AT_LANDMARK);
+ LLUUID favorites_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
+ gInventory.collectDescendentsIf(favorites_id, cats, items, LLInventoryModel::EXCLUDE_TRASH, is_type);
+
+ // ensure items are sorted properly before changing order. EXT-3498
+ rearrange_item_order_by_sort_field(items);
+
+ // update order
+ updateItemsOrder(items, source_item_id, target_item_id);
+
+ saveItemsOrder(items);
+}
+*/
//----------------------------------------------------------------------------
// *NOTE: DEBUG functionality
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 503de627a0..8aac879a93 100644..100755
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -84,7 +84,7 @@ public:
public:
fetchInventoryResponder(const LLSD& request_sd) : mRequestSD(request_sd) {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
protected:
LLSD mRequestSD;
};
@@ -231,7 +231,8 @@ public:
// Returns the uuid of the category that specifies 'type' as what it
// defaults to containing. The category is not necessarily only for that type.
// NOTE: If create_folder is true, this will create a new inventory category
- // on the fly if one does not exist.
+ // on the fly if one does not exist. *NOTE: if find_in_library is true it
+ // will search in the user's library folder instead of "My Inventory"
const LLUUID findCategoryUUIDForType(LLFolderType::EType preferred_type,
bool create_folder = true);
// will search in the user's library folder instead of "My Inventory"
@@ -363,6 +364,12 @@ public:
// Returns end() of the vector if not found.
static LLInventoryModel::item_array_t::iterator findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id);
+
+ // Rearranges Landmarks inside Favorites folder.
+ // Moves source landmark before target one.
+ void rearrangeFavoriteLandmarks(const LLUUID& source_item_id, const LLUUID& target_item_id);
+ //void saveItemsOrder(const LLInventoryModel::item_array_t& items);
+
//--------------------------------------------------------------------
// Creation
//--------------------------------------------------------------------
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp
index f4d0110b0f..f2b39e7186 100644..100755
--- a/indra/newview/llinventorymodelbackgroundfetch.cpp
+++ b/indra/newview/llinventorymodelbackgroundfetch.cpp
@@ -183,7 +183,7 @@ void LLInventoryModelBackgroundFetch::backgroundFetchCB(void *)
void LLInventoryModelBackgroundFetch::backgroundFetch()
{
- if (mBackgroundFetchActive && gAgent.getRegion())
+ if (mBackgroundFetchActive && gAgent.getRegion() && gAgent.getRegion()->capabilitiesReceived())
{
// If we'll be using the capability, we'll be sending batches and the background thing isn't as important.
if (gSavedSettings.getBOOL("UseHTTPInventory"))
@@ -366,7 +366,7 @@ class LLInventoryModelFetchItemResponder : public LLInventoryModel::fetchInvento
public:
LLInventoryModelFetchItemResponder(const LLSD& request_sd) : LLInventoryModel::fetchInventoryResponder(request_sd) {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
};
void LLInventoryModelFetchItemResponder::result( const LLSD& content )
@@ -375,9 +375,9 @@ void LLInventoryModelFetchItemResponder::result( const LLSD& content )
LLInventoryModelBackgroundFetch::instance().incrFetchCount(-1);
}
-void LLInventoryModelFetchItemResponder::error( U32 status, const std::string& reason )
+void LLInventoryModelFetchItemResponder::errorWithContent( U32 status, const std::string& reason, const LLSD& content )
{
- LLInventoryModel::fetchInventoryResponder::error(status, reason);
+ LLInventoryModel::fetchInventoryResponder::errorWithContent(status, reason, content);
LLInventoryModelBackgroundFetch::instance().incrFetchCount(-1);
}
@@ -391,7 +391,7 @@ public:
{};
//LLInventoryModelFetchDescendentsResponder() {};
void result(const LLSD& content);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
protected:
BOOL getIsRecursive(const LLUUID& cat_id) const;
private:
@@ -529,12 +529,12 @@ void LLInventoryModelFetchDescendentsResponder::result(const LLSD& content)
}
// If we get back an error (not found, etc...), handle it here.
-void LLInventoryModelFetchDescendentsResponder::error(U32 status, const std::string& reason)
+void LLInventoryModelFetchDescendentsResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
LLInventoryModelBackgroundFetch *fetcher = LLInventoryModelBackgroundFetch::getInstance();
- llinfos << "LLInventoryModelFetchDescendentsResponder::error "
- << status << ": " << reason << llendl;
+ llinfos << "LLInventoryModelFetchDescendentsResponder::error [status:"
+ << status << "]: " << content << llendl;
fetcher->incrFetchCount(-1);
@@ -564,7 +564,6 @@ BOOL LLInventoryModelFetchDescendentsResponder::getIsRecursive(const LLUUID& cat
{
return (std::find(mRecursiveCatUUIDs.begin(),mRecursiveCatUUIDs.end(), cat_id) != mRecursiveCatUUIDs.end());
}
-
// Bundle up a bunch of requests to send all at once.
// static
void LLInventoryModelBackgroundFetch::bulkFetch()
@@ -687,20 +686,23 @@ void LLInventoryModelBackgroundFetch::bulkFetch()
{
if (folder_count)
{
- std::string url = region->getCapability("FetchInventoryDescendents2");
- mFetchCount++;
- if (folder_request_body["folders"].size())
- {
- LLInventoryModelFetchDescendentsResponder *fetcher = new LLInventoryModelFetchDescendentsResponder(folder_request_body, recursive_cats);
- LLHTTPClient::post(url, folder_request_body, fetcher, 300.0);
- }
- if (folder_request_body_lib["folders"].size())
+ std::string url = region->getCapability("FetchInventoryDescendents2");
+ if ( !url.empty() )
{
- std::string url_lib = gAgent.getRegion()->getCapability("FetchLibDescendents2");
+ mFetchCount++;
+ if (folder_request_body["folders"].size())
+ {
+ LLInventoryModelFetchDescendentsResponder *fetcher = new LLInventoryModelFetchDescendentsResponder(folder_request_body, recursive_cats);
+ LLHTTPClient::post(url, folder_request_body, fetcher, 300.0);
+ }
+ if (folder_request_body_lib["folders"].size())
+ {
+ std::string url_lib = gAgent.getRegion()->getCapability("FetchLibDescendents2");
- LLInventoryModelFetchDescendentsResponder *fetcher = new LLInventoryModelFetchDescendentsResponder(folder_request_body_lib, recursive_cats);
- LLHTTPClient::post(url_lib, folder_request_body_lib, fetcher, 300.0);
- }
+ LLInventoryModelFetchDescendentsResponder *fetcher = new LLInventoryModelFetchDescendentsResponder(folder_request_body_lib, recursive_cats);
+ LLHTTPClient::post(url_lib, folder_request_body_lib, fetcher, 300.0);
+ }
+ }
}
if (item_count)
{
diff --git a/indra/newview/llinventorymodelbackgroundfetch.h b/indra/newview/llinventorymodelbackgroundfetch.h
index 9dfedddd6d..9dfedddd6d 100644..100755
--- a/indra/newview/llinventorymodelbackgroundfetch.h
+++ b/indra/newview/llinventorymodelbackgroundfetch.h
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index 9db175ec2e..9db175ec2e 100644..100755
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index aa1eae84d7..aa1eae84d7 100644..100755
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index fabcd50c7d..cf1fd4c0d0 100644..100755
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -401,8 +401,6 @@ void LLInventoryPanel::modelChanged(U32 mask)
static LLFastTimer::DeclareTimer FTM_REFRESH("Inventory Refresh");
LLFastTimer t2(FTM_REFRESH);
- bool handled = false;
-
if (!mViewsInitialized) return;
const LLInventoryModel* model = getModel();
@@ -437,7 +435,6 @@ void LLInventoryPanel::modelChanged(U32 mask)
// Empty out the display name for relabel.
if (mask & LLInventoryObserver::LABEL)
{
- handled = true;
if (view_item)
{
// Request refresh on this item (also flags for filtering)
@@ -456,7 +453,6 @@ void LLInventoryPanel::modelChanged(U32 mask)
// Destroy and regenerate the UI.
if (mask & LLInventoryObserver::REBUILD)
{
- handled = true;
if (model_item && view_item && viewmodel_item)
{
const LLUUID& idp = viewmodel_item->getUUID();
@@ -500,8 +496,6 @@ void LLInventoryPanel::modelChanged(U32 mask)
LLInventoryObserver::ADD |
LLInventoryObserver::REMOVE))
{
- handled = true;
-
//////////////////////////////
// ADD Operation
// Item exists in memory but a UI element hasn't been created for it.
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 00a90325ad..00a90325ad 100644..100755
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 3d1f186bba..3d1f186bba 100644..100755
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h
index 8d76aa9531..8d76aa9531 100644..100755
--- a/indra/newview/lljoystickbutton.h
+++ b/indra/newview/lljoystickbutton.h
diff --git a/indra/newview/lllandmarkactions.cpp b/indra/newview/lllandmarkactions.cpp
index 6625a194fb..6625a194fb 100644..100755
--- a/indra/newview/lllandmarkactions.cpp
+++ b/indra/newview/lllandmarkactions.cpp
diff --git a/indra/newview/lllandmarkactions.h b/indra/newview/lllandmarkactions.h
index 870d92811e..870d92811e 100644..100755
--- a/indra/newview/lllandmarkactions.h
+++ b/indra/newview/lllandmarkactions.h
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index dd402de394..dd402de394 100644..100755
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
diff --git a/indra/newview/lllandmarklist.h b/indra/newview/lllandmarklist.h
index 3356f866ce..3356f866ce 100644..100755
--- a/indra/newview/lllandmarklist.h
+++ b/indra/newview/lllandmarklist.h
diff --git a/indra/newview/lllightconstants.h b/indra/newview/lllightconstants.h
index 216fd4ded5..216fd4ded5 100644..100755
--- a/indra/newview/lllightconstants.h
+++ b/indra/newview/lllightconstants.h
diff --git a/indra/newview/lllistbrowser.cpp b/indra/newview/lllistbrowser.cpp
index 956f457730..956f457730 100644..100755
--- a/indra/newview/lllistbrowser.cpp
+++ b/indra/newview/lllistbrowser.cpp
diff --git a/indra/newview/lllistbrowser.h b/indra/newview/lllistbrowser.h
index 22e8755f08..22e8755f08 100644..100755
--- a/indra/newview/lllistbrowser.h
+++ b/indra/newview/lllistbrowser.h
diff --git a/indra/newview/lllistcontextmenu.cpp b/indra/newview/lllistcontextmenu.cpp
index 6421ab42bf..6421ab42bf 100644..100755
--- a/indra/newview/lllistcontextmenu.cpp
+++ b/indra/newview/lllistcontextmenu.cpp
diff --git a/indra/newview/lllistcontextmenu.h b/indra/newview/lllistcontextmenu.h
index 04d3314829..04d3314829 100644..100755
--- a/indra/newview/lllistcontextmenu.h
+++ b/indra/newview/lllistcontextmenu.h
diff --git a/indra/newview/lllistview.cpp b/indra/newview/lllistview.cpp
index 8fc3ad63bd..8fc3ad63bd 100644..100755
--- a/indra/newview/lllistview.cpp
+++ b/indra/newview/lllistview.cpp
diff --git a/indra/newview/lllistview.h b/indra/newview/lllistview.h
index 4303672b9f..4303672b9f 100644..100755
--- a/indra/newview/lllistview.h
+++ b/indra/newview/lllistview.h
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index 97ba5b634a..25df4889b0 100644..100755
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -53,7 +53,7 @@
#include "llviewerobject.h"
#include "llface.h"
#include "llvoavatarself.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
#include "llagentwearables.h"
#include "lltexlayerparams.h"
#include "llvovolume.h"
@@ -195,7 +195,7 @@ bool LLLocalBitmap::updateSelf(EUpdateType optional_firstupdate)
mLastModified = new_last_modified;
LLPointer<LLViewerFetchedTexture> texture = new LLViewerFetchedTexture
- ("file://"+mFilename, mWorldID, LL_LOCAL_USE_MIPMAPS);
+ ("file://"+mFilename, FTT_LOCAL_FILE, mWorldID, LL_LOCAL_USE_MIPMAPS);
texture->createGLTexture(LL_LOCAL_DISCARD_LEVEL, raw_image);
texture->setCachedRawImage(LL_LOCAL_DISCARD_LEVEL, raw_image);
@@ -437,8 +437,8 @@ void LLLocalBitmap::updateUserPrims(LLUUID old_id, LLUUID new_id)
LLFace* face = object->mDrawable->getFace(face_iter);
if (face && face->getTexture() && face->getTexture()->getID() == old_id)
{
- object->setTEImage(face_iter, LLViewerTextureManager::getFetchedTexture
- (new_id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
+ object->setTEImage(face_iter, LLViewerTextureManager::getFetchedTexture(
+ new_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
update_obj = true;
}
@@ -481,7 +481,7 @@ void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableTyp
U32 count = gAgentWearables.getWearableCount(type);
for(U32 wearable_iter = 0; wearable_iter < count; wearable_iter++)
{
- LLWearable* wearable = gAgentWearables.getWearable(type, wearable_iter);
+ LLViewerWearable* wearable = gAgentWearables.getViewerWearable(type, wearable_iter);
if (wearable)
{
std::vector<LLLocalTextureObject*> texture_list = wearable->getLocalTextureListSeq();
@@ -493,11 +493,11 @@ void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableTyp
if (lto && lto->getID() == old_id)
{
U32 local_texlayer_index = 0; /* can't keep that as static const, gives errors, so i'm leaving this var here */
- LLVOAvatarDefines::EBakedTextureIndex baked_texind =
+ LLAvatarAppearanceDefines::EBakedTextureIndex baked_texind =
lto->getTexLayer(local_texlayer_index)->getTexLayerSet()->getBakedTexIndex();
- LLVOAvatarDefines::ETextureIndex reg_texind = getTexIndex(type, baked_texind);
- if (reg_texind != LLVOAvatarDefines::TEX_NUM_INDICES)
+ LLAvatarAppearanceDefines::ETextureIndex reg_texind = getTexIndex(type, baked_texind);
+ if (reg_texind != LLAvatarAppearanceDefines::TEX_NUM_INDICES)
{
U32 index = gAgentWearables.getWearableIndex(wearable);
gAgentAvatarp->setLocalTexture(reg_texind, gTextureList.getImage(new_id), FALSE, index);
@@ -513,10 +513,10 @@ void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableTyp
}
}
-LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
- LLWearableType::EType type, LLVOAvatarDefines::EBakedTextureIndex baked_texind)
+LLAvatarAppearanceDefines::ETextureIndex LLLocalBitmap::getTexIndex(
+ LLWearableType::EType type, LLAvatarAppearanceDefines::EBakedTextureIndex baked_texind)
{
- LLVOAvatarDefines::ETextureIndex result = LLVOAvatarDefines::TEX_NUM_INDICES; // using as a default/fail return.
+ LLAvatarAppearanceDefines::ETextureIndex result = LLAvatarAppearanceDefines::TEX_NUM_INDICES; // using as a default/fail return.
switch(type)
{
@@ -524,32 +524,32 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
{
switch(baked_texind)
{
- case LLVOAvatarDefines::BAKED_EYES:
+ case LLAvatarAppearanceDefines::BAKED_EYES:
{
- result = LLVOAvatarDefines::TEX_EYES_ALPHA;
+ result = LLAvatarAppearanceDefines::TEX_EYES_ALPHA;
break;
}
- case LLVOAvatarDefines::BAKED_HAIR:
+ case LLAvatarAppearanceDefines::BAKED_HAIR:
{
- result = LLVOAvatarDefines::TEX_HAIR_ALPHA;
+ result = LLAvatarAppearanceDefines::TEX_HAIR_ALPHA;
break;
}
- case LLVOAvatarDefines::BAKED_HEAD:
+ case LLAvatarAppearanceDefines::BAKED_HEAD:
{
- result = LLVOAvatarDefines::TEX_HEAD_ALPHA;
+ result = LLAvatarAppearanceDefines::TEX_HEAD_ALPHA;
break;
}
- case LLVOAvatarDefines::BAKED_LOWER:
+ case LLAvatarAppearanceDefines::BAKED_LOWER:
{
- result = LLVOAvatarDefines::TEX_LOWER_ALPHA;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_ALPHA;
break;
}
- case LLVOAvatarDefines::BAKED_UPPER:
+ case LLAvatarAppearanceDefines::BAKED_UPPER:
{
- result = LLVOAvatarDefines::TEX_UPPER_ALPHA;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_ALPHA;
break;
}
@@ -565,9 +565,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_EYES:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_EYES)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_EYES)
{
- result = LLVOAvatarDefines::TEX_EYES_IRIS;
+ result = LLAvatarAppearanceDefines::TEX_EYES_IRIS;
}
break;
@@ -575,9 +575,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_GLOVES:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_UPPER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_UPPER)
{
- result = LLVOAvatarDefines::TEX_UPPER_GLOVES;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_GLOVES;
}
break;
@@ -585,13 +585,13 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_JACKET:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_LOWER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_LOWER)
{
- result = LLVOAvatarDefines::TEX_LOWER_JACKET;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_JACKET;
}
- else if (baked_texind == LLVOAvatarDefines::BAKED_UPPER)
+ else if (baked_texind == LLAvatarAppearanceDefines::BAKED_UPPER)
{
- result = LLVOAvatarDefines::TEX_UPPER_JACKET;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_JACKET;
}
break;
@@ -599,9 +599,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_PANTS:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_LOWER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_LOWER)
{
- result = LLVOAvatarDefines::TEX_LOWER_PANTS;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_PANTS;
}
break;
@@ -609,9 +609,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_SHIRT:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_UPPER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_UPPER)
{
- result = LLVOAvatarDefines::TEX_UPPER_SHIRT;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_SHIRT;
}
break;
@@ -619,9 +619,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_SHOES:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_LOWER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_LOWER)
{
- result = LLVOAvatarDefines::TEX_LOWER_SHOES;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_SHOES;
}
break;
@@ -631,20 +631,20 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
{
switch(baked_texind)
{
- case LLVOAvatarDefines::BAKED_HEAD:
+ case LLAvatarAppearanceDefines::BAKED_HEAD:
{
- result = LLVOAvatarDefines::TEX_HEAD_BODYPAINT;
+ result = LLAvatarAppearanceDefines::TEX_HEAD_BODYPAINT;
break;
}
- case LLVOAvatarDefines::BAKED_LOWER:
+ case LLAvatarAppearanceDefines::BAKED_LOWER:
{
- result = LLVOAvatarDefines::TEX_LOWER_BODYPAINT;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_BODYPAINT;
break;
}
- case LLVOAvatarDefines::BAKED_UPPER:
+ case LLAvatarAppearanceDefines::BAKED_UPPER:
{
- result = LLVOAvatarDefines::TEX_UPPER_BODYPAINT;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_BODYPAINT;
break;
}
@@ -659,9 +659,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_SKIRT:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_SKIRT)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_SKIRT)
{
- result = LLVOAvatarDefines::TEX_SKIRT;
+ result = LLAvatarAppearanceDefines::TEX_SKIRT;
}
break;
@@ -669,9 +669,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_SOCKS:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_LOWER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_LOWER)
{
- result = LLVOAvatarDefines::TEX_LOWER_SOCKS;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_SOCKS;
}
break;
@@ -681,20 +681,20 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
{
switch(baked_texind)
{
- case LLVOAvatarDefines::BAKED_HEAD:
+ case LLAvatarAppearanceDefines::BAKED_HEAD:
{
- result = LLVOAvatarDefines::TEX_HEAD_TATTOO;
+ result = LLAvatarAppearanceDefines::TEX_HEAD_TATTOO;
break;
}
- case LLVOAvatarDefines::BAKED_LOWER:
+ case LLAvatarAppearanceDefines::BAKED_LOWER:
{
- result = LLVOAvatarDefines::TEX_LOWER_TATTOO;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_TATTOO;
break;
}
- case LLVOAvatarDefines::BAKED_UPPER:
+ case LLAvatarAppearanceDefines::BAKED_UPPER:
{
- result = LLVOAvatarDefines::TEX_UPPER_TATTOO;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_TATTOO;
break;
}
@@ -709,9 +709,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_UNDERPANTS:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_LOWER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_LOWER)
{
- result = LLVOAvatarDefines::TEX_LOWER_UNDERPANTS;
+ result = LLAvatarAppearanceDefines::TEX_LOWER_UNDERPANTS;
}
break;
@@ -719,9 +719,9 @@ LLVOAvatarDefines::ETextureIndex LLLocalBitmap::getTexIndex(
case LLWearableType::WT_UNDERSHIRT:
{
- if (baked_texind == LLVOAvatarDefines::BAKED_UPPER)
+ if (baked_texind == LLAvatarAppearanceDefines::BAKED_UPPER)
{
- result = LLVOAvatarDefines::TEX_UPPER_UNDERSHIRT;
+ result = LLAvatarAppearanceDefines::TEX_UPPER_UNDERSHIRT;
}
break;
diff --git a/indra/newview/lllocalbitmaps.h b/indra/newview/lllocalbitmaps.h
index 7a23c7ef6e..580b6dfa7e 100644..100755
--- a/indra/newview/lllocalbitmaps.h
+++ b/indra/newview/lllocalbitmaps.h
@@ -28,11 +28,14 @@
#ifndef LL_LOCALBITMAPS_H
#define LL_LOCALBITMAPS_H
+#include "llavatarappearancedefines.h"
#include "lleventtimer.h"
+#include "llimage.h"
+#include "llpointer.h"
#include "llwearabletype.h"
-#include "llvoavatardefines.h"
class LLScrollListCtrl;
+class LLViewerObject;
class LLLocalBitmap
{
@@ -63,7 +66,7 @@ class LLLocalBitmap
void updateUserPrims(LLUUID old_id, LLUUID new_id);
void updateUserSculpts(LLUUID old_id, LLUUID new_id);
void updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableType::EType type);
- LLVOAvatarDefines::ETextureIndex getTexIndex(LLWearableType::EType type, LLVOAvatarDefines::EBakedTextureIndex baked_texind);
+ LLAvatarAppearanceDefines::ETextureIndex getTexIndex(LLWearableType::EType type, LLAvatarAppearanceDefines::EBakedTextureIndex baked_texind);
private: /* private enums */
enum ELinkStatus
diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp
deleted file mode 100644
index 07ec0fab95..0000000000
--- a/indra/newview/lllocaltextureobject.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * @file lllocaltextureobject.cpp
- *
- * $LicenseInfo:firstyear=2009&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "lllocaltextureobject.h"
-
-#include "lltexlayer.h"
-#include "llviewertexture.h"
-#include "lltextureentry.h"
-#include "lluuid.h"
-#include "llwearable.h"
-
-
-LLLocalTextureObject::LLLocalTextureObject() :
- mIsBakedReady(FALSE),
- mDiscard(MAX_DISCARD_LEVEL+1)
-{
- mImage = NULL;
-}
-
-LLLocalTextureObject::LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id) :
- mIsBakedReady(FALSE),
- mDiscard(MAX_DISCARD_LEVEL+1)
-{
- mImage = image;
- gGL.getTexUnit(0)->bind(mImage);
- mID = id;
-}
-
-LLLocalTextureObject::LLLocalTextureObject(const LLLocalTextureObject& lto) :
- mImage(lto.mImage),
- mID(lto.mID),
- mIsBakedReady(lto.mIsBakedReady),
- mDiscard(lto.mDiscard)
-{
- U32 num_layers = lto.getNumTexLayers();
- mTexLayers.reserve(num_layers);
- for (U32 index = 0; index < num_layers; index++)
- {
- LLTexLayer* original_layer = lto.getTexLayer(index);
- if (!original_layer)
- {
- llerrs << "could not clone Local Texture Object: unable to extract texlayer!" << llendl;
- continue;
- }
-
- LLTexLayer* new_layer = new LLTexLayer(*original_layer);
- new_layer->setLTO(this);
- mTexLayers.push_back(new_layer);
- }
-}
-
-LLLocalTextureObject::~LLLocalTextureObject()
-{
-}
-
-LLViewerFetchedTexture* LLLocalTextureObject::getImage() const
-{
- return mImage;
-}
-
-LLTexLayer* LLLocalTextureObject::getTexLayer(U32 index) const
-{
- if (index >= getNumTexLayers())
- {
- return NULL;
- }
-
- return mTexLayers[index];
-}
-
-LLTexLayer* LLLocalTextureObject::getTexLayer(const std::string &name)
-{
- for( tex_layer_vec_t::iterator iter = mTexLayers.begin(); iter != mTexLayers.end(); iter++)
- {
- LLTexLayer *layer = *iter;
- if (layer->getName().compare(name) == 0)
- {
- return layer;
- }
- }
-
- return NULL;
-}
-
-U32 LLLocalTextureObject::getNumTexLayers() const
-{
- return mTexLayers.size();
-}
-
-LLUUID LLLocalTextureObject::getID() const
-{
- return mID;
-}
-
-S32 LLLocalTextureObject::getDiscard() const
-{
- return mDiscard;
-}
-
-BOOL LLLocalTextureObject::getBakedReady() const
-{
- return mIsBakedReady;
-}
-
-void LLLocalTextureObject::setImage(LLViewerFetchedTexture* new_image)
-{
- mImage = new_image;
-}
-
-BOOL LLLocalTextureObject::setTexLayer(LLTexLayer *new_tex_layer, U32 index)
-{
- if (index >= getNumTexLayers() )
- {
- return FALSE;
- }
-
- if (new_tex_layer == NULL)
- {
- return removeTexLayer(index);
- }
-
- LLTexLayer *layer = new LLTexLayer(*new_tex_layer);
- layer->setLTO(this);
-
- if (mTexLayers[index])
- {
- delete mTexLayers[index];
- }
- mTexLayers[index] = layer;
-
- return TRUE;
-}
-
-BOOL LLLocalTextureObject::addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable)
-{
- if (new_tex_layer == NULL)
- {
- return FALSE;
- }
-
- LLTexLayer *layer = new LLTexLayer(*new_tex_layer, wearable);
- layer->setLTO(this);
- mTexLayers.push_back(layer);
- return TRUE;
-}
-
-BOOL LLLocalTextureObject::addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable)
-{
- if (new_tex_layer == NULL)
- {
- return FALSE;
- }
-
- LLTexLayer *layer = new LLTexLayer(*new_tex_layer, this, wearable);
- layer->setLTO(this);
- mTexLayers.push_back(layer);
- return TRUE;
-}
-
-BOOL LLLocalTextureObject::removeTexLayer(U32 index)
-{
- if (index >= getNumTexLayers())
- {
- return FALSE;
- }
- tex_layer_vec_t::iterator iter = mTexLayers.begin();
- iter += index;
-
- delete *iter;
- mTexLayers.erase(iter);
- return TRUE;
-}
-
-void LLLocalTextureObject::setID(LLUUID new_id)
-{
- mID = new_id;
-}
-
-void LLLocalTextureObject::setDiscard(S32 new_discard)
-{
- mDiscard = new_discard;
-}
-
-void LLLocalTextureObject::setBakedReady(BOOL ready)
-{
- mIsBakedReady = ready;
-}
-
diff --git a/indra/newview/lllocaltextureobject.h b/indra/newview/lllocaltextureobject.h
deleted file mode 100644
index b9bfc5472f..0000000000
--- a/indra/newview/lllocaltextureobject.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * @file lllocaltextureobject.h
- * @brief LLLocalTextureObject class header file
- *
- * $LicenseInfo:firstyear=2009&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LOCALTEXTUREOBJECT_H
-#define LL_LOCALTEXTUREOBJECT_H
-
-#include <boost/shared_ptr.hpp>
-
-#include "llviewertexture.h"
-
-class LLUUID;
-class LLTexLayer;
-class LLTextureEntry;
-class LLTexLayerTemplate;
-class LLWearable;
-
-// Stores all relevant information for a single texture
-// assumed to have ownership of all objects referred to -
-// will delete objects when being replaced or if object is destroyed.
-class LLLocalTextureObject
-{
-public:
- LLLocalTextureObject();
- LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id);
- LLLocalTextureObject(const LLLocalTextureObject& lto);
- ~LLLocalTextureObject();
-
- LLViewerFetchedTexture* getImage() const;
- LLTexLayer* getTexLayer(U32 index) const;
- LLTexLayer* getTexLayer(const std::string &name);
- U32 getNumTexLayers() const;
- LLUUID getID() const;
- S32 getDiscard() const;
- BOOL getBakedReady() const;
-
- void setImage(LLViewerFetchedTexture* new_image);
- BOOL setTexLayer(LLTexLayer *new_tex_layer, U32 index);
- BOOL addTexLayer(LLTexLayer *new_tex_layer, LLWearable *wearable);
- BOOL addTexLayer(LLTexLayerTemplate *new_tex_layer, LLWearable *wearable);
- BOOL removeTexLayer(U32 index);
-
- void setID(LLUUID new_id);
- void setDiscard(S32 new_discard);
- void setBakedReady(BOOL ready);
-
-protected:
-
-private:
-
- LLPointer<LLViewerFetchedTexture> mImage;
- // NOTE: LLLocalTextureObject should be the exclusive owner of mTexEntry and mTexLayer
- // using shared pointers here only for smart assignment & cleanup
- // do NOT create new shared pointers to these objects, or keep pointers to them around
- typedef std::vector<LLTexLayer*> tex_layer_vec_t;
- tex_layer_vec_t mTexLayers;
-
- LLUUID mID;
-
- BOOL mIsBakedReady;
- S32 mDiscard;
-};
-
- #endif // LL_LOCALTEXTUREOBJECT_H
-
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index 5138c5e620..5138c5e620 100644..100755
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
diff --git a/indra/newview/lllocationhistory.h b/indra/newview/lllocationhistory.h
index 9fef42c5df..9fef42c5df 100644..100755
--- a/indra/newview/lllocationhistory.h
+++ b/indra/newview/lllocationhistory.h
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 8d9d70b50e..5022dba934 100644..100755
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -1217,11 +1217,11 @@ void LLLocationInputCtrl::onParcelIconClick(EParcelIcon icon)
case SCRIPTS_ICON:
{
LLViewerRegion* region = gAgent.getRegion();
- if(region && region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)
+ if(region && region->getRegionFlag(REGION_FLAGS_ESTATE_SKIP_SCRIPTS))
{
LLNotificationsUtil::add("ScriptsStopped");
}
- else if(region && region->getRegionFlags() & REGION_FLAGS_SKIP_SCRIPTS)
+ else if(region && region->getRegionFlag(REGION_FLAGS_SKIP_SCRIPTS))
{
LLNotificationsUtil::add("ScriptsNotRunning");
}
diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h
index cd6fd24077..cd6fd24077 100644..100755
--- a/indra/newview/lllocationinputctrl.h
+++ b/indra/newview/lllocationinputctrl.h
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index 2d7454b636..2d7454b636 100644..100755
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
diff --git a/indra/newview/lllogchat.h b/indra/newview/lllogchat.h
index e819f00dd9..e819f00dd9 100644..100755
--- a/indra/newview/lllogchat.h
+++ b/indra/newview/lllogchat.h
diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp
index 9b4f146332..9b4f146332 100644..100755
--- a/indra/newview/llloginhandler.cpp
+++ b/indra/newview/llloginhandler.cpp
diff --git a/indra/newview/llloginhandler.h b/indra/newview/llloginhandler.h
index 1f2eacd094..1f2eacd094 100644..100755
--- a/indra/newview/llloginhandler.h
+++ b/indra/newview/llloginhandler.h
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 419641d23c..977c50682f 100644..100755
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -30,7 +30,6 @@
// llcommon
#include "llevents.h"
-#include "llmd5.h"
#include "stringize.h"
// llmessage (!)
@@ -40,6 +39,7 @@
#include "lllogin.h"
// newview
+#include "llhasheduniqueid.h"
#include "llviewernetwork.h"
#include "llviewercontrol.h"
#include "llversioninfo.h"
@@ -202,7 +202,7 @@ MandatoryUpdateMachine::MandatoryUpdateMachine(LLLoginInstance & loginInstance,
void MandatoryUpdateMachine::start(void)
{
- llinfos << "starting manditory update machine" << llendl;
+ llinfos << "starting mandatory update machine" << llendl;
if(mUpdaterService.isChecking()) {
switch(mUpdaterService.getState()) {
@@ -488,6 +488,13 @@ LLLoginInstance::LLLoginInstance() :
mDispatcher.add("indeterminate", "", boost::bind(&LLLoginInstance::handleIndeterminate, this, _1));
}
+void LLLoginInstance::setPlatformInfo(const std::string platform,
+ const std::string platform_version)
+{
+ mPlatform = platform;
+ mPlatformVersion = platform_version;
+}
+
LLLoginInstance::~LLLoginInstance()
{
}
@@ -579,26 +586,22 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
// (re)initialize the request params with creds.
LLSD request_params = user_credential->getLoginParams();
- char hashed_unique_id_string[MD5HEX_STR_SIZE]; /* Flawfinder: ignore */
- LLMD5 hashed_unique_id;
- unsigned char unique_id[MAC_ADDRESS_BYTES];
- if(LLUUID::getNodeID(unique_id) == 0) {
- if(LLMachineID::getUniqueID(unique_id, sizeof(unique_id)) == 0) {
- llerrs << "Failed to get an id; cannot uniquely identify this machine." << llendl;
- }
+ unsigned char hashed_unique_id_string[MD5HEX_STR_SIZE];
+ if ( ! llHashedUniqueID(hashed_unique_id_string) )
+ {
+ llwarns << "Not providing a unique id in request params" << llendl;
}
- hashed_unique_id.update(unique_id, MAC_ADDRESS_BYTES);
- hashed_unique_id.finalize();
- hashed_unique_id.hex_digest(hashed_unique_id_string);
-
request_params["start"] = construct_start_string();
request_params["skipoptional"] = mSkipOptionalUpdate;
request_params["agree_to_tos"] = false; // Always false here. Set true in
request_params["read_critical"] = false; // handleTOSResponse
request_params["last_exec_event"] = mLastExecEvent;
- request_params["mac"] = hashed_unique_id_string;
- request_params["version"] = LLVersionInfo::getChannelAndVersion(); // Includes channel name
+ request_params["last_exec_duration"] = mLastExecDuration;
+ request_params["mac"] = (char*)hashed_unique_id_string;
+ request_params["version"] = LLVersionInfo::getVersion();
request_params["channel"] = LLVersionInfo::getChannel();
+ request_params["platform"] = mPlatform;
+ request_params["platform_version"] = mPlatformVersion;
request_params["id0"] = mSerialNumber;
request_params["host_id"] = gSavedSettings.getString("HostID");
request_params["extended_errors"] = true; // request message_id and message_args
@@ -784,20 +787,20 @@ void LLLoginInstance::updateApp(bool mandatory, const std::string& auth_msg)
LLSD payload;
payload["mandatory"] = mandatory;
-/*
- We're constructing one of the following 9 strings here:
- "DownloadWindowsMandatory"
- "DownloadWindowsReleaseForDownload"
- "DownloadWindows"
- "DownloadMacMandatory"
- "DownloadMacReleaseForDownload"
- "DownloadMac"
- "DownloadLinuxMandatory"
- "DownloadLinuxReleaseForDownload"
- "DownloadLinux"
-
- I've called them out explicitly in this comment so that they can be grepped for.
- */
+ /*
+ * We're constructing one of the following 9 strings here:
+ * "DownloadWindowsMandatory"
+ * "DownloadWindowsReleaseForDownload"
+ * "DownloadWindows"
+ * "DownloadMacMandatory"
+ * "DownloadMacReleaseForDownload"
+ * "DownloadMac"
+ * "DownloadLinuxMandatory"
+ * "DownloadLinuxReleaseForDownload"
+ * "DownloadLinux"
+ *
+ * I've called them out explicitly in this comment so that they can be grepped for.
+ */
std::string notification_name = "Download";
#if LL_WINDOWS
diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h
index 8b53431219..b0247da7c8 100644..100755
--- a/indra/newview/lllogininstance.h
+++ b/indra/newview/lllogininstance.h
@@ -66,6 +66,8 @@ public:
void setSkipOptionalUpdate(bool state) { mSkipOptionalUpdate = state; }
void setSerialNumber(const std::string& sn) { mSerialNumber = sn; }
void setLastExecEvent(int lee) { mLastExecEvent = lee; }
+ void setLastExecDuration(S32 duration) { mLastExecDuration = duration; }
+ void setPlatformInfo(const std::string platform, const std::string platform_version);
void setNotificationsInterface(LLNotificationsInterface* ni) { mNotifications = ni; }
@@ -99,6 +101,9 @@ private:
F64 mTransferRate;
std::string mSerialNumber;
int mLastExecEvent;
+ S32 mLastExecDuration;
+ std::string mPlatform;
+ std::string mPlatformVersion;
UpdaterLauncherCallback mUpdaterLauncher;
LLEventDispatcher mDispatcher;
LLUpdaterService * mUpdaterService;
diff --git a/indra/newview/lllookshistorypanel.h b/indra/newview/lllookshistorypanel.h
index 965b4d8416..965b4d8416 100644..100755
--- a/indra/newview/lllookshistorypanel.h
+++ b/indra/newview/lllookshistorypanel.h
diff --git a/indra/newview/llmachineid.cpp b/indra/newview/llmachineid.cpp
index cd6473921d..cd6473921d 100644..100755
--- a/indra/newview/llmachineid.cpp
+++ b/indra/newview/llmachineid.cpp
diff --git a/indra/newview/llmachineid.h b/indra/newview/llmachineid.h
index 6ef8c36fdb..6ef8c36fdb 100644..100755
--- a/indra/newview/llmachineid.h
+++ b/indra/newview/llmachineid.h
diff --git a/indra/newview/llmainlooprepeater.cpp b/indra/newview/llmainlooprepeater.cpp
index 5c020e6d98..5c020e6d98 100644..100755
--- a/indra/newview/llmainlooprepeater.cpp
+++ b/indra/newview/llmainlooprepeater.cpp
diff --git a/indra/newview/llmainlooprepeater.h b/indra/newview/llmainlooprepeater.h
index f84c0ca94c..f84c0ca94c 100644..100755
--- a/indra/newview/llmainlooprepeater.h
+++ b/indra/newview/llmainlooprepeater.h
diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp
index 9ec5d7c20c..a7d6cb5eac 100644..100755
--- a/indra/newview/llmanip.cpp
+++ b/indra/newview/llmanip.cpp
@@ -53,7 +53,7 @@
#include "llresmgr.h"
#include "pipeline.h"
#include "llglheaders.h"
-
+#include "lluiimage.h"
// Local constants...
const S32 VERTICAL_OFFSET = 50;
diff --git a/indra/newview/llmanip.h b/indra/newview/llmanip.h
index 6263e4244f..6263e4244f 100644..100755
--- a/indra/newview/llmanip.h
+++ b/indra/newview/llmanip.h
diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp
index 826e8d560a..d79f1040bb 100644..100755
--- a/indra/newview/llmaniprotate.cpp
+++ b/indra/newview/llmaniprotate.cpp
@@ -1689,7 +1689,6 @@ void LLManipRotate::highlightManipulators( S32 x, S32 y )
return;
}
- LLQuaternion object_rot = first_object->getRenderRotation();
LLVector3 rotation_center = gAgent.getPosAgentFromGlobal(mRotationCenter);
LLVector3 mouse_dir_x;
LLVector3 mouse_dir_y;
diff --git a/indra/newview/llmaniprotate.h b/indra/newview/llmaniprotate.h
index e8f1c24c58..e8f1c24c58 100644..100755
--- a/indra/newview/llmaniprotate.h
+++ b/indra/newview/llmaniprotate.h
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 00a0bf8894..ae0884ac5d 100644..100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1191,9 +1191,6 @@ void LLManipScale::dragFace( S32 x, S32 y )
mInSnapRegime = FALSE;
}
- BOOL send_scale_update = FALSE;
- BOOL send_position_update = FALSE;
-
LLVector3 dir_agent;
if( part_dir_local.mV[VX] )
{
@@ -1210,8 +1207,6 @@ void LLManipScale::dragFace( S32 x, S32 y )
stretchFace(
projected_vec(drag_start_dir_f, dir_agent) + drag_start_center_agent,
projected_vec(drag_delta, dir_agent));
- send_position_update = TRUE;
- send_scale_update = TRUE;
mDragPointGlobal = drag_point_global;
}
diff --git a/indra/newview/llmanipscale.h b/indra/newview/llmanipscale.h
index 5cb8898fd0..5cb8898fd0 100644..100755
--- a/indra/newview/llmanipscale.h
+++ b/indra/newview/llmanipscale.h
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 362308c176..b62db70ec8 100644..100755
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -485,7 +485,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
}
// Throttle updates to 10 per second.
- BOOL send_update = FALSE;
LLVector3 axis_f;
LLVector3d axis_d;
@@ -702,11 +701,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
LLVector3 old_position_local = object->getPosition();
LLVector3 new_position_local = selectNode->mSavedPositionLocal + (clamped_relative_move_f * objWorldRotation);
- // move and clamp root object first, before adjusting children
- if (new_position_local != old_position_local)
- {
- send_update = TRUE;
- }
//RN: I forget, but we need to do this because of snapping which doesn't often result
// in position changes even when the mouse moves
object->setPosition(new_position_local);
@@ -716,8 +710,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
if (selectNode->mIndividualSelection)
{
- send_update = FALSE;
-
// counter-translate child objects if we are moving the root as an individual
object->resetChildrenPosition(old_position_local - new_position_local, TRUE) ;
}
@@ -753,7 +745,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
}
// PR: Only update if changed
- LLVector3d old_position_global = object->getPositionGlobal();
LLVector3 old_position_agent = object->getPositionAgent();
LLVector3 new_position_agent = gAgent.getPosAgentFromGlobal(new_position_global);
if (object->isRootEdit())
@@ -775,11 +766,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
{
// counter-translate child objects if we are moving the root as an individual
object->resetChildrenPosition(old_position_agent - new_position_agent, TRUE) ;
- send_update = FALSE;
- }
- else if (old_position_global != new_position_global)
- {
- send_update = TRUE;
}
}
selectNode->mLastPositionLocal = object->getPosition();
@@ -1310,7 +1296,6 @@ void LLManipTranslate::renderSnapGuides()
// add in off-axis offset
tick_start += (mSnapOffsetAxis * mSnapOffsetMeters);
- BOOL is_sub_tick = FALSE;
F32 tick_scale = 1.f;
for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
{
@@ -1319,7 +1304,6 @@ void LLManipTranslate::renderSnapGuides()
break;
}
tick_scale *= 0.7f;
- is_sub_tick = TRUE;
}
// S32 num_ticks_to_fade = is_sub_tick ? num_ticks_per_side / 2 : num_ticks_per_side;
@@ -1542,7 +1526,6 @@ void LLManipTranslate::renderSnapGuides()
float a = line_alpha;
- LLColor4 col = LLUIColorTable::instance().getColor("SilhouetteChildColor");
{
//draw grid behind objects
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index 37567c7bd1..37567c7bd1 100644..100755
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp
index 0b009b68f7..0b009b68f7 100644..100755
--- a/indra/newview/llmarketplacefunctions.cpp
+++ b/indra/newview/llmarketplacefunctions.cpp
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index 4b8f7a1ac7..4b8f7a1ac7 100644..100755
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
diff --git a/indra/newview/llmarketplacenotifications.cpp b/indra/newview/llmarketplacenotifications.cpp
index 0886f9a990..0886f9a990 100644..100755
--- a/indra/newview/llmarketplacenotifications.cpp
+++ b/indra/newview/llmarketplacenotifications.cpp
diff --git a/indra/newview/llmarketplacenotifications.h b/indra/newview/llmarketplacenotifications.h
index 83a4e163c7..83a4e163c7 100644..100755
--- a/indra/newview/llmarketplacenotifications.h
+++ b/indra/newview/llmarketplacenotifications.h
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 99b4707158..2075aeed63 100644..100755
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -119,8 +119,8 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :
if(!getDecoupleTextureSize())
{
- S32 screen_width = llround((F32)getRect().getWidth() * LLUI::sGLScaleFactor.mV[VX]);
- S32 screen_height = llround((F32)getRect().getHeight() * LLUI::sGLScaleFactor.mV[VY]);
+ S32 screen_width = llround((F32)getRect().getWidth() * LLUI::getScaleFactor().mV[VX]);
+ S32 screen_height = llround((F32)getRect().getHeight() * LLUI::getScaleFactor().mV[VY]);
setTextureSize(screen_width, screen_height);
}
@@ -469,8 +469,8 @@ void LLMediaCtrl::reshape( S32 width, S32 height, BOOL called_from_parent )
{
if(!getDecoupleTextureSize())
{
- S32 screen_width = llround((F32)width * LLUI::sGLScaleFactor.mV[VX]);
- S32 screen_height = llround((F32)height * LLUI::sGLScaleFactor.mV[VY]);
+ S32 screen_width = llround((F32)width * LLUI::getScaleFactor().mV[VX]);
+ S32 screen_height = llround((F32)height * LLUI::getScaleFactor().mV[VY]);
// when floater is minimized, these sizes are negative
if ( screen_height > 0 && screen_width > 0 )
@@ -667,7 +667,7 @@ bool LLMediaCtrl::ensureMediaSourceExists()
mMediaSource->addObserver( this );
mMediaSource->setBackgroundColor( getBackgroundColor() );
mMediaSource->setTrustedBrowser(mTrusted);
- mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] );
+ mMediaSource->setPageZoomFactor( LLUI::getScaleFactor().mV[ VX ] );
if(mClearCache)
{
@@ -750,7 +750,7 @@ void LLMediaCtrl::draw()
{
gGL.pushUIMatrix();
{
- mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] );
+ mMediaSource->setPageZoomFactor( LLUI::getScaleFactor().mV[ VX ] );
// scale texture to fit the space using texture coords
gGL.getTexUnit(0)->bind(media_texture);
@@ -864,14 +864,14 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)
coords_opengl = mMediaSource->getMediaPlugin()->getTextureCoordsOpenGL();
}
- x = llround((F32)x * LLUI::sGLScaleFactor.mV[VX]);
+ x = llround((F32)x * LLUI::getScaleFactor().mV[VX]);
if ( ! coords_opengl )
{
- y = llround((F32)(y) * LLUI::sGLScaleFactor.mV[VY]);
+ y = llround((F32)(y) * LLUI::getScaleFactor().mV[VY]);
}
else
{
- y = llround((F32)(getRect().getHeight() - y) * LLUI::sGLScaleFactor.mV[VY]);
+ y = llround((F32)(getRect().getHeight() - y) * LLUI::getScaleFactor().mV[VY]);
};
}
diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h
index 7f2a5e1642..7f2a5e1642 100644..100755
--- a/indra/newview/llmediactrl.h
+++ b/indra/newview/llmediactrl.h
diff --git a/indra/newview/llmediadataclient.cpp b/indra/newview/llmediadataclient.cpp
index 31038b4aac..e3b46d5d2f 100644..100755
--- a/indra/newview/llmediadataclient.cpp
+++ b/indra/newview/llmediadataclient.cpp
@@ -564,7 +564,7 @@ LLMediaDataClient::Responder::Responder(const request_ptr_t &request)
}
/*virtual*/
-void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
+void LLMediaDataClient::Responder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
mRequest->stopTracking();
@@ -596,8 +596,8 @@ void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
}
else
{
- std::string msg = boost::lexical_cast<std::string>(status) + ": " + reason;
- LL_WARNS("LLMediaDataClient") << *mRequest << " http error(" << msg << ")" << LL_ENDL;
+ LL_WARNS("LLMediaDataClient") << *mRequest << " http error [status:"
+ << status << "]:" << content << ")" << LL_ENDL;
}
}
@@ -1003,7 +1003,7 @@ LLMediaDataClient::Responder *LLObjectMediaNavigateClient::RequestNavigate::crea
}
/*virtual*/
-void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string& reason)
+void LLObjectMediaNavigateClient::Responder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
getRequest()->stopTracking();
@@ -1017,7 +1017,7 @@ void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string
// class
if (status == HTTP_SERVICE_UNAVAILABLE)
{
- LLMediaDataClient::Responder::error(status, reason);
+ LLMediaDataClient::Responder::errorWithContent(status, reason, content);
}
else
{
diff --git a/indra/newview/llmediadataclient.h b/indra/newview/llmediadataclient.h
index ab90915c55..89e20a28d0 100644..100755
--- a/indra/newview/llmediadataclient.h
+++ b/indra/newview/llmediadataclient.h
@@ -195,7 +195,7 @@ protected:
public:
Responder(const request_ptr_t &request);
//If we get back an error (not found, etc...), handle it here
- virtual void error(U32 status, const std::string& reason);
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
//If we get back a normal response, handle it here. Default just logs it.
virtual void result(const LLSD& content);
@@ -400,7 +400,7 @@ protected:
public:
Responder(const request_ptr_t &request)
: LLMediaDataClient::Responder(request) {}
- virtual void error(U32 status, const std::string& reason);
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
virtual void result(const LLSD &content);
private:
void mediaNavigateBounceBack();
diff --git a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp
index 2b92b0b3d1..2b92b0b3d1 100644..100755
--- a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp
+++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp
diff --git a/indra/newview/llmenuoptionpathfindingrebakenavmesh.h b/indra/newview/llmenuoptionpathfindingrebakenavmesh.h
index 7b1d2873ba..7b1d2873ba 100644..100755
--- a/indra/newview/llmenuoptionpathfindingrebakenavmesh.h
+++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.h
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 1223615079..b47fe9d4b1 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -1215,8 +1215,8 @@ bool LLMeshRepoThread::headerReceived(const LLVolumeParams& mesh_params, U8* dat
mLODReqQ.push(req);
LLMeshRepository::sLODProcessing++;
}
+ mPendingLOD.erase(iter);
}
- mPendingLOD.erase(iter);
}
return true;
@@ -3222,6 +3222,7 @@ void LLPhysicsDecomp::doDecomposition()
param_map[params[i].mName] = params+i;
}
+ U32 ret = LLCD_OK;
//set parameter values
for (decomp_params::iterator iter = mCurRequest->mParams.begin(); iter != mCurRequest->mParams.end(); ++iter)
{
@@ -3235,7 +3236,6 @@ void LLPhysicsDecomp::doDecomposition()
continue;
}
- U32 ret = LLCD_OK;
if (param->mType == LLCDParam::LLCD_FLOAT)
{
@@ -3254,8 +3254,6 @@ void LLPhysicsDecomp::doDecomposition()
mCurRequest->setStatusMessage("Executing.");
- LLCDResult ret = LLCD_OK;
-
if (LLConvexDecomposition::getInstance() != NULL)
{
ret = LLConvexDecomposition::getInstance()->executeStage(stage);
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index 8602271f84..8602271f84 100644..100755
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
diff --git a/indra/newview/llmimetypes.cpp b/indra/newview/llmimetypes.cpp
index e689e39b26..e689e39b26 100644..100755
--- a/indra/newview/llmimetypes.cpp
+++ b/indra/newview/llmimetypes.cpp
diff --git a/indra/newview/llmimetypes.h b/indra/newview/llmimetypes.h
index ab629fd965..ab629fd965 100644..100755
--- a/indra/newview/llmimetypes.h
+++ b/indra/newview/llmimetypes.h
diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp
index eaa044cb59..252d1b78ea 100644..100755
--- a/indra/newview/llmorphview.cpp
+++ b/indra/newview/llmorphview.cpp
@@ -99,8 +99,6 @@ void LLMorphView::initialize()
//-----------------------------------------------------------------------------
void LLMorphView::shutdown()
{
- LLVOAvatarSelf::onCustomizeEnd();
-
if (isAgentAvatarValid())
{
gAgentAvatarp->startMotion( ANIM_AGENT_BODY_NOISE );
diff --git a/indra/newview/llmorphview.h b/indra/newview/llmorphview.h
index 318d49bba5..318d49bba5 100644..100755
--- a/indra/newview/llmorphview.h
+++ b/indra/newview/llmorphview.h
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index eb6591eb39..eb6591eb39 100644..100755
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h
index c525d9dfdb..c525d9dfdb 100644..100755
--- a/indra/newview/llmoveview.h
+++ b/indra/newview/llmoveview.h
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 54522bb7f6..54522bb7f6 100644..100755
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h
index 7a70370fe3..7a70370fe3 100644..100755
--- a/indra/newview/llmutelist.h
+++ b/indra/newview/llmutelist.h
diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp
index 1099316a19..1099316a19 100644..100755
--- a/indra/newview/llnamebox.cpp
+++ b/indra/newview/llnamebox.cpp
diff --git a/indra/newview/llnamebox.h b/indra/newview/llnamebox.h
index 76e8551268..76e8551268 100644..100755
--- a/indra/newview/llnamebox.h
+++ b/indra/newview/llnamebox.h
diff --git a/indra/newview/llnameeditor.cpp b/indra/newview/llnameeditor.cpp
index b3b1ff7c06..b3b1ff7c06 100644..100755
--- a/indra/newview/llnameeditor.cpp
+++ b/indra/newview/llnameeditor.cpp
diff --git a/indra/newview/llnameeditor.h b/indra/newview/llnameeditor.h
index b8c4a6042e..b8c4a6042e 100644..100755
--- a/indra/newview/llnameeditor.h
+++ b/indra/newview/llnameeditor.h
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 7f396b7b7e..7f396b7b7e 100644..100755
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index 271802d48a..271802d48a 100644..100755
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp
index 95caa2731a..95caa2731a 100644..100755
--- a/indra/newview/llnavigationbar.cpp
+++ b/indra/newview/llnavigationbar.cpp
diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h
index 7878bab24e..7878bab24e 100644..100755
--- a/indra/newview/llnavigationbar.h
+++ b/indra/newview/llnavigationbar.h
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index 1bda7640bd..dea90b9042 100644..100755
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -150,7 +150,7 @@ void LLNetMap::draw()
static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white);
static LLUIColor map_avatar_friend_color = LLUIColorTable::instance().getColor("MapAvatarFriendColor", LLColor4::white);
static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
- static LLUIColor map_track_disabled_color = LLUIColorTable::instance().getColor("MapTrackDisabledColor", LLColor4::white);
+ //static LLUIColor map_track_disabled_color = LLUIColorTable::instance().getColor("MapTrackDisabledColor", LLColor4::white);
static LLUIColor map_frustum_color = LLUIColorTable::instance().getColor("MapFrustumColor", LLColor4::white);
static LLUIColor map_frustum_rotating_color = LLUIColorTable::instance().getColor("MapFrustumRotatingColor", LLColor4::white);
diff --git a/indra/newview/llnetmap.h b/indra/newview/llnetmap.h
index 1f7e7d68c6..1f7e7d68c6 100644..100755
--- a/indra/newview/llnetmap.h
+++ b/indra/newview/llnetmap.h
diff --git a/indra/newview/llnotificationalerthandler.cpp b/indra/newview/llnotificationalerthandler.cpp
index 58a9b01a45..58a9b01a45 100644..100755
--- a/indra/newview/llnotificationalerthandler.cpp
+++ b/indra/newview/llnotificationalerthandler.cpp
diff --git a/indra/newview/llnotificationgrouphandler.cpp b/indra/newview/llnotificationgrouphandler.cpp
index 8fef102cf8..8fef102cf8 100644..100755
--- a/indra/newview/llnotificationgrouphandler.cpp
+++ b/indra/newview/llnotificationgrouphandler.cpp
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index bff4efa9ea..bff4efa9ea 100644..100755
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index eb4601a469..eb4601a469 100644..100755
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
diff --git a/indra/newview/llnotificationhinthandler.cpp b/indra/newview/llnotificationhinthandler.cpp
index f40369a2e0..f40369a2e0 100644..100755
--- a/indra/newview/llnotificationhinthandler.cpp
+++ b/indra/newview/llnotificationhinthandler.cpp
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp
index 152581c5a0..152581c5a0 100644..100755
--- a/indra/newview/llnotificationmanager.cpp
+++ b/indra/newview/llnotificationmanager.cpp
diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h
index f37c6b833c..f37c6b833c 100644..100755
--- a/indra/newview/llnotificationmanager.h
+++ b/indra/newview/llnotificationmanager.h
diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp
index 2657b84ef3..2657b84ef3 100644..100755
--- a/indra/newview/llnotificationofferhandler.cpp
+++ b/indra/newview/llnotificationofferhandler.cpp
diff --git a/indra/newview/llnotificationscripthandler.cpp b/indra/newview/llnotificationscripthandler.cpp
index 08c98e4f28..08c98e4f28 100644..100755
--- a/indra/newview/llnotificationscripthandler.cpp
+++ b/indra/newview/llnotificationscripthandler.cpp
diff --git a/indra/newview/llnotificationstorage.cpp b/indra/newview/llnotificationstorage.cpp
index b6184f09bf..2923221c90 100644..100755
--- a/indra/newview/llnotificationstorage.cpp
+++ b/indra/newview/llnotificationstorage.cpp
@@ -105,6 +105,8 @@ bool LLNotificationStorage::writeNotifications(const LLSD& pNotificationData) co
bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
{
+ LL_INFOS("LLNotificationStorage") << "starting read '" << mFileName << "'" << LL_ENDL;
+
bool didFileRead;
pNotificationData.clear();
@@ -126,6 +128,8 @@ bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
}
}
+ LL_INFOS("LLNotificationStorage") << "ending read '" << mFileName << "'" << LL_ENDL;
+
return didFileRead;
}
diff --git a/indra/newview/llnotificationstorage.h b/indra/newview/llnotificationstorage.h
index 7aabf7d09e..7aabf7d09e 100644..100755
--- a/indra/newview/llnotificationstorage.h
+++ b/indra/newview/llnotificationstorage.h
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index a85335f1ba..a85335f1ba 100644..100755
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
diff --git a/indra/newview/lloutfitobserver.cpp b/indra/newview/lloutfitobserver.cpp
index 5bb69367aa..5bb69367aa 100644..100755
--- a/indra/newview/lloutfitobserver.cpp
+++ b/indra/newview/lloutfitobserver.cpp
diff --git a/indra/newview/lloutfitobserver.h b/indra/newview/lloutfitobserver.h
index 87d4b0c998..87d4b0c998 100644..100755
--- a/indra/newview/lloutfitobserver.h
+++ b/indra/newview/lloutfitobserver.h
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index c15b6bd0d3..c15b6bd0d3 100644..100755
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index 2e3fb3f488..2e3fb3f488 100644..100755
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index 6c26073d5b..6c26073d5b 100644..100755
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h
index a346909027..0682af1278 100644..100755
--- a/indra/newview/lloutputmonitorctrl.h
+++ b/indra/newview/lloutputmonitorctrl.h
@@ -31,7 +31,7 @@
#include "../llui/llview.h"
#include "llmutelist.h"
#include "llspeakingindicatormanager.h"
-#include "../llui/lluiimage.h"
+//#include "../llui/lluiimage.h"
class LLTextBox;
class LLUICtrlFactory;
diff --git a/indra/newview/llpanelappearancetab.cpp b/indra/newview/llpanelappearancetab.cpp
index 8fa8867c69..8fa8867c69 100644..100755
--- a/indra/newview/llpanelappearancetab.cpp
+++ b/indra/newview/llpanelappearancetab.cpp
diff --git a/indra/newview/llpanelappearancetab.h b/indra/newview/llpanelappearancetab.h
index 2ed6b00497..2ed6b00497 100644..100755
--- a/indra/newview/llpanelappearancetab.h
+++ b/indra/newview/llpanelappearancetab.h
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 679b1bdcda..679b1bdcda 100644..100755
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index e33a850cfa..e33a850cfa 100644..100755
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
diff --git a/indra/newview/llpanelavatartag.cpp b/indra/newview/llpanelavatartag.cpp
index 4ac818eb26..4ac818eb26 100644..100755
--- a/indra/newview/llpanelavatartag.cpp
+++ b/indra/newview/llpanelavatartag.cpp
diff --git a/indra/newview/llpanelavatartag.h b/indra/newview/llpanelavatartag.h
index 1068ae0b4f..1068ae0b4f 100644..100755
--- a/indra/newview/llpanelavatartag.h
+++ b/indra/newview/llpanelavatartag.h
diff --git a/indra/newview/llpanelblockedlist.cpp b/indra/newview/llpanelblockedlist.cpp
index 115114bb53..115114bb53 100644..100755
--- a/indra/newview/llpanelblockedlist.cpp
+++ b/indra/newview/llpanelblockedlist.cpp
diff --git a/indra/newview/llpanelblockedlist.h b/indra/newview/llpanelblockedlist.h
index 07f0437656..07f0437656 100644..100755
--- a/indra/newview/llpanelblockedlist.h
+++ b/indra/newview/llpanelblockedlist.h
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 6889b98ab1..862e4be203 100644..100755
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -55,6 +55,7 @@
#include "lltrans.h"
#include "llscrollcontainer.h"
#include "llstatusbar.h"
+#include "llviewertexture.h"
const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index cedd65c405..cedd65c405 100644..100755
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 77e1487f38..1a427338e5 100644..100755
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -78,8 +78,6 @@ const char* LLPanelContents::PERMS_ANYONE_CONTROL_KEY = "perms_anyone_control";
BOOL LLPanelContents::postBuild()
{
- LLRect rect = this->getRect();
-
setMouseOpaque(FALSE);
childSetAction("button new script",&LLPanelContents::onClickNewScript, this);
diff --git a/indra/newview/llpanelcontents.h b/indra/newview/llpanelcontents.h
index 62ccb64a4c..62ccb64a4c 100644..100755
--- a/indra/newview/llpanelcontents.h
+++ b/indra/newview/llpanelcontents.h
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index 6b9edcb07c..e71dba5cae 100644..100755
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -28,7 +28,7 @@
#include "llpaneleditwearable.h"
#include "llpanel.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
#include "lluictrl.h"
#include "llscrollingpanellist.h"
#include "llvisualparam.h"
@@ -52,6 +52,7 @@
#include "lltexturectrl.h"
#include "lltextureentry.h"
#include "llviewercontrol.h" // gSavedSettings
+#include "llviewerregion.h"
#include "llviewertexturelist.h"
#include "llagentcamera.h"
#include "llmorphview.h"
@@ -104,7 +105,7 @@ enum ESubpart {
SUBPART_PHYSICS_ADVANCED,
};
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
typedef std::vector<ESubpart> subpart_vec_t;
@@ -718,8 +719,8 @@ BOOL LLPanelEditWearable::postBuild()
mBtnBack = getChild<LLButton>("back_btn");
mBackBtnLabel = mBtnBack->getLabelUnselected();
mBtnBack->setLabel(LLStringUtil::null);
- // handled at appearance panel level?
- //mBtnBack->setClickedCallback(boost::bind(&LLPanelEditWearable::onBackButtonClicked, this));
+
+ mBtnBack->setClickedCallback(boost::bind(&LLPanelEditWearable::onBackButtonClicked, this));
mNameEditor = getChild<LLLineEditor>("description");
@@ -762,11 +763,11 @@ BOOL LLPanelEditWearable::postBuild()
mWearablePtr = NULL;
- configureAlphaCheckbox(LLVOAvatarDefines::TEX_LOWER_ALPHA, "lower alpha texture invisible");
- configureAlphaCheckbox(LLVOAvatarDefines::TEX_UPPER_ALPHA, "upper alpha texture invisible");
- configureAlphaCheckbox(LLVOAvatarDefines::TEX_HEAD_ALPHA, "head alpha texture invisible");
- configureAlphaCheckbox(LLVOAvatarDefines::TEX_EYES_ALPHA, "eye alpha texture invisible");
- configureAlphaCheckbox(LLVOAvatarDefines::TEX_HAIR_ALPHA, "hair alpha texture invisible");
+ configureAlphaCheckbox(LLAvatarAppearanceDefines::TEX_LOWER_ALPHA, "lower alpha texture invisible");
+ configureAlphaCheckbox(LLAvatarAppearanceDefines::TEX_UPPER_ALPHA, "upper alpha texture invisible");
+ configureAlphaCheckbox(LLAvatarAppearanceDefines::TEX_HEAD_ALPHA, "head alpha texture invisible");
+ configureAlphaCheckbox(LLAvatarAppearanceDefines::TEX_EYES_ALPHA, "eye alpha texture invisible");
+ configureAlphaCheckbox(LLAvatarAppearanceDefines::TEX_HAIR_ALPHA, "hair alpha texture invisible");
// configure tab expanded callbacks
for (U32 type_index = 0; type_index < (U32)LLWearableType::WT_COUNT; ++type_index)
@@ -856,6 +857,14 @@ void LLPanelEditWearable::draw()
LLPanel::draw();
}
+void LLPanelEditWearable::onClose()
+{
+ if ( isDirty() )
+ {
+ revertChanges();
+ }
+}
+
void LLPanelEditWearable::setVisible(BOOL visible)
{
if (!visible)
@@ -865,13 +874,22 @@ void LLPanelEditWearable::setVisible(BOOL visible)
LLPanel::setVisible(visible);
}
-void LLPanelEditWearable::setWearable(LLWearable *wearable, BOOL disable_camera_switch)
+void LLPanelEditWearable::setWearable(LLViewerWearable *wearable, BOOL disable_camera_switch)
{
showWearable(mWearablePtr, FALSE, disable_camera_switch);
mWearablePtr = wearable;
showWearable(mWearablePtr, TRUE, disable_camera_switch);
}
+//static
+void LLPanelEditWearable::onBackButtonClicked(void* userdata)
+{
+ LLPanelEditWearable *panel = (LLPanelEditWearable*) userdata;
+ if ( panel->isDirty() )
+ {
+ LLAppearanceMgr::instance().setOutfitDirty( true );
+ }
+}
//static
void LLPanelEditWearable::onRevertButtonClicked(void* userdata)
@@ -922,7 +940,7 @@ void LLPanelEditWearable::onCommitSexChange()
}
bool is_new_sex_male = (gSavedSettings.getU32("AvatarSex") ? SEX_MALE : SEX_FEMALE) == SEX_MALE;
- LLWearable* wearable = gAgentWearables.getWearable(type, index);
+ LLViewerWearable* wearable = gAgentWearables.getViewerWearable(type, index);
if (wearable)
{
wearable->setVisualParamWeight(param->getID(), is_new_sex_male, FALSE);
@@ -1007,13 +1025,11 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type)
return;
bool is_modifiable = false;
- bool is_copyable = false;
if(mWearableItem)
{
const LLPermissions& perm = mWearableItem->getPermissions();
is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID());
- is_copyable = perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID());
}
if (is_modifiable)
@@ -1030,6 +1046,11 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type)
}
}
+void LLPanelEditWearable::incrementCofVersionLegacy()
+{
+
+}
+
void LLPanelEditWearable::saveChanges(bool force_save_as)
{
if (!mWearablePtr || !isDirty())
@@ -1041,17 +1062,50 @@ void LLPanelEditWearable::saveChanges(bool force_save_as)
U32 index = gAgentWearables.getWearableIndex(mWearablePtr);
std::string new_name = mNameEditor->getText();
+
+ // Find an existing link to this wearable's inventory item, if any, and its description field.
+ LLInventoryItem *link_item = NULL;
+ std::string description;
+ LLInventoryModel::item_array_t links =
+ LLAppearanceMgr::instance().findCOFItemLinks(mWearablePtr->getItemID());
+ if (links.size()>0)
+ {
+ link_item = links.get(0).get();
+ if (link_item && link_item->getIsLinkType())
+ {
+ description = link_item->getActualDescription();
+ }
+ }
+
if (force_save_as)
{
// the name of the wearable has changed, re-save wearable with new name
- LLAppearanceMgr::instance().removeCOFItemLinks(mWearablePtr->getItemID(),false);
- gAgentWearables.saveWearableAs(mWearablePtr->getType(), index, new_name, FALSE);
+ LLAppearanceMgr::instance().removeCOFItemLinks(mWearablePtr->getItemID());
+ gAgentWearables.saveWearableAs(mWearablePtr->getType(), index, new_name, description, FALSE);
mNameEditor->setText(mWearableItem->getName());
}
else
{
+ // Make another copy of this link, with the same
+ // description. This is needed to bump the COF
+ // version so texture baking service knows appearance has changed.
+ if (link_item)
+ {
+ // Create new link
+ link_inventory_item( gAgent.getID(),
+ link_item->getLinkedUUID(),
+ LLAppearanceMgr::instance().getCOF(),
+ link_item->getName(),
+ description,
+ LLAssetType::AT_LINK,
+ NULL);
+ // Remove old link
+ gInventory.purgeObject(link_item->getUUID());
+ }
gAgentWearables.saveWearable(mWearablePtr->getType(), index, TRUE, new_name);
}
+
+
}
void LLPanelEditWearable::revertChanges()
@@ -1069,7 +1123,7 @@ void LLPanelEditWearable::revertChanges()
gAgentAvatarp->wearableUpdated(mWearablePtr->getType(), FALSE);
}
-void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show, BOOL disable_camera_switch)
+void LLPanelEditWearable::showWearable(LLViewerWearable* wearable, BOOL show, BOOL disable_camera_switch)
{
if (!wearable)
{
@@ -1440,12 +1494,11 @@ void LLPanelEditWearable::buildParamList(LLScrollingPanelList *panel_list, value
{
panel_list->clearPanels();
value_map_t::iterator end = sorted_params.end();
- S32 height = 0;
for(value_map_t::iterator it = sorted_params.begin(); it != end; ++it)
{
LLPanel::Params p;
p.name("LLScrollingPanelParam");
- LLWearable *wearable = this->getWearable();
+ LLViewerWearable *wearable = this->getWearable();
LLScrollingPanelParamBase *panel_param = NULL;
if (wearable && wearable->getType() == LLWearableType::WT_PHYSICS) // Hack to show a different panel for physics. Should generalize this later.
{
@@ -1455,7 +1508,7 @@ void LLPanelEditWearable::buildParamList(LLScrollingPanelList *panel_list, value
{
panel_param = new LLScrollingPanelParam( p, NULL, (*it).second, TRUE, this->getWearable(), jointp);
}
- height = panel_list->addPanel( panel_param );
+ panel_list->addPanel( panel_param );
}
}
}
@@ -1505,7 +1558,7 @@ void LLPanelEditWearable::updateVerbs()
}
}
-void LLPanelEditWearable::configureAlphaCheckbox(LLVOAvatarDefines::ETextureIndex te, const std::string& name)
+void LLPanelEditWearable::configureAlphaCheckbox(LLAvatarAppearanceDefines::ETextureIndex te, const std::string& name)
{
LLCheckBoxCtrl* checkbox = mPanelAlpha->getChild<LLCheckBoxCtrl>(name);
checkbox->setCommitCallback(boost::bind(&LLPanelEditWearable::onInvisibilityCommit, this, checkbox, te));
@@ -1513,7 +1566,7 @@ void LLPanelEditWearable::configureAlphaCheckbox(LLVOAvatarDefines::ETextureInde
mAlphaCheckbox2Index[name] = te;
}
-void LLPanelEditWearable::onInvisibilityCommit(LLCheckBoxCtrl* checkbox_ctrl, LLVOAvatarDefines::ETextureIndex te)
+void LLPanelEditWearable::onInvisibilityCommit(LLCheckBoxCtrl* checkbox_ctrl, LLAvatarAppearanceDefines::ETextureIndex te)
{
if (!checkbox_ctrl) return;
if (!getWearable()) return;
@@ -1557,7 +1610,7 @@ void LLPanelEditWearable::updateAlphaCheckboxes()
for(string_texture_index_map_t::iterator iter = mAlphaCheckbox2Index.begin();
iter != mAlphaCheckbox2Index.end(); ++iter )
{
- LLVOAvatarDefines::ETextureIndex te = (LLVOAvatarDefines::ETextureIndex)iter->second;
+ LLAvatarAppearanceDefines::ETextureIndex te = (LLAvatarAppearanceDefines::ETextureIndex)iter->second;
LLCheckBoxCtrl* ctrl = mPanelAlpha->getChild<LLCheckBoxCtrl>(iter->first);
if (ctrl)
{
@@ -1575,7 +1628,7 @@ void LLPanelEditWearable::initPreviousAlphaTextures()
initPreviousAlphaTextureEntry(TEX_LOWER_ALPHA);
}
-void LLPanelEditWearable::initPreviousAlphaTextureEntry(LLVOAvatarDefines::ETextureIndex te)
+void LLPanelEditWearable::initPreviousAlphaTextureEntry(LLAvatarAppearanceDefines::ETextureIndex te)
{
LLLocalTextureObject *lto = getWearable()->getLocalTextureObject(te);
if (lto)
diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h
index 692a7ce90f..6533d55f2f 100644..100755
--- a/indra/newview/llpaneleditwearable.h
+++ b/indra/newview/llpaneleditwearable.h
@@ -30,12 +30,12 @@
#include "llpanel.h"
#include "llscrollingpanellist.h"
#include "llmodaldialog.h"
-#include "llvoavatardefines.h"
+#include "llavatarappearancedefines.h"
#include "llwearabletype.h"
class LLAccordionCtrl;
class LLCheckBoxCtrl;
-class LLWearable;
+class LLViewerWearable;
class LLTextBox;
class LLViewerInventoryItem;
class LLViewerVisualParam;
@@ -54,12 +54,13 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ BOOL isDirty() const; // LLUICtrl
/*virtual*/ void draw();
+ void onClose();
// changes camera angle to default for selected subpart
void changeCamera(U8 subpart);
- LLWearable* getWearable() { return mWearablePtr; }
- void setWearable(LLWearable *wearable, BOOL disable_camera_switch = FALSE);
+ LLViewerWearable* getWearable() { return mWearablePtr; }
+ void setWearable(LLViewerWearable *wearable, BOOL disable_camera_switch = FALSE);
void saveChanges(bool force_save_as = false);
void revertChanges();
@@ -70,17 +71,17 @@ public:
void updateScrollingPanelList();
static void onRevertButtonClicked(void* userdata);
+ static void onBackButtonClicked(void* userdata);
void onCommitSexChange();
void onSaveAsButtonClicked();
void saveAsCallback(const LLSD& notification, const LLSD& response);
virtual void setVisible(BOOL visible);
-
private:
typedef std::map<F32, LLViewerVisualParam*> value_map_t;
- void showWearable(LLWearable* wearable, BOOL show, BOOL disable_camera_switch = FALSE);
+ void showWearable(LLViewerWearable* wearable, BOOL show, BOOL disable_camera_switch = FALSE);
void updateScrollingPanelUI();
LLPanel* getPanel(LLWearableType::EType type);
void getSortedParams(value_map_t &sorted_params, const std::string &edit_group);
@@ -94,17 +95,17 @@ private:
void toggleTypeSpecificControls(LLWearableType::EType type);
void updateTypeSpecificControls(LLWearableType::EType type);
- //alpha mask checkboxes
- void configureAlphaCheckbox(LLVOAvatarDefines::ETextureIndex te, const std::string& name);
- void onInvisibilityCommit(LLCheckBoxCtrl* checkbox_ctrl, LLVOAvatarDefines::ETextureIndex te);
+ // alpha mask checkboxes
+ void configureAlphaCheckbox(LLAvatarAppearanceDefines::ETextureIndex te, const std::string& name);
+ void onInvisibilityCommit(LLCheckBoxCtrl* checkbox_ctrl, LLAvatarAppearanceDefines::ETextureIndex te);
void updateAlphaCheckboxes();
void initPreviousAlphaTextures();
- void initPreviousAlphaTextureEntry(LLVOAvatarDefines::ETextureIndex te);
+ void initPreviousAlphaTextureEntry(LLAvatarAppearanceDefines::ETextureIndex te);
// callback for HeightUnits parameter.
bool changeHeightUnits(const LLSD& new_value);
- // updates current metric and replacemet metric label text
+ // updates current metric and replacement metric label text
void updateMetricLayout(BOOL new_value);
// updates avatar height label
@@ -114,8 +115,11 @@ private:
void setWearablePanelVisibilityChangeCallback(LLPanel* bodypart_panel);
+ // *HACK Remove this when serverside texture baking is available on all regions.
+ void incrementCofVersionLegacy();
+
// the pointer to the wearable we're editing. NULL means we're not editing a wearable.
- LLWearable *mWearablePtr;
+ LLViewerWearable *mWearablePtr;
LLViewerInventoryItem* mWearableItem;
// these are constant no matter what wearable we're editing
@@ -128,7 +132,7 @@ private:
LLTextBox *mTxtAvatarHeight;
- // localized and parametrized strings that used to build avatar_height_label
+ // localized and parameterized strings that used to build avatar_height_label
std::string mMeters;
std::string mFeet;
std::string mHeigth;
@@ -151,7 +155,7 @@ private:
LLPanel *mPanelEyes;
LLPanel *mPanelHair;
- //clothes
+ // clothes
LLPanel *mPanelShirt;
LLPanel *mPanelPants;
LLPanel *mPanelShoes;
@@ -165,10 +169,10 @@ private:
LLPanel *mPanelTattoo;
LLPanel *mPanelPhysics;
- typedef std::map<std::string, LLVOAvatarDefines::ETextureIndex> string_texture_index_map_t;
+ typedef std::map<std::string, LLAvatarAppearanceDefines::ETextureIndex> string_texture_index_map_t;
string_texture_index_map_t mAlphaCheckbox2Index;
- typedef std::map<LLVOAvatarDefines::ETextureIndex, LLUUID> s32_uuid_map_t;
+ typedef std::map<LLAvatarAppearanceDefines::ETextureIndex, LLUUID> s32_uuid_map_t;
s32_uuid_map_t mPreviousAlphaTexture;
};
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 202be9671b..445c0d811f 100644..100755
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -84,7 +84,6 @@ BOOL LLPanelFace::postBuild()
childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this);
childSetAction("button align",&LLPanelFace::onClickAutoFix,this);
- LLRect rect = this->getRect();
LLTextureCtrl* mTextureCtrl;
LLColorSwatchCtrl* mColorSwatch;
diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h
index 3b5a9b1398..3b5a9b1398 100644..100755
--- a/indra/newview/llpanelface.h
+++ b/indra/newview/llpanelface.h
diff --git a/indra/newview/llpanelgenerictip.cpp b/indra/newview/llpanelgenerictip.cpp
index 4ccdaa78f3..4ccdaa78f3 100644..100755
--- a/indra/newview/llpanelgenerictip.cpp
+++ b/indra/newview/llpanelgenerictip.cpp
diff --git a/indra/newview/llpanelgenerictip.h b/indra/newview/llpanelgenerictip.h
index f8a3413fe4..f8a3413fe4 100644..100755
--- a/indra/newview/llpanelgenerictip.h
+++ b/indra/newview/llpanelgenerictip.h
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index ae217958f0..ae217958f0 100644..100755
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 0e6f5b8924..0e6f5b8924 100644..100755
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 0cd93b330a..0cd93b330a 100644..100755
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index b7f4a01139..b7f4a01139 100644..100755
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp
index 133b269c11..133b269c11 100644..100755
--- a/indra/newview/llpanelgroupinvite.cpp
+++ b/indra/newview/llpanelgroupinvite.cpp
diff --git a/indra/newview/llpanelgroupinvite.h b/indra/newview/llpanelgroupinvite.h
index 9f7b5ae9be..9f7b5ae9be 100644..100755
--- a/indra/newview/llpanelgroupinvite.h
+++ b/indra/newview/llpanelgroupinvite.h
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index 37755fb851..c927aeacb3 100644..100755
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -1383,13 +1383,11 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg,
S32 cur_land_tax;
S32 cur_group_tax;
S32 cur_parcel_dir_fee;
- S32 cur_total_tax;
S32 proj_object_tax;
S32 proj_light_tax;
S32 proj_land_tax;
S32 proj_group_tax;
S32 proj_parcel_dir_fee;
- S32 proj_total_tax;
S32 non_exempt_members;
msg->getS32Fast(_PREHASH_MoneyData, _PREHASH_IntervalDays, interval_days );
@@ -1413,8 +1411,6 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg,
msg->getStringFast(_PREHASH_MoneyData, _PREHASH_LastTaxDate, last_stipend_date);
msg->getStringFast(_PREHASH_MoneyData, _PREHASH_TaxDate, next_stipend_date);
- cur_total_tax = cur_object_tax + cur_light_tax + cur_land_tax + cur_group_tax + cur_parcel_dir_fee;
- proj_total_tax = proj_object_tax + proj_light_tax + proj_land_tax + proj_group_tax + proj_parcel_dir_fee;
if (interval_days != mImplementationp->mIntervalLength ||
current_interval != mImplementationp->mCurrentInterval)
diff --git a/indra/newview/llpanelgrouplandmoney.h b/indra/newview/llpanelgrouplandmoney.h
index ac3518ee19..ac3518ee19 100644..100755
--- a/indra/newview/llpanelgrouplandmoney.h
+++ b/indra/newview/llpanelgrouplandmoney.h
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index 93b108efcc..522ba5afae 100644..100755
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -35,6 +35,7 @@
#include "llviewerinventory.h"
#include "llinventorydefines.h"
#include "llinventoryfunctions.h"
+#include "llinventoryicon.h"
#include "llinventorymodel.h"
#include "llfloaterinventory.h"
#include "llagent.h"
diff --git a/indra/newview/llpanelgroupnotices.h b/indra/newview/llpanelgroupnotices.h
index 04629b5f6b..04629b5f6b 100644..100755
--- a/indra/newview/llpanelgroupnotices.h
+++ b/indra/newview/llpanelgroupnotices.h
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index cfdac11d26..cfdac11d26 100644..100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index 78bb3c57a1..78bb3c57a1 100644..100755
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
diff --git a/indra/newview/llpanelhome.cpp b/indra/newview/llpanelhome.cpp
index b03bab3127..b03bab3127 100644..100755
--- a/indra/newview/llpanelhome.cpp
+++ b/indra/newview/llpanelhome.cpp
diff --git a/indra/newview/llpanelhome.h b/indra/newview/llpanelhome.h
index 748566326f..748566326f 100644..100755
--- a/indra/newview/llpanelhome.h
+++ b/indra/newview/llpanelhome.h
diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp
index 389baa86cd..389baa86cd 100644..100755
--- a/indra/newview/llpanelimcontrolpanel.cpp
+++ b/indra/newview/llpanelimcontrolpanel.cpp
diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h
index 02915ec4bb..02915ec4bb 100644..100755
--- a/indra/newview/llpanelimcontrolpanel.h
+++ b/indra/newview/llpanelimcontrolpanel.h
diff --git a/indra/newview/llpanelland.cpp b/indra/newview/llpanelland.cpp
index 04c1a86f69..5321ebc777 100644..100755
--- a/indra/newview/llpanelland.cpp
+++ b/indra/newview/llpanelland.cpp
@@ -166,7 +166,7 @@ void LLPanelLandInfo::refresh()
getChildView("button abandon land")->setEnabled(owner_release || manager_releaseable || gAgent.isGodlike());
// only mainland sims are subdividable by owner
- if (regionp->getRegionFlags() && REGION_FLAGS_ALLOW_PARCEL_CHANGES)
+ if (regionp->getRegionFlag(REGION_FLAGS_ALLOW_PARCEL_CHANGES))
{
getChildView("button subdivide land")->setEnabled(owner_divide || manager_divideable || gAgent.isGodlike());
}
diff --git a/indra/newview/llpanelland.h b/indra/newview/llpanelland.h
index 2ab1618d47..2ab1618d47 100644..100755
--- a/indra/newview/llpanelland.h
+++ b/indra/newview/llpanelland.h
diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp
index e7bdc51b4a..e7bdc51b4a 100644..100755
--- a/indra/newview/llpanellandaudio.cpp
+++ b/indra/newview/llpanellandaudio.cpp
diff --git a/indra/newview/llpanellandaudio.h b/indra/newview/llpanellandaudio.h
index 32a45100f4..32a45100f4 100644..100755
--- a/indra/newview/llpanellandaudio.h
+++ b/indra/newview/llpanellandaudio.h
diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp
index c57746ec00..5c9b968ac9 100644..100755
--- a/indra/newview/llpanellandmarkinfo.cpp
+++ b/indra/newview/llpanellandmarkinfo.cpp
@@ -209,24 +209,6 @@ void LLPanelLandmarkInfo::processParcelInfo(const LLParcelData& parcel_data)
mMaturityRatingText->setText(LLViewerRegion::accessToString(SIM_ACCESS_PG));
}
- S32 region_x;
- S32 region_y;
- S32 region_z;
-
- // If the region position is zero, grab position from the global
- if(mPosRegion.isExactlyZero())
- {
- region_x = llround(parcel_data.global_x) % REGION_WIDTH_UNITS;
- region_y = llround(parcel_data.global_y) % REGION_WIDTH_UNITS;
- region_z = llround(parcel_data.global_z);
- }
- else
- {
- region_x = llround(mPosRegion.mV[VX]);
- region_y = llround(mPosRegion.mV[VY]);
- region_z = llround(mPosRegion.mV[VZ]);
- }
-
LLSD info;
info["update_verbs"] = true;
info["global_x"] = parcel_data.global_x;
diff --git a/indra/newview/llpanellandmarkinfo.h b/indra/newview/llpanellandmarkinfo.h
index 01a6fd6b3d..01a6fd6b3d 100644..100755
--- a/indra/newview/llpanellandmarkinfo.h
+++ b/indra/newview/llpanellandmarkinfo.h
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index 88400e4ef2..88400e4ef2 100644..100755
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index 8fae0f0b67..8fae0f0b67 100644..100755
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
diff --git a/indra/newview/llpanellandmedia.cpp b/indra/newview/llpanellandmedia.cpp
index 26cd3ff1c1..26cd3ff1c1 100644..100755
--- a/indra/newview/llpanellandmedia.cpp
+++ b/indra/newview/llpanellandmedia.cpp
diff --git a/indra/newview/llpanellandmedia.h b/indra/newview/llpanellandmedia.h
index 0e6292a25e..0e6292a25e 100644..100755
--- a/indra/newview/llpanellandmedia.h
+++ b/indra/newview/llpanellandmedia.h
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index bcb90bcb56..bcb90bcb56 100644..100755
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index c71cfc3783..c71cfc3783 100644..100755
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
diff --git a/indra/newview/llpanelloginlistener.cpp b/indra/newview/llpanelloginlistener.cpp
index 33efde11f3..33efde11f3 100644..100755
--- a/indra/newview/llpanelloginlistener.cpp
+++ b/indra/newview/llpanelloginlistener.cpp
diff --git a/indra/newview/llpanelloginlistener.h b/indra/newview/llpanelloginlistener.h
index 45dcea269c..45dcea269c 100644..100755
--- a/indra/newview/llpanelloginlistener.h
+++ b/indra/newview/llpanelloginlistener.h
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index d6535c88e9..d6535c88e9 100644..100755
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index 899931aa89..899931aa89 100644..100755
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
diff --git a/indra/newview/llpanelmarketplaceinbox.cpp b/indra/newview/llpanelmarketplaceinbox.cpp
index dcecce6fe4..dcecce6fe4 100644..100755
--- a/indra/newview/llpanelmarketplaceinbox.cpp
+++ b/indra/newview/llpanelmarketplaceinbox.cpp
diff --git a/indra/newview/llpanelmarketplaceinbox.h b/indra/newview/llpanelmarketplaceinbox.h
index 9eb74581a2..9eb74581a2 100644..100755
--- a/indra/newview/llpanelmarketplaceinbox.h
+++ b/indra/newview/llpanelmarketplaceinbox.h
diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp
index adfb2dee86..adfb2dee86 100644..100755
--- a/indra/newview/llpanelmarketplaceinboxinventory.cpp
+++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp
diff --git a/indra/newview/llpanelmarketplaceinboxinventory.h b/indra/newview/llpanelmarketplaceinboxinventory.h
index c05e18c300..c05e18c300 100644..100755
--- a/indra/newview/llpanelmarketplaceinboxinventory.h
+++ b/indra/newview/llpanelmarketplaceinboxinventory.h
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index a9af56f750..a9af56f750 100644..100755
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
diff --git a/indra/newview/llpanelme.h b/indra/newview/llpanelme.h
index 60e9d4317d..60e9d4317d 100644..100755
--- a/indra/newview/llpanelme.h
+++ b/indra/newview/llpanelme.h
diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp
index 2856ea9db1..2856ea9db1 100644..100755
--- a/indra/newview/llpanelmediasettingsgeneral.cpp
+++ b/indra/newview/llpanelmediasettingsgeneral.cpp
diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h
index 0ae1401ab2..0ae1401ab2 100644..100755
--- a/indra/newview/llpanelmediasettingsgeneral.h
+++ b/indra/newview/llpanelmediasettingsgeneral.h
diff --git a/indra/newview/llpanelmediasettingspermissions.cpp b/indra/newview/llpanelmediasettingspermissions.cpp
index cb0b7789ff..cb0b7789ff 100644..100755
--- a/indra/newview/llpanelmediasettingspermissions.cpp
+++ b/indra/newview/llpanelmediasettingspermissions.cpp
diff --git a/indra/newview/llpanelmediasettingspermissions.h b/indra/newview/llpanelmediasettingspermissions.h
index f976720180..f976720180 100644..100755
--- a/indra/newview/llpanelmediasettingspermissions.h
+++ b/indra/newview/llpanelmediasettingspermissions.h
diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp
index b588e8f930..b588e8f930 100644..100755
--- a/indra/newview/llpanelmediasettingssecurity.cpp
+++ b/indra/newview/llpanelmediasettingssecurity.cpp
diff --git a/indra/newview/llpanelmediasettingssecurity.h b/indra/newview/llpanelmediasettingssecurity.h
index fe8e843571..fe8e843571 100644..100755
--- a/indra/newview/llpanelmediasettingssecurity.h
+++ b/indra/newview/llpanelmediasettingssecurity.h
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index a50d9074f7..a50d9074f7 100644..100755
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
diff --git a/indra/newview/llpanelnearbymedia.h b/indra/newview/llpanelnearbymedia.h
index c3634de9b4..c3634de9b4 100644..100755
--- a/indra/newview/llpanelnearbymedia.h
+++ b/indra/newview/llpanelnearbymedia.h
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index d87b565b32..25ef9a3d6a 100644..100755
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -439,10 +439,9 @@ void LLPanelObject::getState( )
mCtrlRotY->setEnabled( enable_rotate );
mCtrlRotZ->setEnabled( enable_rotate );
- BOOL owners_identical;
LLUUID owner_id;
std::string owner_name;
- owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
+ LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
// BUG? Check for all objects being editable?
S32 roots_selected = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount();
diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h
index c4cf27ab1a..c4cf27ab1a 100644..100755
--- a/indra/newview/llpanelobject.h
+++ b/indra/newview/llpanelobject.h
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index 7555ac7b2c..d7130820ab 100644..100755
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -47,6 +47,7 @@
#include "llfolderview.h"
#include "llinventorybridge.h"
#include "llinventorydefines.h"
+#include "llinventoryicon.h"
#include "llinventoryfilter.h"
#include "llinventoryfunctions.h"
#include "llpreviewanim.h"
diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h
index f497c695b3..f497c695b3 100644..100755
--- a/indra/newview/llpanelobjectinventory.h
+++ b/indra/newview/llpanelobjectinventory.h
diff --git a/indra/newview/llpanelonlinestatus.cpp b/indra/newview/llpanelonlinestatus.cpp
index 8202dfe9a3..8202dfe9a3 100644..100755
--- a/indra/newview/llpanelonlinestatus.cpp
+++ b/indra/newview/llpanelonlinestatus.cpp
diff --git a/indra/newview/llpanelonlinestatus.h b/indra/newview/llpanelonlinestatus.h
index 7dc648f135..7dc648f135 100644..100755
--- a/indra/newview/llpanelonlinestatus.h
+++ b/indra/newview/llpanelonlinestatus.h
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index c09d4393c8..c09d4393c8 100644..100755
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index 5d4b8d4644..5d4b8d4644 100644..100755
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index f90236f6f2..f90236f6f2 100644..100755
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index a7917b457c..a7917b457c 100644..100755
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 4138558bad..4138558bad 100644..100755
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index 4740964dee..4740964dee 100644..100755
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp
index 0b2bf1d2c8..0b2bf1d2c8 100644..100755
--- a/indra/newview/llpanelpeoplemenus.cpp
+++ b/indra/newview/llpanelpeoplemenus.cpp
diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h
index abf5fa05e4..abf5fa05e4 100644..100755
--- a/indra/newview/llpanelpeoplemenus.h
+++ b/indra/newview/llpanelpeoplemenus.h
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index e641370d2e..131e8e9359 100644..100755
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -365,10 +365,8 @@ void LLPanelPermissions::refresh()
// Update creator text field
getChildView("Creator:")->setEnabled(TRUE);
- BOOL creators_identical;
std::string creator_name;
- creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID,
- creator_name);
+ LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_name);
getChild<LLUICtrl>("Creator Name")->setValue(creator_name);
getChildView("Creator Name")->setEnabled(TRUE);
diff --git a/indra/newview/llpanelpermissions.h b/indra/newview/llpanelpermissions.h
index 87805bbf90..87805bbf90 100644..100755
--- a/indra/newview/llpanelpermissions.h
+++ b/indra/newview/llpanelpermissions.h
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index 44cca21a76..44cca21a76 100644..100755
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h
index 3c1f14759c..3c1f14759c 100644..100755
--- a/indra/newview/llpanelpick.h
+++ b/indra/newview/llpanelpick.h
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
index 4ae0c0eb12..4ae0c0eb12 100644..100755
--- a/indra/newview/llpanelplaceinfo.cpp
+++ b/indra/newview/llpanelplaceinfo.cpp
diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h
index 64f0b6b550..64f0b6b550 100644..100755
--- a/indra/newview/llpanelplaceinfo.h
+++ b/indra/newview/llpanelplaceinfo.h
diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp
index 83b70d9f29..5d9971c16c 100644..100755
--- a/indra/newview/llpanelplaceprofile.cpp
+++ b/indra/newview/llpanelplaceprofile.cpp
@@ -568,7 +568,7 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
mTerraformLimitsText->setText(parcel->getAllowTerraform() ? on : off);
- if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)
+ if (region->getRegionFlag(REGION_FLAGS_ALLOW_PARCEL_CHANGES))
{
mSubdivideText->setText(getString("can_change"));
}
@@ -576,7 +576,7 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,
{
mSubdivideText->setText(getString("can_not_change"));
}
- if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if (region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL))
{
mResaleText->setText(getString("can_not_resell"));
}
diff --git a/indra/newview/llpanelplaceprofile.h b/indra/newview/llpanelplaceprofile.h
index f4c6145881..f4c6145881 100644..100755
--- a/indra/newview/llpanelplaceprofile.h
+++ b/indra/newview/llpanelplaceprofile.h
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 6c2a01fc82..6c2a01fc82 100644..100755
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index 85bdc2c4e1..85bdc2c4e1 100644..100755
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
diff --git a/indra/newview/llpanelplacestab.cpp b/indra/newview/llpanelplacestab.cpp
index 9644b7518e..9644b7518e 100644..100755
--- a/indra/newview/llpanelplacestab.cpp
+++ b/indra/newview/llpanelplacestab.cpp
diff --git a/indra/newview/llpanelplacestab.h b/indra/newview/llpanelplacestab.h
index 367ce46e2e..367ce46e2e 100644..100755
--- a/indra/newview/llpanelplacestab.h
+++ b/indra/newview/llpanelplacestab.h
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index 76d38f067d..76d38f067d 100644..100755
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
diff --git a/indra/newview/llpanelprimmediacontrols.h b/indra/newview/llpanelprimmediacontrols.h
index eeb433e306..eeb433e306 100644..100755
--- a/indra/newview/llpanelprimmediacontrols.h
+++ b/indra/newview/llpanelprimmediacontrols.h
diff --git a/indra/newview/llpanelsnapshot.cpp b/indra/newview/llpanelsnapshot.cpp
index 2f29e758c6..2f29e758c6 100644..100755
--- a/indra/newview/llpanelsnapshot.cpp
+++ b/indra/newview/llpanelsnapshot.cpp
diff --git a/indra/newview/llpanelsnapshot.h b/indra/newview/llpanelsnapshot.h
index f3274cf594..f3274cf594 100644..100755
--- a/indra/newview/llpanelsnapshot.h
+++ b/indra/newview/llpanelsnapshot.h
diff --git a/indra/newview/llpanelsnapshotinventory.cpp b/indra/newview/llpanelsnapshotinventory.cpp
index 381c11348d..381c11348d 100644..100755
--- a/indra/newview/llpanelsnapshotinventory.cpp
+++ b/indra/newview/llpanelsnapshotinventory.cpp
diff --git a/indra/newview/llpanelsnapshotlocal.cpp b/indra/newview/llpanelsnapshotlocal.cpp
index d153ff598d..d153ff598d 100644..100755
--- a/indra/newview/llpanelsnapshotlocal.cpp
+++ b/indra/newview/llpanelsnapshotlocal.cpp
diff --git a/indra/newview/llpanelsnapshotoptions.cpp b/indra/newview/llpanelsnapshotoptions.cpp
index 554fabe5b3..554fabe5b3 100644..100755
--- a/indra/newview/llpanelsnapshotoptions.cpp
+++ b/indra/newview/llpanelsnapshotoptions.cpp
diff --git a/indra/newview/llpanelsnapshotpostcard.cpp b/indra/newview/llpanelsnapshotpostcard.cpp
index f2bb8f530b..f2bb8f530b 100644..100755
--- a/indra/newview/llpanelsnapshotpostcard.cpp
+++ b/indra/newview/llpanelsnapshotpostcard.cpp
diff --git a/indra/newview/llpanelsnapshotprofile.cpp b/indra/newview/llpanelsnapshotprofile.cpp
index a706318369..a706318369 100644..100755
--- a/indra/newview/llpanelsnapshotprofile.cpp
+++ b/indra/newview/llpanelsnapshotprofile.cpp
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 0756faf5c0..0756faf5c0 100644..100755
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
diff --git a/indra/newview/llpanelteleporthistory.h b/indra/newview/llpanelteleporthistory.h
index 47b607a2f4..47b607a2f4 100644..100755
--- a/indra/newview/llpanelteleporthistory.h
+++ b/indra/newview/llpanelteleporthistory.h
diff --git a/indra/newview/llpaneltiptoast.cpp b/indra/newview/llpaneltiptoast.cpp
index 35009a552d..35009a552d 100644..100755
--- a/indra/newview/llpaneltiptoast.cpp
+++ b/indra/newview/llpaneltiptoast.cpp
diff --git a/indra/newview/llpaneltiptoast.h b/indra/newview/llpaneltiptoast.h
index cb09f1dca6..cb09f1dca6 100644..100755
--- a/indra/newview/llpaneltiptoast.h
+++ b/indra/newview/llpaneltiptoast.h
diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp
index 343c140bbb..9dd665198f 100644..100755
--- a/indra/newview/llpaneltopinfobar.cpp
+++ b/indra/newview/llpaneltopinfobar.cpp
@@ -417,11 +417,11 @@ void LLPanelTopInfoBar::onParcelIconClick(EParcelIcon icon)
case SCRIPTS_ICON:
{
LLViewerRegion* region = gAgent.getRegion();
- if(region && region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)
+ if(region && region->getRegionFlag(REGION_FLAGS_ESTATE_SKIP_SCRIPTS))
{
LLNotificationsUtil::add("ScriptsStopped");
}
- else if(region && region->getRegionFlags() & REGION_FLAGS_SKIP_SCRIPTS)
+ else if(region && region->getRegionFlag(REGION_FLAGS_SKIP_SCRIPTS))
{
LLNotificationsUtil::add("ScriptsNotRunning");
}
diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h
index d58d95be90..d58d95be90 100644..100755
--- a/indra/newview/llpaneltopinfobar.h
+++ b/indra/newview/llpaneltopinfobar.h
diff --git a/indra/newview/llpanelvoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp
index 6be2ea6481..6be2ea6481 100644..100755
--- a/indra/newview/llpanelvoicedevicesettings.cpp
+++ b/indra/newview/llpanelvoicedevicesettings.cpp
diff --git a/indra/newview/llpanelvoicedevicesettings.h b/indra/newview/llpanelvoicedevicesettings.h
index ba3bcad0dc..ba3bcad0dc 100644..100755
--- a/indra/newview/llpanelvoicedevicesettings.h
+++ b/indra/newview/llpanelvoicedevicesettings.h
diff --git a/indra/newview/llpanelvoiceeffect.cpp b/indra/newview/llpanelvoiceeffect.cpp
index 5fec6d967d..5fec6d967d 100644..100755
--- a/indra/newview/llpanelvoiceeffect.cpp
+++ b/indra/newview/llpanelvoiceeffect.cpp
diff --git a/indra/newview/llpanelvoiceeffect.h b/indra/newview/llpanelvoiceeffect.h
index bba525e1df..bba525e1df 100644..100755
--- a/indra/newview/llpanelvoiceeffect.h
+++ b/indra/newview/llpanelvoiceeffect.h
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index 13b746dbab..02d363d795 100644..100755
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -252,10 +252,9 @@ void LLPanelVolume::getState( )
return;
}
- BOOL owners_identical;
LLUUID owner_id;
std::string owner_name;
- owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
+ LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
// BUG? Check for all objects being editable?
BOOL editable = root_objectp->permModify() && !root_objectp->isPermanentEnforced();
diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h
index deb6b6f2a6..deb6b6f2a6 100644..100755
--- a/indra/newview/llpanelvolume.h
+++ b/indra/newview/llpanelvolume.h
diff --git a/indra/newview/llpanelvolumepulldown.cpp b/indra/newview/llpanelvolumepulldown.cpp
index aea7b33d7f..aea7b33d7f 100644..100755
--- a/indra/newview/llpanelvolumepulldown.cpp
+++ b/indra/newview/llpanelvolumepulldown.cpp
diff --git a/indra/newview/llpanelvolumepulldown.h b/indra/newview/llpanelvolumepulldown.h
index 0d86e6bd28..0d86e6bd28 100644..100755
--- a/indra/newview/llpanelvolumepulldown.h
+++ b/indra/newview/llpanelvolumepulldown.h
diff --git a/indra/newview/llpanelwearing.cpp b/indra/newview/llpanelwearing.cpp
index 3b9934d4be..aa3ed22bee 100644..100755
--- a/indra/newview/llpanelwearing.cpp
+++ b/indra/newview/llpanelwearing.cpp
@@ -77,11 +77,7 @@ private:
{
uuid_vec_t selected_uuids;
mPanelWearing->getSelectedItemsUUIDs(selected_uuids);
-
- for (uuid_vec_t::const_iterator it=selected_uuids.begin(); it != selected_uuids.end(); ++it)
- {
- LLAppearanceMgr::instance().removeItemFromAvatar(*it);
- }
+ LLAppearanceMgr::instance().removeItemsFromAvatar(selected_uuids);
}
LLToggleableMenu* mMenu;
@@ -97,12 +93,11 @@ protected:
{
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
- functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
-
registrar.add("Wearing.Edit", boost::bind(&edit_outfit));
- registrar.add("Wearing.TakeOff", boost::bind(handleMultiple, take_off, mUUIDs));
- registrar.add("Wearing.Detach", boost::bind(handleMultiple, take_off, mUUIDs));
-
+ registrar.add("Wearing.TakeOff",
+ boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
+ registrar.add("Wearing.Detach",
+ boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
LLContextMenu* menu = createFromFile("menu_wearing_tab.xml");
updateMenuItemsVisibility(menu);
diff --git a/indra/newview/llpanelwearing.h b/indra/newview/llpanelwearing.h
index 9a212b3cca..9a212b3cca 100644..100755
--- a/indra/newview/llpanelwearing.h
+++ b/indra/newview/llpanelwearing.h
diff --git a/indra/newview/llparcelselection.cpp b/indra/newview/llparcelselection.cpp
index 4d1901adc9..4d1901adc9 100644..100755
--- a/indra/newview/llparcelselection.cpp
+++ b/indra/newview/llparcelselection.cpp
diff --git a/indra/newview/llparcelselection.h b/indra/newview/llparcelselection.h
index 1cbdfc6f74..1cbdfc6f74 100644..100755
--- a/indra/newview/llparcelselection.h
+++ b/indra/newview/llparcelselection.h
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index c53760bca1..c53760bca1 100644..100755
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index 3a3ae76604..3a3ae76604 100644..100755
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
diff --git a/indra/newview/llpatchvertexarray.cpp b/indra/newview/llpatchvertexarray.cpp
index dece2928c0..dece2928c0 100644..100755
--- a/indra/newview/llpatchvertexarray.cpp
+++ b/indra/newview/llpatchvertexarray.cpp
diff --git a/indra/newview/llpatchvertexarray.h b/indra/newview/llpatchvertexarray.h
index 721f3f18b1..721f3f18b1 100644..100755
--- a/indra/newview/llpatchvertexarray.h
+++ b/indra/newview/llpatchvertexarray.h
diff --git a/indra/newview/llpathfindingcharacter.cpp b/indra/newview/llpathfindingcharacter.cpp
index 00f2ebc4bb..00f2ebc4bb 100644..100755
--- a/indra/newview/llpathfindingcharacter.cpp
+++ b/indra/newview/llpathfindingcharacter.cpp
diff --git a/indra/newview/llpathfindingcharacter.h b/indra/newview/llpathfindingcharacter.h
index 7cf9f401b0..7cf9f401b0 100644..100755
--- a/indra/newview/llpathfindingcharacter.h
+++ b/indra/newview/llpathfindingcharacter.h
diff --git a/indra/newview/llpathfindingcharacterlist.cpp b/indra/newview/llpathfindingcharacterlist.cpp
index 12340cebfa..12340cebfa 100644..100755
--- a/indra/newview/llpathfindingcharacterlist.cpp
+++ b/indra/newview/llpathfindingcharacterlist.cpp
diff --git a/indra/newview/llpathfindingcharacterlist.h b/indra/newview/llpathfindingcharacterlist.h
index 4ecf70001d..4ecf70001d 100644..100755
--- a/indra/newview/llpathfindingcharacterlist.h
+++ b/indra/newview/llpathfindingcharacterlist.h
diff --git a/indra/newview/llpathfindinglinkset.cpp b/indra/newview/llpathfindinglinkset.cpp
index 50b76378f5..50b76378f5 100644..100755
--- a/indra/newview/llpathfindinglinkset.cpp
+++ b/indra/newview/llpathfindinglinkset.cpp
diff --git a/indra/newview/llpathfindinglinkset.h b/indra/newview/llpathfindinglinkset.h
index 308a3a1e0f..308a3a1e0f 100644..100755
--- a/indra/newview/llpathfindinglinkset.h
+++ b/indra/newview/llpathfindinglinkset.h
diff --git a/indra/newview/llpathfindinglinksetlist.cpp b/indra/newview/llpathfindinglinksetlist.cpp
index b886e46765..b886e46765 100644..100755
--- a/indra/newview/llpathfindinglinksetlist.cpp
+++ b/indra/newview/llpathfindinglinksetlist.cpp
diff --git a/indra/newview/llpathfindinglinksetlist.h b/indra/newview/llpathfindinglinksetlist.h
index 1d38e4c11a..1d38e4c11a 100644..100755
--- a/indra/newview/llpathfindinglinksetlist.h
+++ b/indra/newview/llpathfindinglinksetlist.h
diff --git a/indra/newview/llpathfindingmanager.cpp b/indra/newview/llpathfindingmanager.cpp
index 2dd01e931e..c277359133 100644..100755
--- a/indra/newview/llpathfindingmanager.cpp
+++ b/indra/newview/llpathfindingmanager.cpp
@@ -108,7 +108,7 @@ public:
virtual ~NavMeshStatusResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
protected:
@@ -130,7 +130,7 @@ public:
virtual ~NavMeshResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
protected:
@@ -151,7 +151,7 @@ public:
virtual ~AgentStateResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
protected:
@@ -170,7 +170,7 @@ public:
virtual ~NavMeshRebakeResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string& pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent);
protected:
@@ -190,9 +190,11 @@ public:
virtual ~LinksetsResponder();
void handleObjectLinksetsResult(const LLSD &pContent);
- void handleObjectLinksetsError(U32 pStatus, const std::string &pReason, const std::string &pURL);
+ void handleObjectLinksetsError(U32 pStatus, const std::string &pReason,
+ const LLSD& pContent, const std::string &pURL);
void handleTerrainLinksetsResult(const LLSD &pContent);
- void handleTerrainLinksetsError(U32 pStatus, const std::string &pReason, const std::string &pURL);
+ void handleTerrainLinksetsError(U32 pStatus, const std::string &pReason,
+ const LLSD& pContent, const std::string &pURL);
protected:
@@ -230,7 +232,7 @@ public:
virtual ~ObjectLinksetsResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string &pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent);
protected:
@@ -250,7 +252,7 @@ public:
virtual ~TerrainLinksetsResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string &pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent);
protected:
@@ -270,7 +272,7 @@ public:
virtual ~CharactersResponder();
virtual void result(const LLSD &pContent);
- virtual void error(U32 pStatus, const std::string &pReason);
+ virtual void errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent);
protected:
@@ -800,9 +802,9 @@ void NavMeshStatusResponder::result(const LLSD &pContent)
LLPathfindingManager::getInstance()->handleNavMeshStatusRequest(navMeshStatus, mRegion, mIsGetStatusOnly);
}
-void NavMeshStatusResponder::error(U32 pStatus, const std::string& pReason)
+void NavMeshStatusResponder::errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent)
{
- llwarns << "error with request to URL '" << mCapabilityURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "NavMeshStatusResponder error [status:" << pStatus << "]: " << pContent << llendl;
LLPathfindingNavMeshStatus navMeshStatus(mRegionUUID);
LLPathfindingManager::getInstance()->handleNavMeshStatusRequest(navMeshStatus, mRegion, mIsGetStatusOnly);
}
@@ -828,9 +830,9 @@ void NavMeshResponder::result(const LLSD &pContent)
mNavMeshPtr->handleNavMeshResult(pContent, mNavMeshVersion);
}
-void NavMeshResponder::error(U32 pStatus, const std::string& pReason)
+void NavMeshResponder::errorWithContent(U32 pStatus, const std::string& pReason, const LLSD& pContent)
{
- mNavMeshPtr->handleNavMeshError(pStatus, pReason, mCapabilityURL, mNavMeshVersion);
+ mNavMeshPtr->handleNavMeshError(pStatus, pReason, pContent, mCapabilityURL, mNavMeshVersion);
}
//---------------------------------------------------------------------------
@@ -855,9 +857,9 @@ void AgentStateResponder::result(const LLSD &pContent)
LLPathfindingManager::getInstance()->handleAgentState(canRebakeRegion);
}
-void AgentStateResponder::error(U32 pStatus, const std::string &pReason)
+void AgentStateResponder::errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent)
{
- llwarns << "error with request to URL '" << mCapabilityURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "AgentStateResponder error [status:" << pStatus << "]: " << pContent << llendl;
LLPathfindingManager::getInstance()->handleAgentState(FALSE);
}
@@ -881,9 +883,9 @@ void NavMeshRebakeResponder::result(const LLSD &pContent)
mRebakeNavMeshCallback(true);
}
-void NavMeshRebakeResponder::error(U32 pStatus, const std::string &pReason)
+void NavMeshRebakeResponder::errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent)
{
- llwarns << "error with request to URL '" << mCapabilityURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "NavMeshRebakeResponder error [status:" << pStatus << "]: " << pContent << llendl;
mRebakeNavMeshCallback(false);
}
@@ -916,9 +918,11 @@ void LinksetsResponder::handleObjectLinksetsResult(const LLSD &pContent)
}
}
-void LinksetsResponder::handleObjectLinksetsError(U32 pStatus, const std::string &pReason, const std::string &pURL)
+void LinksetsResponder::handleObjectLinksetsError(U32 pStatus, const std::string &pReason,
+ const LLSD& pContent, const std::string &pURL)
{
- llwarns << "error with request to URL '" << pURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "LinksetsResponder object linksets error with request to URL '" << pURL << "' [status:"
+ << pStatus << "]: " << pContent << llendl;
mObjectMessagingState = kReceivedError;
if (mTerrainMessagingState != kWaiting)
{
@@ -937,8 +941,11 @@ void LinksetsResponder::handleTerrainLinksetsResult(const LLSD &pContent)
}
}
-void LinksetsResponder::handleTerrainLinksetsError(U32 pStatus, const std::string &pReason, const std::string &pURL)
+void LinksetsResponder::handleTerrainLinksetsError(U32 pStatus, const std::string &pReason,
+ const LLSD& pContent, const std::string &pURL)
{
+ llwarns << "LinksetsResponder terrain linksets error with request to URL '" << pURL << "' [status:"
+ << pStatus << "]: " << pContent << llendl;
mTerrainMessagingState = kReceivedError;
if (mObjectMessagingState != kWaiting)
{
@@ -988,9 +995,9 @@ void ObjectLinksetsResponder::result(const LLSD &pContent)
mLinksetsResponsderPtr->handleObjectLinksetsResult(pContent);
}
-void ObjectLinksetsResponder::error(U32 pStatus, const std::string &pReason)
+void ObjectLinksetsResponder::errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent)
{
- mLinksetsResponsderPtr->handleObjectLinksetsError(pStatus, pReason, mCapabilityURL);
+ mLinksetsResponsderPtr->handleObjectLinksetsError(pStatus, pReason, pContent, mCapabilityURL);
}
//---------------------------------------------------------------------------
@@ -1013,9 +1020,9 @@ void TerrainLinksetsResponder::result(const LLSD &pContent)
mLinksetsResponsderPtr->handleTerrainLinksetsResult(pContent);
}
-void TerrainLinksetsResponder::error(U32 pStatus, const std::string &pReason)
+void TerrainLinksetsResponder::errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent)
{
- mLinksetsResponsderPtr->handleTerrainLinksetsError(pStatus, pReason, mCapabilityURL);
+ mLinksetsResponsderPtr->handleTerrainLinksetsError(pStatus, pReason, pContent, mCapabilityURL);
}
//---------------------------------------------------------------------------
@@ -1040,9 +1047,9 @@ void CharactersResponder::result(const LLSD &pContent)
mCharactersCallback(mRequestId, LLPathfindingManager::kRequestCompleted, characterListPtr);
}
-void CharactersResponder::error(U32 pStatus, const std::string &pReason)
+void CharactersResponder::errorWithContent(U32 pStatus, const std::string &pReason, const LLSD& pContent)
{
- llwarns << "error with request to URL '" << mCapabilityURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "CharactersResponder error [status:" << pStatus << "]: " << pContent << llendl;
LLPathfindingObjectListPtr characterListPtr = LLPathfindingObjectListPtr(new LLPathfindingCharacterList());
mCharactersCallback(mRequestId, LLPathfindingManager::kRequestError, characterListPtr);
diff --git a/indra/newview/llpathfindingmanager.h b/indra/newview/llpathfindingmanager.h
index c61ff244fc..c61ff244fc 100644..100755
--- a/indra/newview/llpathfindingmanager.h
+++ b/indra/newview/llpathfindingmanager.h
diff --git a/indra/newview/llpathfindingnavmesh.cpp b/indra/newview/llpathfindingnavmesh.cpp
index e01dd3a152..0c23e5ac92 100644..100755
--- a/indra/newview/llpathfindingnavmesh.cpp
+++ b/indra/newview/llpathfindingnavmesh.cpp
@@ -184,9 +184,10 @@ void LLPathfindingNavMesh::handleNavMeshError()
setRequestStatus(kNavMeshRequestError);
}
-void LLPathfindingNavMesh::handleNavMeshError(U32 pStatus, const std::string &pReason, const std::string &pURL, U32 pNavMeshVersion)
+void LLPathfindingNavMesh::handleNavMeshError(U32 pStatus, const std::string &pReason, const LLSD& pContent, const std::string &pURL, U32 pNavMeshVersion)
{
- llwarns << "error with request to URL '" << pURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
+ llwarns << "LLPathfindingNavMesh error with request to URL '" << pURL << "' [status:"
+ << pStatus << "]: " << pContent << llendl;
if (mNavMeshStatus.getVersion() == pNavMeshVersion)
{
handleNavMeshError();
diff --git a/indra/newview/llpathfindingnavmesh.h b/indra/newview/llpathfindingnavmesh.h
index 7a844f54ce..b872ccad7c 100644..100755
--- a/indra/newview/llpathfindingnavmesh.h
+++ b/indra/newview/llpathfindingnavmesh.h
@@ -74,7 +74,7 @@ public:
void handleNavMeshResult(const LLSD &pContent, U32 pNavMeshVersion);
void handleNavMeshNotEnabled();
void handleNavMeshError();
- void handleNavMeshError(U32 pStatus, const std::string &pReason, const std::string &pURL, U32 pNavMeshVersion);
+ void handleNavMeshError(U32 pStatus, const std::string &pReason, const LLSD& pContent, const std::string &pURL, U32 pNavMeshVersion);
protected:
diff --git a/indra/newview/llpathfindingnavmeshstatus.cpp b/indra/newview/llpathfindingnavmeshstatus.cpp
index 2eaa6075ca..2eaa6075ca 100644..100755
--- a/indra/newview/llpathfindingnavmeshstatus.cpp
+++ b/indra/newview/llpathfindingnavmeshstatus.cpp
diff --git a/indra/newview/llpathfindingnavmeshstatus.h b/indra/newview/llpathfindingnavmeshstatus.h
index 74533fa484..74533fa484 100644..100755
--- a/indra/newview/llpathfindingnavmeshstatus.h
+++ b/indra/newview/llpathfindingnavmeshstatus.h
diff --git a/indra/newview/llpathfindingnavmeshzone.cpp b/indra/newview/llpathfindingnavmeshzone.cpp
index e190dbba65..e190dbba65 100644..100755
--- a/indra/newview/llpathfindingnavmeshzone.cpp
+++ b/indra/newview/llpathfindingnavmeshzone.cpp
diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h
index baa1cc5979..baa1cc5979 100644..100755
--- a/indra/newview/llpathfindingnavmeshzone.h
+++ b/indra/newview/llpathfindingnavmeshzone.h
diff --git a/indra/newview/llpathfindingobject.cpp b/indra/newview/llpathfindingobject.cpp
index 900763eae4..900763eae4 100644..100755
--- a/indra/newview/llpathfindingobject.cpp
+++ b/indra/newview/llpathfindingobject.cpp
diff --git a/indra/newview/llpathfindingobject.h b/indra/newview/llpathfindingobject.h
index b8d3ca2364..b8d3ca2364 100644..100755
--- a/indra/newview/llpathfindingobject.h
+++ b/indra/newview/llpathfindingobject.h
diff --git a/indra/newview/llpathfindingobjectlist.cpp b/indra/newview/llpathfindingobjectlist.cpp
index f1ecb45fc0..f1ecb45fc0 100644..100755
--- a/indra/newview/llpathfindingobjectlist.cpp
+++ b/indra/newview/llpathfindingobjectlist.cpp
diff --git a/indra/newview/llpathfindingobjectlist.h b/indra/newview/llpathfindingobjectlist.h
index 61580582d3..61580582d3 100644..100755
--- a/indra/newview/llpathfindingobjectlist.h
+++ b/indra/newview/llpathfindingobjectlist.h
diff --git a/indra/newview/llpathfindingpathtool.cpp b/indra/newview/llpathfindingpathtool.cpp
index 006755e20b..006755e20b 100644..100755
--- a/indra/newview/llpathfindingpathtool.cpp
+++ b/indra/newview/llpathfindingpathtool.cpp
diff --git a/indra/newview/llpathfindingpathtool.h b/indra/newview/llpathfindingpathtool.h
index 97284265f1..97284265f1 100644..100755
--- a/indra/newview/llpathfindingpathtool.h
+++ b/indra/newview/llpathfindingpathtool.h
diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp
index 11c12e6c10..666f10df96 100644..100755
--- a/indra/newview/llpersistentnotificationstorage.cpp
+++ b/indra/newview/llpersistentnotificationstorage.cpp
@@ -87,6 +87,8 @@ void LLPersistentNotificationStorage::loadNotifications()
{
LLFastTimer _(FTM_LOAD_NOTIFICATIONS);
+ LL_INFOS("LLPersistentNotificationStorage") << "start loading notifications" << LL_ENDL;
+
LLNotifications::instance().getChannel("Persistent")->
connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1));
@@ -129,6 +131,8 @@ void LLPersistentNotificationStorage::loadNotifications()
notification_channel->hideToast(notification->getID());
}
}
+
+ LL_INFOS("LLPersistentNotificationStorage") << "finished loading notifications" << LL_ENDL;
}
bool LLPersistentNotificationStorage::onPersistentChannelChanged(const LLSD& payload)
diff --git a/indra/newview/llpersistentnotificationstorage.h b/indra/newview/llpersistentnotificationstorage.h
index 98a825d2c1..98a825d2c1 100644..100755
--- a/indra/newview/llpersistentnotificationstorage.h
+++ b/indra/newview/llpersistentnotificationstorage.h
diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp
index cb6989c9dd..3ee0746412 100644..100755
--- a/indra/newview/llphysicsmotion.cpp
+++ b/indra/newview/llphysicsmotion.cpp
@@ -166,7 +166,7 @@ protected:
}
- void setParamValue(LLViewerVisualParam *param,
+ void setParamValue(const LLViewerVisualParam *param,
const F32 new_value_local,
F32 behavior_maxeffect);
@@ -428,14 +428,13 @@ F32 LLPhysicsMotion::toLocal(const LLVector3 &world)
F32 LLPhysicsMotion::calculateVelocity_local()
{
const F32 world_to_model_scale = 100.0f;
- LLJoint *joint = mJointState->getJoint();
- const LLVector3 position_world = joint->getWorldPosition();
- const LLQuaternion rotation_world = joint->getWorldRotation();
- const LLVector3 last_position_world = mPosition_world;
+ LLJoint *joint = mJointState->getJoint();
+ const LLVector3 position_world = joint->getWorldPosition();
+ const LLVector3 last_position_world = mPosition_world;
const LLVector3 positionchange_world = (position_world-last_position_world) * world_to_model_scale;
- const LLVector3 velocity_world = positionchange_world;
- const F32 velocity_local = toLocal(velocity_world);
- return velocity_local;
+ const LLVector3 velocity_world = positionchange_world;
+ const F32 velocity_local = toLocal(velocity_world);
+ return velocity_local;
}
F32 LLPhysicsMotion::calculateAcceleration_local(const F32 velocity_local)
@@ -673,12 +672,10 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)
0,
FALSE);
}
- for (LLDriverParam::entry_list_t::iterator iter = driver_param->mDriven.begin();
- iter != driver_param->mDriven.end();
- ++iter)
+ S32 num_driven = driver_param->getDrivenParamsCount();
+ for (S32 i = 0; i < num_driven; ++i)
{
- LLDrivenEntry &entry = (*iter);
- LLViewerVisualParam *driven_param = entry.mParam;
+ const LLViewerVisualParam *driven_param = driver_param->getDrivenParam(i);
setParamValue(driven_param,position_new_local_clamped, behavior_maxeffect);
}
}
@@ -758,7 +755,7 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)
}
// Range of new_value_local is assumed to be [0 , 1] normalized.
-void LLPhysicsMotion::setParamValue(LLViewerVisualParam *param,
+void LLPhysicsMotion::setParamValue(const LLViewerVisualParam *param,
F32 new_value_normalized,
F32 behavior_maxeffect)
{
diff --git a/indra/newview/llphysicsmotion.h b/indra/newview/llphysicsmotion.h
index b246fa99bb..b246fa99bb 100644..100755
--- a/indra/newview/llphysicsmotion.h
+++ b/indra/newview/llphysicsmotion.h
diff --git a/indra/newview/llphysicsshapebuilderutil.cpp b/indra/newview/llphysicsshapebuilderutil.cpp
index 5bfe5c9941..5bfe5c9941 100644..100755
--- a/indra/newview/llphysicsshapebuilderutil.cpp
+++ b/indra/newview/llphysicsshapebuilderutil.cpp
diff --git a/indra/newview/llphysicsshapebuilderutil.h b/indra/newview/llphysicsshapebuilderutil.h
index 7dedfb05e2..7dedfb05e2 100644..100755
--- a/indra/newview/llphysicsshapebuilderutil.h
+++ b/indra/newview/llphysicsshapebuilderutil.h
diff --git a/indra/newview/llpipelinelistener.cpp b/indra/newview/llpipelinelistener.cpp
new file mode 100644
index 0000000000..20759239bf
--- /dev/null
+++ b/indra/newview/llpipelinelistener.cpp
@@ -0,0 +1,216 @@
+/**
+ * @file llpipelinelistener.h
+ * @author Don Kjer
+ * @date 2012-07-09
+ * @brief Implementation for LLPipelineListener
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "llviewerprecompiledheaders.h"
+
+#include "llpipelinelistener.h"
+
+#include "pipeline.h"
+#include "stringize.h"
+#include <sstream>
+#include "llviewermenu.h"
+
+
+namespace {
+ // Render Types
+ void toggle_render_types_wrapper(LLSD const& request)
+ {
+ for (LLSD::array_const_iterator iter = request["types"].beginArray();
+ iter != request["types"].endArray();
+ ++iter)
+ {
+ U32 render_type = render_type_from_string( iter->asString() );
+ if ( render_type != 0 )
+ {
+ LLPipeline::toggleRenderTypeControl( (void*) render_type );
+ }
+ }
+ }
+
+ void has_render_type_wrapper(LLSD const& request)
+ {
+ LLEventAPI::Response response(LLSD(), request);
+ U32 render_type = render_type_from_string( request["type"].asString() );
+ if ( render_type != 0 )
+ {
+ response["value"] = LLPipeline::hasRenderTypeControl( (void*) render_type );
+ }
+ else
+ {
+ response.error(STRINGIZE("unknown type '" << request["type"].asString() << "'"));
+ }
+ }
+
+ void disable_all_render_types_wrapper(LLSD const& request)
+ {
+ gPipeline.clearAllRenderTypes();
+ }
+
+ void enable_all_render_types_wrapper(LLSD const& request)
+ {
+ gPipeline.setAllRenderTypes();
+ }
+
+ // Render Features
+ void toggle_render_features_wrapper(LLSD const& request)
+ {
+ for (LLSD::array_const_iterator iter = request["features"].beginArray();
+ iter != request["features"].endArray();
+ ++iter)
+ {
+ U32 render_feature = feature_from_string( iter->asString() );
+ if ( render_feature != 0 )
+ {
+ LLPipeline::toggleRenderDebugControl( (void*) render_feature );
+ }
+ }
+ }
+
+ void has_render_feature_wrapper(LLSD const& request)
+ {
+ LLEventAPI::Response response(LLSD(), request);
+ U32 render_feature = feature_from_string( request["feature"].asString() );
+ if ( render_feature != 0 )
+ {
+ response["value"] = gPipeline.hasRenderDebugFeatureMask(render_feature);
+ }
+ else
+ {
+ response.error(STRINGIZE("unknown feature '" << request["feature"].asString() << "'"));
+ }
+ }
+
+ void disable_all_render_features_wrapper(LLSD const& request)
+ {
+ gPipeline.clearAllRenderDebugFeatures();
+ }
+
+ void enable_all_render_features_wrapper(LLSD const& request)
+ {
+ gPipeline.setAllRenderDebugFeatures();
+ }
+
+ // Render Info Displays
+ void toggle_info_displays_wrapper(LLSD const& request)
+ {
+ for (LLSD::array_const_iterator iter = request["displays"].beginArray();
+ iter != request["displays"].endArray();
+ ++iter)
+ {
+ U32 info_display = info_display_from_string( iter->asString() );
+ if ( info_display != 0 )
+ {
+ LLPipeline::toggleRenderDebug( (void*) info_display );
+ }
+ }
+ }
+
+ void has_info_display_wrapper(LLSD const& request)
+ {
+ LLEventAPI::Response response(LLSD(), request);
+ U32 info_display = info_display_from_string( request["display"].asString() );
+ if ( info_display != 0 )
+ {
+ response["value"] = gPipeline.hasRenderDebugMask(info_display);
+ }
+ else
+ {
+ response.error(STRINGIZE("unknown display '" << request["display"].asString() << "'"));
+ }
+ }
+
+ void disable_all_info_displays_wrapper(LLSD const& request)
+ {
+ gPipeline.clearAllRenderDebugDisplays();
+ }
+
+ void enable_all_info_displays_wrapper(LLSD const& request)
+ {
+ gPipeline.setAllRenderDebugDisplays();
+ }
+
+}
+
+
+LLPipelineListener::LLPipelineListener():
+ LLEventAPI("LLPipeline",
+ "API to te rendering pipeline.")
+{
+ // Render Types
+ add("toggleRenderTypes",
+ "Toggle rendering [\"types\"]:\n"
+ "See: llviewermenu.cpp:render_type_from_string for list of available types.",
+ &toggle_render_types_wrapper);
+ add("hasRenderType",
+ "Check if rendering [\"type\"] is enabled:\n"
+ "See: llviewermenu.cpp:render_type_from_string for list of available types.",
+ &has_render_type_wrapper,
+ LLSDMap("reply", LLSD()));
+ add("disableAllRenderTypes",
+ "Turn off all rendering types.",
+ &disable_all_render_types_wrapper);
+ add("enableAllRenderTypes",
+ "Turn on all rendering types.",
+ &enable_all_render_types_wrapper);
+
+ // Render Features
+ add("toggleRenderFeatures",
+ "Toggle rendering [\"features\"]:\n"
+ "See: llviewermenu.cpp:feature_from_string for list of available features.",
+ &toggle_render_features_wrapper);
+ add("hasRenderFeature",
+ "Check if rendering [\"feature\"] is enabled:\n"
+ "See: llviewermenu.cpp:render_feature_from_string for list of available features.",
+ &has_render_feature_wrapper,
+ LLSDMap("reply", LLSD()));
+ add("disableAllRenderFeatures",
+ "Turn off all rendering features.",
+ &disable_all_render_features_wrapper);
+ add("enableAllRenderFeatures",
+ "Turn on all rendering features.",
+ &enable_all_render_features_wrapper);
+
+ // Render Info Displays
+ add("toggleRenderInfoDisplays",
+ "Toggle info [\"displays\"]:\n"
+ "See: llviewermenu.cpp:info_display_from_string for list of available displays.",
+ &toggle_info_displays_wrapper);
+ add("hasRenderInfoDisplay",
+ "Check if info [\"display\"] is enabled:\n"
+ "See: llviewermenu.cpp:info_display_from_string for list of available displays.",
+ &has_info_display_wrapper,
+ LLSDMap("reply", LLSD()));
+ add("disableAllRenderInfoDisplays",
+ "Turn off all info displays.",
+ &disable_all_info_displays_wrapper);
+ add("enableAllRenderInfoDisplays",
+ "Turn on all info displays.",
+ &enable_all_info_displays_wrapper);
+}
+
diff --git a/indra/newview/fmodwrapper.cpp b/indra/newview/llpipelinelistener.h
index 16f1d19a78..da1898e57b 100644
--- a/indra/newview/fmodwrapper.cpp
+++ b/indra/newview/llpipelinelistener.h
@@ -1,8 +1,10 @@
-/**
- * @file fmodwrapper.cpp
- * @brief dummy source file for building a shared library to wrap libfmod.a
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+/**
+ * @file llpipelinelistener.h
+ * @author Don Kjer
+ * @date 2012-07-09
+ * @brief Wrap subset of LLPipeline API in event API
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
@@ -24,14 +26,16 @@
* $/LicenseInfo$
*/
-extern "C"
-{
- void FSOUND_Init(void);
-}
+#if ! defined(LL_LLPIPELINELISTENER_H)
+#define LL_LLPIPELINELISTENER_H
-void* fmodwrapper(void)
+#include "lleventapi.h"
+
+/// Listen on an LLEventPump with specified name for LLPipeline request events.
+class LLPipelineListener: public LLEventAPI
{
- // When building the fmodwrapper library, the linker doesn't seem to want to bring in libfmod.a unless I explicitly
- // reference at least one symbol in the library. This seemed like the simplest way.
- return (void*)&FSOUND_Init;
-}
+public:
+ LLPipelineListener();
+};
+
+#endif /* ! defined(LL_LLPIPELINELISTENER_H) */
diff --git a/indra/newview/llplacesfolderview.cpp b/indra/newview/llplacesfolderview.cpp
index 3caa93ae71..3caa93ae71 100644..100755
--- a/indra/newview/llplacesfolderview.cpp
+++ b/indra/newview/llplacesfolderview.cpp
diff --git a/indra/newview/llplacesfolderview.h b/indra/newview/llplacesfolderview.h
index 8c5be39b5e..8c5be39b5e 100644..100755
--- a/indra/newview/llplacesfolderview.h
+++ b/indra/newview/llplacesfolderview.h
diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp
index ebd9604c5b..ebd9604c5b 100644..100755
--- a/indra/newview/llplacesinventorybridge.cpp
+++ b/indra/newview/llplacesinventorybridge.cpp
diff --git a/indra/newview/llplacesinventorybridge.h b/indra/newview/llplacesinventorybridge.h
index 07d18d03c5..07d18d03c5 100644..100755
--- a/indra/newview/llplacesinventorybridge.h
+++ b/indra/newview/llplacesinventorybridge.h
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 4c2213c198..4c2213c198 100644..100755
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 2805fc4257..2805fc4257 100644..100755
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
deleted file mode 100644
index 5f5258bbce..0000000000
--- a/indra/newview/llpolymesh.cpp
+++ /dev/null
@@ -1,1295 +0,0 @@
-/**
- * @file llpolymesh.cpp
- * @brief Implementation of LLPolyMesh class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-//-----------------------------------------------------------------------------
-// Header Files
-//-----------------------------------------------------------------------------
-#include "llviewerprecompiledheaders.h"
-
-#include "llfasttimer.h"
-#include "llmemory.h"
-
-#include "llviewercontrol.h"
-#include "llxmltree.h"
-#include "llvoavatar.h"
-#include "llwearable.h"
-#include "lldir.h"
-#include "llvolume.h"
-#include "llendianswizzle.h"
-
-#include "llpolymesh.h"
-
-#define HEADER_ASCII "Linden Mesh 1.0"
-#define HEADER_BINARY "Linden Binary Mesh 1.0"
-
-extern LLControlGroup gSavedSettings; // read only
-
-LLPolyMorphData *clone_morph_param_duplicate(const LLPolyMorphData *src_data,
- const std::string &name);
-LLPolyMorphData *clone_morph_param_direction(const LLPolyMorphData *src_data,
- const LLVector3 &direction,
- const std::string &name);
-LLPolyMorphData *clone_morph_param_cleavage(const LLPolyMorphData *src_data,
- F32 scale,
- const std::string &name);
-
-//-----------------------------------------------------------------------------
-// Global table of loaded LLPolyMeshes
-//-----------------------------------------------------------------------------
-LLPolyMesh::LLPolyMeshSharedDataTable LLPolyMesh::sGlobalSharedMeshList;
-
-//-----------------------------------------------------------------------------
-// LLPolyMeshSharedData()
-//-----------------------------------------------------------------------------
-LLPolyMeshSharedData::LLPolyMeshSharedData()
-{
- mNumVertices = 0;
- mBaseCoords = NULL;
- mBaseNormals = NULL;
- mBaseBinormals = NULL;
- mTexCoords = NULL;
- mDetailTexCoords = NULL;
- mWeights = NULL;
- mHasWeights = FALSE;
- mHasDetailTexCoords = FALSE;
-
- mNumFaces = 0;
- mFaces = NULL;
-
- mNumJointNames = 0;
- mJointNames = NULL;
-
- mTriangleIndices = NULL;
- mNumTriangleIndices = 0;
-
- mReferenceData = NULL;
-
- mLastIndexOffset = -1;
-}
-
-//-----------------------------------------------------------------------------
-// ~LLPolyMeshSharedData()
-//-----------------------------------------------------------------------------
-LLPolyMeshSharedData::~LLPolyMeshSharedData()
-{
- freeMeshData();
- for_each(mMorphData.begin(), mMorphData.end(), DeletePointer());
- mMorphData.clear();
-}
-
-//-----------------------------------------------------------------------------
-// setupLOD()
-//-----------------------------------------------------------------------------
-void LLPolyMeshSharedData::setupLOD(LLPolyMeshSharedData* reference_data)
-{
- mReferenceData = reference_data;
-
- if (reference_data)
- {
- mBaseCoords = reference_data->mBaseCoords;
- mBaseNormals = reference_data->mBaseNormals;
- mBaseBinormals = reference_data->mBaseBinormals;
- mTexCoords = reference_data->mTexCoords;
- mDetailTexCoords = reference_data->mDetailTexCoords;
- mWeights = reference_data->mWeights;
- mHasWeights = reference_data->mHasWeights;
- mHasDetailTexCoords = reference_data->mHasDetailTexCoords;
- }
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMeshSharedData::freeMeshData()
-//-----------------------------------------------------------------------------
-void LLPolyMeshSharedData::freeMeshData()
-{
- if (!mReferenceData)
- {
- mNumVertices = 0;
-
- ll_aligned_free_16(mBaseCoords);
- mBaseCoords = NULL;
-
- ll_aligned_free_16(mBaseNormals);
- mBaseNormals = NULL;
-
- ll_aligned_free_16(mBaseBinormals);
- mBaseBinormals = NULL;
-
- ll_aligned_free_16(mTexCoords);
- mTexCoords = NULL;
-
- ll_aligned_free_16(mDetailTexCoords);
- mDetailTexCoords = NULL;
-
- ll_aligned_free_16(mWeights);
- mWeights = NULL;
- }
-
- mNumFaces = 0;
- delete [] mFaces;
- mFaces = NULL;
-
- mNumJointNames = 0;
- delete [] mJointNames;
- mJointNames = NULL;
-
- delete [] mTriangleIndices;
- mTriangleIndices = NULL;
-
-// mVertFaceMap.deleteAllData();
-}
-
-// compate_int is used by the qsort function to sort the index array
-int compare_int(const void *a, const void *b);
-
-//-----------------------------------------------------------------------------
-// genIndices()
-//-----------------------------------------------------------------------------
-void LLPolyMeshSharedData::genIndices(S32 index_offset)
-{
- if (index_offset == mLastIndexOffset)
- {
- return;
- }
-
- delete []mTriangleIndices;
- mTriangleIndices = new U32[mNumTriangleIndices];
-
- S32 cur_index = 0;
- for (S32 i = 0; i < mNumFaces; i++)
- {
- mTriangleIndices[cur_index] = mFaces[i][0] + index_offset;
- cur_index++;
- mTriangleIndices[cur_index] = mFaces[i][1] + index_offset;
- cur_index++;
- mTriangleIndices[cur_index] = mFaces[i][2] + index_offset;
- cur_index++;
- }
-
- mLastIndexOffset = index_offset;
-}
-
-//--------------------------------------------------------------------
-// LLPolyMeshSharedData::getNumKB()
-//--------------------------------------------------------------------
-U32 LLPolyMeshSharedData::getNumKB()
-{
- U32 num_kb = sizeof(LLPolyMesh);
-
- if (!isLOD())
- {
- num_kb += mNumVertices *
- ( sizeof(LLVector3) + // coords
- sizeof(LLVector3) + // normals
- sizeof(LLVector2) ); // texCoords
- }
-
- if (mHasDetailTexCoords && !isLOD())
- {
- num_kb += mNumVertices * sizeof(LLVector2); // detailTexCoords
- }
-
- if (mHasWeights && !isLOD())
- {
- num_kb += mNumVertices * sizeof(float); // weights
- }
-
- num_kb += mNumFaces * sizeof(LLPolyFace); // faces
-
- num_kb /= 1024;
- return num_kb;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMeshSharedData::allocateVertexData()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMeshSharedData::allocateVertexData( U32 numVertices )
-{
- U32 i;
- mBaseCoords = (LLVector4a*) ll_aligned_malloc_16(numVertices*sizeof(LLVector4a));
- mBaseNormals = (LLVector4a*) ll_aligned_malloc_16(numVertices*sizeof(LLVector4a));
- mBaseBinormals = (LLVector4a*) ll_aligned_malloc_16(numVertices*sizeof(LLVector4a));
- mTexCoords = (LLVector2*) ll_aligned_malloc_16(numVertices*sizeof(LLVector2));
- mDetailTexCoords = (LLVector2*) ll_aligned_malloc_16(numVertices*sizeof(LLVector2));
- mWeights = (F32*) ll_aligned_malloc_16(numVertices*sizeof(F32));
- for (i = 0; i < numVertices; i++)
- {
- mBaseCoords[i].clear();
- mBaseNormals[i].clear();
- mBaseBinormals[i].clear();
- mTexCoords[i].clear();
- mWeights[i] = 0.f;
- }
- mNumVertices = numVertices;
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMeshSharedData::allocateFaceData()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMeshSharedData::allocateFaceData( U32 numFaces )
-{
- mFaces = new LLPolyFace[ numFaces ];
- mNumFaces = numFaces;
- mNumTriangleIndices = mNumFaces * 3;
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMeshSharedData::allocateJointNames()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMeshSharedData::allocateJointNames( U32 numJointNames )
-{
- mJointNames = new std::string[ numJointNames ];
- mNumJointNames = numJointNames;
- return TRUE;
-}
-
-//--------------------------------------------------------------------
-// LLPolyMeshSharedData::loadMesh()
-//--------------------------------------------------------------------
-BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
-{
- //-------------------------------------------------------------------------
- // Open the file
- //-------------------------------------------------------------------------
- if(fileName.empty())
- {
- llerrs << "Filename is Empty!" << llendl;
- return FALSE;
- }
- LLFILE* fp = LLFile::fopen(fileName, "rb"); /*Flawfinder: ignore*/
- if (!fp)
- {
- llerrs << "can't open: " << fileName << llendl;
- return FALSE;
- }
-
- //-------------------------------------------------------------------------
- // Read a chunk
- //-------------------------------------------------------------------------
- char header[128]; /*Flawfinder: ignore*/
- if (fread(header, sizeof(char), 128, fp) != 128)
- {
- llwarns << "Short read" << llendl;
- }
-
- //-------------------------------------------------------------------------
- // Check for proper binary header
- //-------------------------------------------------------------------------
- BOOL status = FALSE;
- if ( strncmp(header, HEADER_BINARY, strlen(HEADER_BINARY)) == 0 ) /*Flawfinder: ignore*/
- {
- lldebugs << "Loading " << fileName << llendl;
-
- //----------------------------------------------------------------
- // File Header (seek past it)
- //----------------------------------------------------------------
- fseek(fp, 24, SEEK_SET);
-
- //----------------------------------------------------------------
- // HasWeights
- //----------------------------------------------------------------
- U8 hasWeights;
- size_t numRead = fread(&hasWeights, sizeof(U8), 1, fp);
- if (numRead != 1)
- {
- llerrs << "can't read HasWeights flag from " << fileName << llendl;
- return FALSE;
- }
- if (!isLOD())
- {
- mHasWeights = (hasWeights==0) ? FALSE : TRUE;
- }
-
- //----------------------------------------------------------------
- // HasDetailTexCoords
- //----------------------------------------------------------------
- U8 hasDetailTexCoords;
- numRead = fread(&hasDetailTexCoords, sizeof(U8), 1, fp);
- if (numRead != 1)
- {
- llerrs << "can't read HasDetailTexCoords flag from " << fileName << llendl;
- return FALSE;
- }
-
- //----------------------------------------------------------------
- // Position
- //----------------------------------------------------------------
- LLVector3 position;
- numRead = fread(position.mV, sizeof(float), 3, fp);
- llendianswizzle(position.mV, sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << "can't read Position from " << fileName << llendl;
- return FALSE;
- }
- setPosition( position );
-
- //----------------------------------------------------------------
- // Rotation
- //----------------------------------------------------------------
- LLVector3 rotationAngles;
- numRead = fread(rotationAngles.mV, sizeof(float), 3, fp);
- llendianswizzle(rotationAngles.mV, sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << "can't read RotationAngles from " << fileName << llendl;
- return FALSE;
- }
-
- U8 rotationOrder;
- numRead = fread(&rotationOrder, sizeof(U8), 1, fp);
-
- if (numRead != 1)
- {
- llerrs << "can't read RotationOrder from " << fileName << llendl;
- return FALSE;
- }
-
- rotationOrder = 0;
-
- setRotation( mayaQ( rotationAngles.mV[0],
- rotationAngles.mV[1],
- rotationAngles.mV[2],
- (LLQuaternion::Order)rotationOrder ) );
-
- //----------------------------------------------------------------
- // Scale
- //----------------------------------------------------------------
- LLVector3 scale;
- numRead = fread(scale.mV, sizeof(float), 3, fp);
- llendianswizzle(scale.mV, sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << "can't read Scale from " << fileName << llendl;
- return FALSE;
- }
- setScale( scale );
-
- //-------------------------------------------------------------------------
- // Release any existing mesh geometry
- //-------------------------------------------------------------------------
- freeMeshData();
-
- U16 numVertices = 0;
-
- //----------------------------------------------------------------
- // NumVertices
- //----------------------------------------------------------------
- if (!isLOD())
- {
- numRead = fread(&numVertices, sizeof(U16), 1, fp);
- llendianswizzle(&numVertices, sizeof(U16), 1);
- if (numRead != 1)
- {
- llerrs << "can't read NumVertices from " << fileName << llendl;
- return FALSE;
- }
-
- allocateVertexData( numVertices );
-
- for (U16 i = 0; i < numVertices; ++i)
- {
- //----------------------------------------------------------------
- // Coords
- //----------------------------------------------------------------
- numRead = fread(&mBaseCoords[i], sizeof(float), 3, fp);
- llendianswizzle(&mBaseCoords[i], sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << "can't read Coordinates from " << fileName << llendl;
- return FALSE;
- }
- }
-
- for (U16 i = 0; i < numVertices; ++i)
- {
- //----------------------------------------------------------------
- // Normals
- //----------------------------------------------------------------
- numRead = fread(&mBaseNormals[i], sizeof(float), 3, fp);
- llendianswizzle(&mBaseNormals[i], sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << " can't read Normals from " << fileName << llendl;
- return FALSE;
- }
- }
-
- for (U16 i = 0; i < numVertices; ++i)
- {
- //----------------------------------------------------------------
- // Binormals
- //----------------------------------------------------------------
- numRead = fread(&mBaseBinormals[i], sizeof(float), 3, fp);
- llendianswizzle(&mBaseBinormals[i], sizeof(float), 3);
- if (numRead != 3)
- {
- llerrs << " can't read Binormals from " << fileName << llendl;
- return FALSE;
- }
- }
-
- //----------------------------------------------------------------
- // TexCoords
- //----------------------------------------------------------------
- numRead = fread(mTexCoords, 2*sizeof(float), numVertices, fp);
- llendianswizzle(mTexCoords, sizeof(float), 2*numVertices);
- if (numRead != numVertices)
- {
- llerrs << "can't read TexCoords from " << fileName << llendl;
- return FALSE;
- }
-
- //----------------------------------------------------------------
- // DetailTexCoords
- //----------------------------------------------------------------
- if (mHasDetailTexCoords)
- {
- numRead = fread(mDetailTexCoords, 2*sizeof(float), numVertices, fp);
- llendianswizzle(mDetailTexCoords, sizeof(float), 2*numVertices);
- if (numRead != numVertices)
- {
- llerrs << "can't read DetailTexCoords from " << fileName << llendl;
- return FALSE;
- }
- }
-
- //----------------------------------------------------------------
- // Weights
- //----------------------------------------------------------------
- if (mHasWeights)
- {
- numRead = fread(mWeights, sizeof(float), numVertices, fp);
- llendianswizzle(mWeights, sizeof(float), numVertices);
- if (numRead != numVertices)
- {
- llerrs << "can't read Weights from " << fileName << llendl;
- return FALSE;
- }
- }
- }
-
- //----------------------------------------------------------------
- // NumFaces
- //----------------------------------------------------------------
- U16 numFaces;
- numRead = fread(&numFaces, sizeof(U16), 1, fp);
- llendianswizzle(&numFaces, sizeof(U16), 1);
- if (numRead != 1)
- {
- llerrs << "can't read NumFaces from " << fileName << llendl;
- return FALSE;
- }
- allocateFaceData( numFaces );
-
-
- //----------------------------------------------------------------
- // Faces
- //----------------------------------------------------------------
- U32 i;
- U32 numTris = 0;
- for (i = 0; i < numFaces; i++)
- {
- S16 face[3];
- numRead = fread(face, sizeof(U16), 3, fp);
- llendianswizzle(face, sizeof(U16), 3);
- if (numRead != 3)
- {
- llerrs << "can't read Face[" << i << "] from " << fileName << llendl;
- return FALSE;
- }
- if (mReferenceData)
- {
- llassert(face[0] < mReferenceData->mNumVertices);
- llassert(face[1] < mReferenceData->mNumVertices);
- llassert(face[2] < mReferenceData->mNumVertices);
- }
-
- if (isLOD())
- {
- // store largest index in case of LODs
- for (S32 j = 0; j < 3; j++)
- {
- if (face[j] > mNumVertices - 1)
- {
- mNumVertices = face[j] + 1;
- }
- }
- }
- mFaces[i][0] = face[0];
- mFaces[i][1] = face[1];
- mFaces[i][2] = face[2];
-
-// S32 j;
-// for(j = 0; j < 3; j++)
-// {
-// LLDynamicArray<S32> *face_list = mVertFaceMap.getIfThere(face[j]);
-// if (!face_list)
-// {
-// face_list = new LLDynamicArray<S32>;
-// mVertFaceMap.addData(face[j], face_list);
-// }
-// face_list->put(i);
-// }
-
- numTris++;
- }
-
- lldebugs << "verts: " << numVertices
- << ", faces: " << numFaces
- << ", tris: " << numTris
- << llendl;
-
- //----------------------------------------------------------------
- // NumSkinJoints
- //----------------------------------------------------------------
- if (!isLOD())
- {
- U16 numSkinJoints = 0;
- if ( mHasWeights )
- {
- numRead = fread(&numSkinJoints, sizeof(U16), 1, fp);
- llendianswizzle(&numSkinJoints, sizeof(U16), 1);
- if (numRead != 1)
- {
- llerrs << "can't read NumSkinJoints from " << fileName << llendl;
- return FALSE;
- }
- allocateJointNames( numSkinJoints );
- }
-
- //----------------------------------------------------------------
- // SkinJoints
- //----------------------------------------------------------------
- for (i=0; i < numSkinJoints; i++)
- {
- char jointName[64+1];
- numRead = fread(jointName, sizeof(jointName)-1, 1, fp);
- jointName[sizeof(jointName)-1] = '\0'; // ensure nul-termination
- if (numRead != 1)
- {
- llerrs << "can't read Skin[" << i << "].Name from " << fileName << llendl;
- return FALSE;
- }
-
- std::string *jn = &mJointNames[i];
- *jn = jointName;
- }
-
- //-------------------------------------------------------------------------
- // look for morph section
- //-------------------------------------------------------------------------
- char morphName[64+1];
- morphName[sizeof(morphName)-1] = '\0'; // ensure nul-termination
- while(fread(&morphName, sizeof(char), 64, fp) == 64)
- {
- if (!strcmp(morphName, "End Morphs"))
- {
- // we reached the end of the morphs
- break;
- }
- LLPolyMorphData* morph_data = new LLPolyMorphData(std::string(morphName));
-
- BOOL result = morph_data->loadBinary(fp, this);
-
- if (!result)
- {
- delete morph_data;
- continue;
- }
-
- mMorphData.insert(morph_data);
-
- if (!strcmp(morphName, "Breast_Female_Cleavage"))
- {
- mMorphData.insert(clone_morph_param_cleavage(morph_data,
- .75f,
- "Breast_Physics_LeftRight_Driven"));
- }
-
- if (!strcmp(morphName, "Breast_Female_Cleavage"))
- {
- mMorphData.insert(clone_morph_param_duplicate(morph_data,
- "Breast_Physics_InOut_Driven"));
- }
- if (!strcmp(morphName, "Breast_Gravity"))
- {
- mMorphData.insert(clone_morph_param_duplicate(morph_data,
- "Breast_Physics_UpDown_Driven"));
- }
-
- if (!strcmp(morphName, "Big_Belly_Torso"))
- {
- mMorphData.insert(clone_morph_param_direction(morph_data,
- LLVector3(0,0,0.05f),
- "Belly_Physics_Torso_UpDown_Driven"));
- }
-
- if (!strcmp(morphName, "Big_Belly_Legs"))
- {
- mMorphData.insert(clone_morph_param_direction(morph_data,
- LLVector3(0,0,0.05f),
- "Belly_Physics_Legs_UpDown_Driven"));
- }
-
- if (!strcmp(morphName, "skirt_belly"))
- {
- mMorphData.insert(clone_morph_param_direction(morph_data,
- LLVector3(0,0,0.05f),
- "Belly_Physics_Skirt_UpDown_Driven"));
- }
-
- if (!strcmp(morphName, "Small_Butt"))
- {
- mMorphData.insert(clone_morph_param_direction(morph_data,
- LLVector3(0,0,0.05f),
- "Butt_Physics_UpDown_Driven"));
- }
- if (!strcmp(morphName, "Small_Butt"))
- {
- mMorphData.insert(clone_morph_param_direction(morph_data,
- LLVector3(0,0.03f,0),
- "Butt_Physics_LeftRight_Driven"));
- }
- }
-
- S32 numRemaps;
- if (fread(&numRemaps, sizeof(S32), 1, fp) == 1)
- {
- llendianswizzle(&numRemaps, sizeof(S32), 1);
- for (S32 i = 0; i < numRemaps; i++)
- {
- S32 remapSrc;
- S32 remapDst;
- if (fread(&remapSrc, sizeof(S32), 1, fp) != 1)
- {
- llerrs << "can't read source vertex in vertex remap data" << llendl;
- break;
- }
- if (fread(&remapDst, sizeof(S32), 1, fp) != 1)
- {
- llerrs << "can't read destination vertex in vertex remap data" << llendl;
- break;
- }
- llendianswizzle(&remapSrc, sizeof(S32), 1);
- llendianswizzle(&remapDst, sizeof(S32), 1);
-
- mSharedVerts[remapSrc] = remapDst;
- }
- }
- }
-
- status = TRUE;
- }
- else
- {
- llerrs << "invalid mesh file header: " << fileName << llendl;
- status = FALSE;
- }
-
- if (0 == mNumJointNames)
- {
- allocateJointNames(1);
- }
-
- fclose( fp );
-
- return status;
-}
-
-//-----------------------------------------------------------------------------
-// getSharedVert()
-//-----------------------------------------------------------------------------
-const S32 *LLPolyMeshSharedData::getSharedVert(S32 vert)
-{
- if (mSharedVerts.count(vert) > 0)
- {
- return &mSharedVerts[vert];
- }
- return NULL;
-}
-
-//-----------------------------------------------------------------------------
-// getUV()
-//-----------------------------------------------------------------------------
-const LLVector2 &LLPolyMeshSharedData::getUVs(U32 index)
-{
- // TODO: convert all index variables to S32
- llassert((S32)index < mNumVertices);
-
- return mTexCoords[index];
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMesh()
-//-----------------------------------------------------------------------------
-LLPolyMesh::LLPolyMesh(LLPolyMeshSharedData *shared_data, LLPolyMesh *reference_mesh)
-{
- llassert(shared_data);
-
- mSharedData = shared_data;
- mReferenceMesh = reference_mesh;
- mAvatarp = NULL;
- mVertexData = NULL;
-
- mCurVertexCount = 0;
- mFaceIndexCount = 0;
- mFaceIndexOffset = 0;
- mFaceVertexCount = 0;
- mFaceVertexOffset = 0;
-
- if (shared_data->isLOD() && reference_mesh)
- {
- mCoords = reference_mesh->mCoords;
- mNormals = reference_mesh->mNormals;
- mScaledNormals = reference_mesh->mScaledNormals;
- mBinormals = reference_mesh->mBinormals;
- mScaledBinormals = reference_mesh->mScaledBinormals;
- mTexCoords = reference_mesh->mTexCoords;
- mClothingWeights = reference_mesh->mClothingWeights;
- }
- else
- {
- // Allocate memory without initializing every vector
- // NOTE: This makes asusmptions about the size of LLVector[234]
- S32 nverts = mSharedData->mNumVertices;
- //make sure it's an even number of verts for alignment
- nverts += nverts%2;
- S32 nfloats = nverts * (
- 4 + //coords
- 4 + //normals
- 4 + //weights
- 2 + //coords
- 4 + //scaled normals
- 4 + //binormals
- 4); //scaled binormals
-
- //use 16 byte aligned vertex data to make LLPolyMesh SSE friendly
- mVertexData = (F32*) ll_aligned_malloc_16(nfloats*4);
- S32 offset = 0;
- mCoords = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- mNormals = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- mClothingWeights = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- mTexCoords = (LLVector2*)(mVertexData + offset); offset += 2*nverts;
- mScaledNormals = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- mBinormals = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- mScaledBinormals = (LLVector4a*)(mVertexData + offset); offset += 4*nverts;
- initializeForMorph();
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// ~LLPolyMesh()
-//-----------------------------------------------------------------------------
-LLPolyMesh::~LLPolyMesh()
-{
- S32 i;
- for (i = 0; i < mJointRenderData.count(); i++)
- {
- delete mJointRenderData[i];
- mJointRenderData[i] = NULL;
- }
-
- ll_aligned_free_16(mVertexData);
-
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPolyMesh::getMesh()
-//-----------------------------------------------------------------------------
-LLPolyMesh *LLPolyMesh::getMesh(const std::string &name, LLPolyMesh* reference_mesh)
-{
- //-------------------------------------------------------------------------
- // search for an existing mesh by this name
- //-------------------------------------------------------------------------
- LLPolyMeshSharedData* meshSharedData = get_if_there(sGlobalSharedMeshList, name, (LLPolyMeshSharedData*)NULL);
- if (meshSharedData)
- {
-// llinfos << "Polymesh " << name << " found in global mesh table." << llendl;
- LLPolyMesh *poly_mesh = new LLPolyMesh(meshSharedData, reference_mesh);
- return poly_mesh;
- }
-
- //-------------------------------------------------------------------------
- // if not found, create a new one, add it to the list
- //-------------------------------------------------------------------------
- std::string full_path;
- full_path = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,name);
-
- LLPolyMeshSharedData *mesh_data = new LLPolyMeshSharedData();
- if (reference_mesh)
- {
- mesh_data->setupLOD(reference_mesh->getSharedData());
- }
- if ( ! mesh_data->loadMesh( full_path ) )
- {
- delete mesh_data;
- return NULL;
- }
-
- LLPolyMesh *poly_mesh = new LLPolyMesh(mesh_data, reference_mesh);
-
-// llinfos << "Polymesh " << name << " added to global mesh table." << llendl;
- sGlobalSharedMeshList[name] = poly_mesh->mSharedData;
-
- return poly_mesh;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMesh::freeAllMeshes()
-//-----------------------------------------------------------------------------
-void LLPolyMesh::freeAllMeshes()
-{
- // delete each item in the global lists
- for_each(sGlobalSharedMeshList.begin(), sGlobalSharedMeshList.end(), DeletePairedPointer());
- sGlobalSharedMeshList.clear();
-}
-
-LLPolyMeshSharedData *LLPolyMesh::getSharedData() const
-{
- return mSharedData;
-}
-
-
-//--------------------------------------------------------------------
-// LLPolyMesh::dumpDiagInfo()
-//--------------------------------------------------------------------
-void LLPolyMesh::dumpDiagInfo()
-{
- // keep track of totals
- U32 total_verts = 0;
- U32 total_faces = 0;
- U32 total_kb = 0;
-
- std::string buf;
-
- llinfos << "-----------------------------------------------------" << llendl;
- llinfos << " Global PolyMesh Table (DEBUG only)" << llendl;
- llinfos << " Verts Faces Mem(KB) Name" << llendl;
- llinfos << "-----------------------------------------------------" << llendl;
-
- // print each loaded mesh, and it's memory usage
- for(LLPolyMeshSharedDataTable::iterator iter = sGlobalSharedMeshList.begin();
- iter != sGlobalSharedMeshList.end(); ++iter)
- {
- const std::string& mesh_name = iter->first;
- LLPolyMeshSharedData* mesh = iter->second;
-
- S32 num_verts = mesh->mNumVertices;
- S32 num_faces = mesh->mNumFaces;
- U32 num_kb = mesh->getNumKB();
-
- buf = llformat("%8d %8d %8d %s", num_verts, num_faces, num_kb, mesh_name.c_str());
- llinfos << buf << llendl;
-
- total_verts += num_verts;
- total_faces += num_faces;
- total_kb += num_kb;
- }
-
- llinfos << "-----------------------------------------------------" << llendl;
- buf = llformat("%8d %8d %8d TOTAL", total_verts, total_faces, total_kb );
- llinfos << buf << llendl;
- llinfos << "-----------------------------------------------------" << llendl;
-}
-
-//-----------------------------------------------------------------------------
-// getWritableCoords()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getWritableCoords()
-{
- return mCoords;
-}
-
-//-----------------------------------------------------------------------------
-// getWritableNormals()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getWritableNormals()
-{
- return mNormals;
-}
-
-//-----------------------------------------------------------------------------
-// getWritableBinormals()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getWritableBinormals()
-{
- return mBinormals;
-}
-
-
-//-----------------------------------------------------------------------------
-// getWritableClothingWeights()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getWritableClothingWeights()
-{
- return mClothingWeights;
-}
-
-//-----------------------------------------------------------------------------
-// getWritableTexCoords()
-//-----------------------------------------------------------------------------
-LLVector2 *LLPolyMesh::getWritableTexCoords()
-{
- return mTexCoords;
-}
-
-//-----------------------------------------------------------------------------
-// getScaledNormals()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getScaledNormals()
-{
- return mScaledNormals;
-}
-
-//-----------------------------------------------------------------------------
-// getScaledBinormals()
-//-----------------------------------------------------------------------------
-LLVector4a *LLPolyMesh::getScaledBinormals()
-{
- return mScaledBinormals;
-}
-
-
-//-----------------------------------------------------------------------------
-// initializeForMorph()
-//-----------------------------------------------------------------------------
-void LLPolyMesh::initializeForMorph()
-{
- LLVector4a::memcpyNonAliased16((F32*) mCoords, (F32*) mSharedData->mBaseCoords, sizeof(LLVector4a) * mSharedData->mNumVertices);
- LLVector4a::memcpyNonAliased16((F32*) mNormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
- LLVector4a::memcpyNonAliased16((F32*) mScaledNormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
- LLVector4a::memcpyNonAliased16((F32*) mBinormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
- LLVector4a::memcpyNonAliased16((F32*) mScaledBinormals, (F32*) mSharedData->mBaseNormals, sizeof(LLVector4a) * mSharedData->mNumVertices);
- LLVector4a::memcpyNonAliased16((F32*) mTexCoords, (F32*) mSharedData->mTexCoords, sizeof(LLVector2) * (mSharedData->mNumVertices + mSharedData->mNumVertices%2));
-
- for (U32 i = 0; i < mSharedData->mNumVertices; ++i)
- {
- mClothingWeights[i].clear();
- }
-}
-
-//-----------------------------------------------------------------------------
-// getMorphData()
-//-----------------------------------------------------------------------------
-LLPolyMorphData* LLPolyMesh::getMorphData(const std::string& morph_name)
-{
- if (!mSharedData)
- return NULL;
- for (LLPolyMeshSharedData::morphdata_list_t::iterator iter = mSharedData->mMorphData.begin();
- iter != mSharedData->mMorphData.end(); ++iter)
- {
- LLPolyMorphData *morph_data = *iter;
- if (morph_data->getName() == morph_name)
- {
- return morph_data;
- }
- }
- return NULL;
-}
-
-//-----------------------------------------------------------------------------
-// removeMorphData()
-//-----------------------------------------------------------------------------
-// // erasing but not deleting seems bad, but fortunately we don't actually use this...
-// void LLPolyMesh::removeMorphData(LLPolyMorphData *morph_target)
-// {
-// if (!mSharedData)
-// return;
-// mSharedData->mMorphData.erase(morph_target);
-// }
-
-//-----------------------------------------------------------------------------
-// deleteAllMorphData()
-//-----------------------------------------------------------------------------
-// void LLPolyMesh::deleteAllMorphData()
-// {
-// if (!mSharedData)
-// return;
-
-// for_each(mSharedData->mMorphData.begin(), mSharedData->mMorphData.end(), DeletePointer());
-// mSharedData->mMorphData.clear();
-// }
-
-//-----------------------------------------------------------------------------
-// getWritableWeights()
-//-----------------------------------------------------------------------------
-F32* LLPolyMesh::getWritableWeights() const
-{
- return mSharedData->mWeights;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolySkeletalDistortionInfo()
-//-----------------------------------------------------------------------------
-LLPolySkeletalDistortionInfo::LLPolySkeletalDistortionInfo()
-{
-}
-
-BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "param" ) && node->getChildByName( "param_skeleton" ) );
-
- if (!LLViewerVisualParamInfo::parseXml(node))
- return FALSE;
-
- LLXmlTreeNode* skeletalParam = node->getChildByName("param_skeleton");
-
- if (NULL == skeletalParam)
- {
- llwarns << "Failed to getChildByName(\"param_skeleton\")"
- << llendl;
- return FALSE;
- }
-
- for( LLXmlTreeNode* bone = skeletalParam->getFirstChild(); bone; bone = skeletalParam->getNextChild() )
- {
- if (bone->hasName("bone"))
- {
- std::string name;
- LLVector3 scale;
- LLVector3 pos;
- BOOL haspos = FALSE;
-
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if (!bone->getFastAttributeString(name_string, name))
- {
- llwarns << "No bone name specified for skeletal param." << llendl;
- continue;
- }
-
- static LLStdStringHandle scale_string = LLXmlTree::addAttributeString("scale");
- if (!bone->getFastAttributeVector3(scale_string, scale))
- {
- llwarns << "No scale specified for bone " << name << "." << llendl;
- continue;
- }
-
- // optional offset deformation (translation)
- static LLStdStringHandle offset_string = LLXmlTree::addAttributeString("offset");
- if (bone->getFastAttributeVector3(offset_string, pos))
- {
- haspos = TRUE;
- }
- mBoneInfoList.push_back(LLPolySkeletalBoneInfo(name, scale, pos, haspos));
- }
- else
- {
- llwarns << "Unrecognized element " << bone->getName() << " in skeletal distortion" << llendl;
- continue;
- }
- }
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolySkeletalDistortion()
-//-----------------------------------------------------------------------------
-LLPolySkeletalDistortion::LLPolySkeletalDistortion(LLVOAvatar *avatarp)
-{
- mAvatar = avatarp;
- mDefaultVec.splat(0.001f);
-}
-
-//-----------------------------------------------------------------------------
-// ~LLPolySkeletalDistortion()
-//-----------------------------------------------------------------------------
-LLPolySkeletalDistortion::~LLPolySkeletalDistortion()
-{
-}
-
-BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mInfo = info;
- mID = info->mID;
- setWeight(getDefaultWeight(), FALSE );
-
- LLPolySkeletalDistortionInfo::bone_info_list_t::iterator iter;
- for (iter = getInfo()->mBoneInfoList.begin(); iter != getInfo()->mBoneInfoList.end(); iter++)
- {
- LLPolySkeletalBoneInfo *bone_info = &(*iter);
- LLJoint* joint = mAvatar->getJoint(bone_info->mBoneName);
- if (!joint)
- {
- llwarns << "Joint " << bone_info->mBoneName << " not found." << llendl;
- continue;
- }
-
- if (mJointScales.find(joint) != mJointScales.end())
- {
- llwarns << "Scale deformation already supplied for joint " << joint->getName() << "." << llendl;
- }
-
- // store it
- mJointScales[joint] = bone_info->mScaleDeformation;
-
- // apply to children that need to inherit it
- for (LLJoint::child_list_t::iterator iter = joint->mChildren.begin();
- iter != joint->mChildren.end(); ++iter)
- {
- LLViewerJoint* child_joint = (LLViewerJoint*)(*iter);
- if (child_joint->inheritScale())
- {
- LLVector3 childDeformation = LLVector3(child_joint->getScale());
- childDeformation.scaleVec(bone_info->mScaleDeformation);
- mJointScales[child_joint] = childDeformation;
- }
- }
-
- if (bone_info->mHasPositionDeformation)
- {
- if (mJointOffsets.find(joint) != mJointOffsets.end())
- {
- llwarns << "Offset deformation already supplied for joint " << joint->getName() << "." << llendl;
- }
- mJointOffsets[joint] = bone_info->mPositionDeformation;
- }
- }
- return TRUE;
-}
-
-/*virtual*/ LLViewerVisualParam* LLPolySkeletalDistortion::cloneParam(LLWearable* wearable) const
-{
- LLPolySkeletalDistortion *new_param = new LLPolySkeletalDistortion(mAvatar);
- *new_param = *this;
- return new_param;
-}
-
-//-----------------------------------------------------------------------------
-// apply()
-//-----------------------------------------------------------------------------
-static LLFastTimer::DeclareTimer FTM_POLYSKELETAL_DISTORTION_APPLY("Skeletal Distortion");
-
-void LLPolySkeletalDistortion::apply( ESex avatar_sex )
-{
- LLFastTimer t(FTM_POLYSKELETAL_DISTORTION_APPLY);
-
- F32 effective_weight = ( getSex() & avatar_sex ) ? mCurWeight : getDefaultWeight();
-
- LLJoint* joint;
- joint_vec_map_t::iterator iter;
-
- for (iter = mJointScales.begin();
- iter != mJointScales.end();
- iter++)
- {
- joint = iter->first;
- LLVector3 newScale = joint->getScale();
- LLVector3 scaleDelta = iter->second;
- newScale = newScale + (effective_weight * scaleDelta) - (mLastWeight * scaleDelta);
- joint->setScale(newScale);
- }
-
- for (iter = mJointOffsets.begin();
- iter != mJointOffsets.end();
- iter++)
- {
- joint = iter->first;
- LLVector3 newPosition = joint->getPosition();
- LLVector3 positionDelta = iter->second;
- newPosition = newPosition + (effective_weight * positionDelta) - (mLastWeight * positionDelta);
- joint->setPosition(newPosition);
- }
-
- if (mLastWeight != mCurWeight && !mIsAnimating)
- {
- mAvatar->setSkeletonSerialNum(mAvatar->getSkeletonSerialNum() + 1);
- }
- mLastWeight = mCurWeight;
-}
-
-
-LLPolyMorphData *clone_morph_param_duplicate(const LLPolyMorphData *src_data,
- const std::string &name)
-{
- LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*src_data);
- cloned_morph_data->mName = name;
- for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
- {
- cloned_morph_data->mCoords[v] = src_data->mCoords[v];
- cloned_morph_data->mNormals[v] = src_data->mNormals[v];
- cloned_morph_data->mBinormals[v] = src_data->mBinormals[v];
- }
- return cloned_morph_data;
-}
-
-LLPolyMorphData *clone_morph_param_direction(const LLPolyMorphData *src_data,
- const LLVector3 &direction,
- const std::string &name)
-{
- LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*src_data);
- cloned_morph_data->mName = name;
- LLVector4a dir;
- dir.load3(direction.mV);
-
- for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
- {
- cloned_morph_data->mCoords[v] = dir;
- cloned_morph_data->mNormals[v].clear();
- cloned_morph_data->mBinormals[v].clear();
- }
- return cloned_morph_data;
-}
-
-LLPolyMorphData *clone_morph_param_cleavage(const LLPolyMorphData *src_data,
- F32 scale,
- const std::string &name)
-{
- LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*src_data);
- cloned_morph_data->mName = name;
-
- LLVector4a sc;
- sc.splat(scale);
-
- LLVector4a nsc;
- nsc.set(scale, -scale, scale, scale);
-
- for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
- {
- if (cloned_morph_data->mCoords[v][1] < 0)
- {
- cloned_morph_data->mCoords[v].setMul(src_data->mCoords[v],nsc);
- cloned_morph_data->mNormals[v].setMul(src_data->mNormals[v],nsc);
- cloned_morph_data->mBinormals[v].setMul(src_data->mBinormals[v],nsc);
- }
- else
- {
- cloned_morph_data->mCoords[v].setMul(src_data->mCoords[v],sc);
- cloned_morph_data->mNormals[v].setMul(src_data->mNormals[v], sc);
- cloned_morph_data->mBinormals[v].setMul(src_data->mBinormals[v],sc);
- }
- }
- return cloned_morph_data;
-}
-
-// End
diff --git a/indra/newview/llpolymesh.h b/indra/newview/llpolymesh.h
deleted file mode 100644
index 28da230541..0000000000
--- a/indra/newview/llpolymesh.h
+++ /dev/null
@@ -1,451 +0,0 @@
-/**
- * @file llpolymesh.h
- * @brief Implementation of LLPolyMesh class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLPOLYMESH_H
-#define LL_LLPOLYMESH_H
-
-#include <string>
-#include <map>
-#include "llstl.h"
-
-#include "v3math.h"
-#include "v2math.h"
-#include "llquaternion.h"
-#include "llpolymorph.h"
-#include "lljoint.h"
-//#include "lldarray.h"
-
-class LLSkinJoint;
-class LLVOAvatar;
-class LLWearable;
-
-//#define USE_STRIPS // Use tri-strips for rendering.
-
-//-----------------------------------------------------------------------------
-// LLPolyFace
-// A set of 4 vertex indices.
-// An LLPolyFace can represent either a triangle or quad.
-// If the last index is -1, it's a triangle.
-//-----------------------------------------------------------------------------
-typedef S32 LLPolyFace[3];
-
-//struct PrimitiveGroup;
-
-//-----------------------------------------------------------------------------
-// LLPolyMesh
-// A polyhedra consisting of any number of triangles and quads.
-// All instances contain a set of faces, and optionally may include
-// faces grouped into named face sets.
-//-----------------------------------------------------------------------------
-class LLPolyMorphTarget;
-
-class LLPolyMeshSharedData
-{
- friend class LLPolyMesh;
-private:
- // transform data
- LLVector3 mPosition;
- LLQuaternion mRotation;
- LLVector3 mScale;
-
- // vertex data
- S32 mNumVertices;
- LLVector4a *mBaseCoords;
- LLVector4a *mBaseNormals;
- LLVector4a *mBaseBinormals;
- LLVector2 *mTexCoords;
- LLVector2 *mDetailTexCoords;
- F32 *mWeights;
-
- BOOL mHasWeights;
- BOOL mHasDetailTexCoords;
-
- // face data
- S32 mNumFaces;
- LLPolyFace *mFaces;
-
- // face set data
- U32 mNumJointNames;
- std::string* mJointNames;
-
- // morph targets
- typedef std::set<LLPolyMorphData*> morphdata_list_t;
- morphdata_list_t mMorphData;
-
- std::map<S32, S32> mSharedVerts;
-
- LLPolyMeshSharedData* mReferenceData;
- S32 mLastIndexOffset;
-
-public:
- // Temporarily...
- // Triangle indices
- U32 mNumTriangleIndices;
- U32 *mTriangleIndices;
-
-public:
- LLPolyMeshSharedData();
- ~LLPolyMeshSharedData();
-
-private:
- void setupLOD(LLPolyMeshSharedData* reference_data);
-
- // Frees all mesh memory resources
- void freeMeshData();
-
- void setPosition( const LLVector3 &pos ) { mPosition = pos; }
- void setRotation( const LLQuaternion &rot ) { mRotation = rot; }
- void setScale( const LLVector3 &scale ) { mScale = scale; }
-
- BOOL allocateVertexData( U32 numVertices );
-
- BOOL allocateFaceData( U32 numFaces );
-
- BOOL allocateJointNames( U32 numJointNames );
-
- // Retrieve the number of KB of memory used by this instance
- U32 getNumKB();
-
- // Load mesh data from file
- BOOL loadMesh( const std::string& fileName );
-
-public:
- void genIndices(S32 offset);
-
- const LLVector2 &getUVs(U32 index);
-
- const S32 *getSharedVert(S32 vert);
-
- BOOL isLOD() { return (mReferenceData != NULL); }
-};
-
-
-class LLJointRenderData
-{
-public:
- LLJointRenderData(const LLMatrix4* world_matrix, LLSkinJoint* skin_joint) : mWorldMatrix(world_matrix), mSkinJoint(skin_joint) {}
- ~LLJointRenderData(){}
-
- const LLMatrix4* mWorldMatrix;
- LLSkinJoint* mSkinJoint;
-};
-
-
-class LLPolyMesh
-{
-public:
-
- // Constructor
- LLPolyMesh(LLPolyMeshSharedData *shared_data, LLPolyMesh *reference_mesh);
-
- // Destructor
- ~LLPolyMesh();
-
- // Requests a mesh by name.
- // If the mesh already exists in the global mesh table, it is returned,
- // otherwise it is loaded from file, added to the table, and returned.
- static LLPolyMesh *getMesh( const std::string &name, LLPolyMesh* reference_mesh = NULL);
-
- // Frees all loaded meshes.
- // This should only be called once you know there are no outstanding
- // references to these objects. Generally, upon exit of the application.
- static void freeAllMeshes();
-
- //--------------------------------------------------------------------
- // Transform Data Access
- //--------------------------------------------------------------------
- // Get position
- const LLVector3 &getPosition() {
- llassert (mSharedData);
- return mSharedData->mPosition;
- }
-
- // Get rotation
- const LLQuaternion &getRotation() {
- llassert (mSharedData);
- return mSharedData->mRotation;
- }
-
- // Get scale
- const LLVector3 &getScale() {
- llassert (mSharedData);
- return mSharedData->mScale;
- }
-
- //--------------------------------------------------------------------
- // Vertex Data Access
- //--------------------------------------------------------------------
- // Get number of vertices
- U32 getNumVertices() {
- llassert (mSharedData);
- return mSharedData->mNumVertices;
- }
-
- // Returns whether or not the mesh has detail texture coords
- BOOL hasDetailTexCoords() {
- llassert (mSharedData);
- return mSharedData->mHasDetailTexCoords;
- }
-
- // Returns whether or not the mesh has vertex weights
- BOOL hasWeights() const{
- llassert (mSharedData);
- return mSharedData->mHasWeights;
- }
-
- // Get coords
- const LLVector4a *getCoords() const{
- return mCoords;
- }
-
- // non const version
- LLVector4a *getWritableCoords();
-
- // Get normals
- const LLVector4a *getNormals() const{
- return mNormals;
- }
-
- // Get normals
- const LLVector4a *getBinormals() const{
- return mBinormals;
- }
-
- // Get base mesh normals
- const LLVector4a *getBaseNormals() const{
- llassert(mSharedData);
- return mSharedData->mBaseNormals;
- }
-
- // Get base mesh normals
- const LLVector4a *getBaseBinormals() const{
- llassert(mSharedData);
- return mSharedData->mBaseBinormals;
- }
-
- // intermediate morphed normals and output normals
- LLVector4a *getWritableNormals();
- LLVector4a *getScaledNormals();
-
- LLVector4a *getWritableBinormals();
- LLVector4a *getScaledBinormals();
-
- // Get texCoords
- const LLVector2 *getTexCoords() const {
- return mTexCoords;
- }
-
- // non const version
- LLVector2 *getWritableTexCoords();
-
- // Get detailTexCoords
- const LLVector2 *getDetailTexCoords() const {
- llassert (mSharedData);
- return mSharedData->mDetailTexCoords;
- }
-
- // Get weights
- const F32 *getWeights() const {
- llassert (mSharedData);
- return mSharedData->mWeights;
- }
-
- F32 *getWritableWeights() const;
-
- LLVector4a *getWritableClothingWeights();
-
- const LLVector4a *getClothingWeights()
- {
- return mClothingWeights;
- }
-
- //--------------------------------------------------------------------
- // Face Data Access
- //--------------------------------------------------------------------
- // Get number of faces
- S32 getNumFaces() {
- llassert (mSharedData);
- return mSharedData->mNumFaces;
- }
-
- // Get faces
- LLPolyFace *getFaces() {
- llassert (mSharedData);
- return mSharedData->mFaces;
- }
-
- U32 getNumJointNames() {
- llassert (mSharedData);
- return mSharedData->mNumJointNames;
- }
-
- std::string *getJointNames() {
- llassert (mSharedData);
- return mSharedData->mJointNames;
- }
-
- LLPolyMorphData* getMorphData(const std::string& morph_name);
-// void removeMorphData(LLPolyMorphData *morph_target);
-// void deleteAllMorphData();
-
- LLPolyMeshSharedData *getSharedData() const;
- LLPolyMesh *getReferenceMesh() { return mReferenceMesh ? mReferenceMesh : this; }
-
- // Get indices
- U32* getIndices() { return mSharedData ? mSharedData->mTriangleIndices : NULL; }
-
- BOOL isLOD() { return mSharedData && mSharedData->isLOD(); }
-
- void setAvatar(LLVOAvatar* avatarp) { mAvatarp = avatarp; }
- LLVOAvatar* getAvatar() { return mAvatarp; }
-
- LLDynamicArray<LLJointRenderData*> mJointRenderData;
-
- U32 mFaceVertexOffset;
- U32 mFaceVertexCount;
- U32 mFaceIndexOffset;
- U32 mFaceIndexCount;
- U32 mCurVertexCount;
-private:
- void initializeForMorph();
-
- // Dumps diagnostic information about the global mesh table
- static void dumpDiagInfo();
-
-protected:
- // mesh data shared across all instances of a given mesh
- LLPolyMeshSharedData *mSharedData;
- // Single array of floats for allocation / deletion
- F32 *mVertexData;
- // deformed vertices (resulting from application of morph targets)
- LLVector4a *mCoords;
- // deformed normals (resulting from application of morph targets)
- LLVector4a *mScaledNormals;
- // output normals (after normalization)
- LLVector4a *mNormals;
- // deformed binormals (resulting from application of morph targets)
- LLVector4a *mScaledBinormals;
- // output binormals (after normalization)
- LLVector4a *mBinormals;
- // weight values that mark verts as clothing/skin
- LLVector4a *mClothingWeights;
- // output texture coordinates
- LLVector2 *mTexCoords;
-
- LLPolyMesh *mReferenceMesh;
-
- // global mesh list
- typedef std::map<std::string, LLPolyMeshSharedData*> LLPolyMeshSharedDataTable;
- static LLPolyMeshSharedDataTable sGlobalSharedMeshList;
-
- // Backlink only; don't make this an LLPointer.
- LLVOAvatar* mAvatarp;
-};
-
-//-----------------------------------------------------------------------------
-// LLPolySkeletalDeformationInfo
-// Shared information for LLPolySkeletalDeformations
-//-----------------------------------------------------------------------------
-struct LLPolySkeletalBoneInfo
-{
- LLPolySkeletalBoneInfo(std::string &name, LLVector3 &scale, LLVector3 &pos, BOOL haspos)
- : mBoneName(name),
- mScaleDeformation(scale),
- mPositionDeformation(pos),
- mHasPositionDeformation(haspos) {}
- std::string mBoneName;
- LLVector3 mScaleDeformation;
- LLVector3 mPositionDeformation;
- BOOL mHasPositionDeformation;
-};
-
-class LLPolySkeletalDistortionInfo : public LLViewerVisualParamInfo
-{
- friend class LLPolySkeletalDistortion;
-public:
- LLPolySkeletalDistortionInfo();
- /*virtual*/ ~LLPolySkeletalDistortionInfo() {};
-
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
-
-protected:
- typedef std::vector<LLPolySkeletalBoneInfo> bone_info_list_t;
- bone_info_list_t mBoneInfoList;
-};
-
-//-----------------------------------------------------------------------------
-// LLPolySkeletalDeformation
-// A set of joint scale data for deforming the avatar mesh
-//-----------------------------------------------------------------------------
-
-LL_ALIGN_PREFIX(16)
-class LLPolySkeletalDistortion : public LLViewerVisualParam
-{
-public:
- LLPolySkeletalDistortion(LLVOAvatar *avatarp);
- ~LLPolySkeletalDistortion();
-
- void* operator new(size_t size)
- {
- return ll_aligned_malloc_16(size);
- }
-
- void operator delete(void* ptr)
- {
- ll_aligned_free_16(ptr);
- }
-
- // Special: These functions are overridden by child classes
- LLPolySkeletalDistortionInfo* getInfo() const { return (LLPolySkeletalDistortionInfo*)mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLPolySkeletalDistortionInfo *info);
-
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex sex );
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion() { return 0.1f; }
- /*virtual*/ const LLVector4a& getAvgDistortion() { return mDefaultVec; }
- /*virtual*/ F32 getMaxDistortion() { return 0.1f; }
- /*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh){return LLVector4a(0.001f, 0.001f, 0.001f);}
- /*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh){index = 0; poly_mesh = NULL; return &mDefaultVec;};
- /*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh){index = 0; poly_mesh = NULL; return NULL;};
-
-protected:
- LL_ALIGN_16(LLVector4a mDefaultVec);
-
- typedef std::map<LLJoint*, LLVector3> joint_vec_map_t;
- joint_vec_map_t mJointScales;
- joint_vec_map_t mJointOffsets;
- // Backlink only; don't make this an LLPointer.
- LLVOAvatar *mAvatar;
-} LL_ALIGN_POSTFIX(16);
-
-#endif // LL_LLPOLYMESH_H
-
diff --git a/indra/newview/llpolymorph.cpp b/indra/newview/llpolymorph.cpp
deleted file mode 100644
index 495fdc348c..0000000000
--- a/indra/newview/llpolymorph.cpp
+++ /dev/null
@@ -1,789 +0,0 @@
-/**
- * @file llpolymorph.cpp
- * @brief Implementation of LLPolyMesh class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-//-----------------------------------------------------------------------------
-// Header Files
-//-----------------------------------------------------------------------------
-#include "llviewerprecompiledheaders.h"
-
-#include "llpolymorph.h"
-#include "llvoavatar.h"
-#include "llwearable.h"
-#include "llxmltree.h"
-#include "llendianswizzle.h"
-
-//#include "../tools/imdebug/imdebug.h"
-
-const F32 NORMAL_SOFTEN_FACTOR = 0.65f;
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphData()
-//-----------------------------------------------------------------------------
-LLPolyMorphData::LLPolyMorphData(const std::string& morph_name)
- : mName(morph_name)
-{
- mNumIndices = 0;
- mCurrentIndex = 0;
- mTotalDistortion = 0.f;
- mAvgDistortion.clear();
- mMaxDistortion = 0.f;
- mVertexIndices = NULL;
- mCoords = NULL;
- mNormals = NULL;
- mBinormals = NULL;
- mTexCoords = NULL;
-
- mMesh = NULL;
-}
-
-LLPolyMorphData::LLPolyMorphData(const LLPolyMorphData &rhs) :
- mName(rhs.mName),
- mNumIndices(rhs.mNumIndices),
- mTotalDistortion(rhs.mTotalDistortion),
- mAvgDistortion(rhs.mAvgDistortion),
- mMaxDistortion(rhs.mMaxDistortion),
- mVertexIndices(NULL),
- mCoords(NULL),
- mNormals(NULL),
- mBinormals(NULL),
- mTexCoords(NULL)
-{
- const S32 numVertices = mNumIndices;
-
- U32 size = sizeof(LLVector4a)*numVertices;
-
- mCoords = static_cast<LLVector4a*>( ll_aligned_malloc_16(size) );
- mNormals = static_cast<LLVector4a*>( ll_aligned_malloc_16(size) );
- mBinormals = static_cast<LLVector4a*>( ll_aligned_malloc_16(size) );
- mTexCoords = new LLVector2[numVertices];
- mVertexIndices = new U32[numVertices];
-
- for (S32 v=0; v < numVertices; v++)
- {
- mCoords[v] = rhs.mCoords[v];
- mNormals[v] = rhs.mNormals[v];
- mBinormals[v] = rhs.mBinormals[v];
- mTexCoords[v] = rhs.mTexCoords[v];
- mVertexIndices[v] = rhs.mVertexIndices[v];
- }
-}
-
-//-----------------------------------------------------------------------------
-// ~LLPolyMorphData()
-//-----------------------------------------------------------------------------
-LLPolyMorphData::~LLPolyMorphData()
-{
- freeData();
-}
-
-//-----------------------------------------------------------------------------
-// loadBinary()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
-{
- S32 numVertices;
- S32 numRead;
-
- numRead = fread(&numVertices, sizeof(S32), 1, fp);
- llendianswizzle(&numVertices, sizeof(S32), 1);
- if (numRead != 1)
- {
- llwarns << "Can't read number of morph target vertices" << llendl;
- return FALSE;
- }
-
- //-------------------------------------------------------------------------
- // free any existing data
- //-------------------------------------------------------------------------
- freeData();
-
- //-------------------------------------------------------------------------
- // allocate vertices
- //-------------------------------------------------------------------------
-
- U32 size = sizeof(LLVector4a)*numVertices;
-
- mCoords = static_cast<LLVector4a*>(ll_aligned_malloc_16(size));
- mNormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(size));
- mBinormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(size));
-
- mTexCoords = new LLVector2[numVertices];
- // Actually, we are allocating more space than we need for the skiplist
- mVertexIndices = new U32[numVertices];
- mNumIndices = 0;
- mTotalDistortion = 0.f;
- mMaxDistortion = 0.f;
- mAvgDistortion.clear();
- mMesh = mesh;
-
- //-------------------------------------------------------------------------
- // read vertices
- //-------------------------------------------------------------------------
- for(S32 v = 0; v < numVertices; v++)
- {
- numRead = fread(&mVertexIndices[v], sizeof(U32), 1, fp);
- llendianswizzle(&mVertexIndices[v], sizeof(U32), 1);
- if (numRead != 1)
- {
- llwarns << "Can't read morph target vertex number" << llendl;
- return FALSE;
- }
-
- if (mVertexIndices[v] > 10000)
- {
- llerrs << "Bad morph index: " << mVertexIndices[v] << llendl;
- }
-
-
- numRead = fread(&mCoords[v], sizeof(F32), 3, fp);
- llendianswizzle(&mCoords[v], sizeof(F32), 3);
- if (numRead != 3)
- {
- llwarns << "Can't read morph target vertex coordinates" << llendl;
- return FALSE;
- }
-
- F32 magnitude = mCoords[v].getLength3().getF32();
-
- mTotalDistortion += magnitude;
- LLVector4a t;
- t.setAbs(mCoords[v]);
- mAvgDistortion.add(t);
-
- if (magnitude > mMaxDistortion)
- {
- mMaxDistortion = magnitude;
- }
-
- numRead = fread(&mNormals[v], sizeof(F32), 3, fp);
- llendianswizzle(&mNormals[v], sizeof(F32), 3);
- if (numRead != 3)
- {
- llwarns << "Can't read morph target normal" << llendl;
- return FALSE;
- }
-
- numRead = fread(&mBinormals[v], sizeof(F32), 3, fp);
- llendianswizzle(&mBinormals[v], sizeof(F32), 3);
- if (numRead != 3)
- {
- llwarns << "Can't read morph target binormal" << llendl;
- return FALSE;
- }
-
-
- numRead = fread(&mTexCoords[v].mV, sizeof(F32), 2, fp);
- llendianswizzle(&mTexCoords[v].mV, sizeof(F32), 2);
- if (numRead != 2)
- {
- llwarns << "Can't read morph target uv" << llendl;
- return FALSE;
- }
-
- mNumIndices++;
- }
-
- mAvgDistortion.mul(1.f/(F32)mNumIndices);
- mAvgDistortion.normalize3fast();
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// freeData()
-//-----------------------------------------------------------------------------
-void LLPolyMorphData::freeData()
-{
- if (mCoords != NULL)
- {
- ll_aligned_free_16(mCoords);
- mCoords = NULL;
- }
-
- if (mNormals != NULL)
- {
- ll_aligned_free_16(mNormals);
- mNormals = NULL;
- }
-
- if (mBinormals != NULL)
- {
- ll_aligned_free_16(mBinormals);
- mBinormals = NULL;
- }
-
- if (mTexCoords != NULL)
- {
- delete [] mTexCoords;
- mTexCoords = NULL;
- }
-
- if (mVertexIndices != NULL)
- {
- delete [] mVertexIndices;
- mVertexIndices = NULL;
- }
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphTargetInfo()
-//-----------------------------------------------------------------------------
-LLPolyMorphTargetInfo::LLPolyMorphTargetInfo()
- : mIsClothingMorph(FALSE)
-{
-}
-
-BOOL LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "param" ) && node->getChildByName( "param_morph" ) );
-
- if (!LLViewerVisualParamInfo::parseXml(node))
- return FALSE;
-
- // Get mixed-case name
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if( !node->getFastAttributeString( name_string, mMorphName ) )
- {
- llwarns << "Avatar file: <param> is missing name attribute" << llendl;
- return FALSE; // Continue, ignoring this tag
- }
-
- static LLStdStringHandle clothing_morph_string = LLXmlTree::addAttributeString("clothing_morph");
- node->getFastAttributeBOOL(clothing_morph_string, mIsClothingMorph);
-
- LLXmlTreeNode *paramNode = node->getChildByName("param_morph");
-
- if (NULL == paramNode)
- {
- llwarns << "Failed to getChildByName(\"param_morph\")"
- << llendl;
- return FALSE;
- }
-
- for (LLXmlTreeNode* child_node = paramNode->getFirstChild();
- child_node;
- child_node = paramNode->getNextChild())
- {
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if (child_node->hasName("volume_morph"))
- {
- std::string volume_name;
- if (child_node->getFastAttributeString(name_string, volume_name))
- {
- LLVector3 scale;
- static LLStdStringHandle scale_string = LLXmlTree::addAttributeString("scale");
- child_node->getFastAttributeVector3(scale_string, scale);
-
- LLVector3 pos;
- static LLStdStringHandle pos_string = LLXmlTree::addAttributeString("pos");
- child_node->getFastAttributeVector3(pos_string, pos);
-
- mVolumeInfoList.push_back(LLPolyVolumeMorphInfo(volume_name,scale,pos));
- }
- }
- }
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphTarget()
-//-----------------------------------------------------------------------------
-LLPolyMorphTarget::LLPolyMorphTarget(LLPolyMesh *poly_mesh)
- : mMorphData(NULL), mMesh(poly_mesh),
- mVertMask(NULL),
- mLastSex(SEX_FEMALE),
- mNumMorphMasksPending(0)
-{
-}
-
-//-----------------------------------------------------------------------------
-// ~LLPolyMorphTarget()
-//-----------------------------------------------------------------------------
-LLPolyMorphTarget::~LLPolyMorphTarget()
-{
- if (mVertMask)
- {
- delete mVertMask;
- }
-}
-
-//-----------------------------------------------------------------------------
-// setInfo()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mInfo = info;
- mID = info->mID;
- setWeight(getDefaultWeight(), FALSE );
-
- LLVOAvatar* avatarp = mMesh->getAvatar();
- LLPolyMorphTargetInfo::volume_info_list_t::iterator iter;
- for (iter = getInfo()->mVolumeInfoList.begin(); iter != getInfo()->mVolumeInfoList.end(); iter++)
- {
- LLPolyVolumeMorphInfo *volume_info = &(*iter);
- for (S32 i = 0; i < avatarp->mNumCollisionVolumes; i++)
- {
- if (avatarp->mCollisionVolumes[i].getName() == volume_info->mName)
- {
- mVolumeMorphs.push_back(LLPolyVolumeMorph(&avatarp->mCollisionVolumes[i],
- volume_info->mScale,
- volume_info->mPos));
- break;
- }
- }
- }
-
- std::string morph_param_name = getInfo()->mMorphName;
-
- mMorphData = mMesh->getMorphData(morph_param_name);
- if (!mMorphData)
- {
- const std::string driven_tag = "_Driven";
- U32 pos = morph_param_name.find(driven_tag);
- if (pos > 0)
- {
- morph_param_name = morph_param_name.substr(0,pos);
- mMorphData = mMesh->getMorphData(morph_param_name);
- }
- }
- if (!mMorphData)
- {
- llwarns << "No morph target named " << morph_param_name << " found in mesh." << llendl;
- return FALSE; // Continue, ignoring this tag
- }
- return TRUE;
-}
-
-/*virtual*/ LLViewerVisualParam* LLPolyMorphTarget::cloneParam(LLWearable* wearable) const
-{
- LLPolyMorphTarget *new_param = new LLPolyMorphTarget(mMesh);
- *new_param = *this;
- return new_param;
-}
-
-#if 0 // obsolete
-//-----------------------------------------------------------------------------
-// parseData()
-//-----------------------------------------------------------------------------
-BOOL LLPolyMorphTarget::parseData(LLXmlTreeNode* node)
-{
- LLPolyMorphTargetInfo* info = new LLPolyMorphTargetInfo;
-
- info->parseXml(node);
- if (!setInfo(info))
- {
- delete info;
- return FALSE;
- }
- return TRUE;
-}
-#endif
-
-//-----------------------------------------------------------------------------
-// getVertexDistortion()
-//-----------------------------------------------------------------------------
-LLVector4a LLPolyMorphTarget::getVertexDistortion(S32 requested_index, LLPolyMesh *mesh)
-{
- if (!mMorphData || mMesh != mesh) return LLVector4a::getZero();
-
- for(U32 index = 0; index < mMorphData->mNumIndices; index++)
- {
- if (mMorphData->mVertexIndices[index] == (U32)requested_index)
- {
- return mMorphData->mCoords[index];
- }
- }
-
- return LLVector4a::getZero();
-}
-
-//-----------------------------------------------------------------------------
-// getFirstDistortion()
-//-----------------------------------------------------------------------------
-const LLVector4a *LLPolyMorphTarget::getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh)
-{
- if (!mMorphData) return &LLVector4a::getZero();
-
- LLVector4a* resultVec;
- mMorphData->mCurrentIndex = 0;
- if (mMorphData->mNumIndices)
- {
- resultVec = &mMorphData->mCoords[mMorphData->mCurrentIndex];
- if (index != NULL)
- {
- *index = mMorphData->mVertexIndices[mMorphData->mCurrentIndex];
- }
- if (poly_mesh != NULL)
- {
- *poly_mesh = mMesh;
- }
-
- return resultVec;
- }
- return NULL;
-}
-
-//-----------------------------------------------------------------------------
-// getNextDistortion()
-//-----------------------------------------------------------------------------
-const LLVector4a *LLPolyMorphTarget::getNextDistortion(U32 *index, LLPolyMesh **poly_mesh)
-{
- if (!mMorphData) return &LLVector4a::getZero();
-
- LLVector4a* resultVec;
- mMorphData->mCurrentIndex++;
- if (mMorphData->mCurrentIndex < mMorphData->mNumIndices)
- {
- resultVec = &mMorphData->mCoords[mMorphData->mCurrentIndex];
- if (index != NULL)
- {
- *index = mMorphData->mVertexIndices[mMorphData->mCurrentIndex];
- }
- if (poly_mesh != NULL)
- {
- *poly_mesh = mMesh;
- }
- return resultVec;
- }
- return NULL;
-}
-
-//-----------------------------------------------------------------------------
-// getTotalDistortion()
-//-----------------------------------------------------------------------------
-F32 LLPolyMorphTarget::getTotalDistortion()
-{
- if (mMorphData)
- {
- return mMorphData->mTotalDistortion;
- }
- else
- {
- return 0.f;
- }
-}
-
-//-----------------------------------------------------------------------------
-// getAvgDistortion()
-//-----------------------------------------------------------------------------
-const LLVector4a& LLPolyMorphTarget::getAvgDistortion()
-{
- if (mMorphData)
- {
- return mMorphData->mAvgDistortion;
- }
- else
- {
- return LLVector4a::getZero();
- }
-}
-
-//-----------------------------------------------------------------------------
-// getMaxDistortion()
-//-----------------------------------------------------------------------------
-F32 LLPolyMorphTarget::getMaxDistortion()
-{
- if (mMorphData)
- {
- return mMorphData->mMaxDistortion;
- }
- else
- {
- return 0.f;
- }
-}
-
-//-----------------------------------------------------------------------------
-// apply()
-//-----------------------------------------------------------------------------
-static LLFastTimer::DeclareTimer FTM_APPLY_MORPH_TARGET("Apply Morph");
-
-void LLPolyMorphTarget::apply( ESex avatar_sex )
-{
- if (!mMorphData || mNumMorphMasksPending > 0)
- {
- return;
- }
-
- LLFastTimer t(FTM_APPLY_MORPH_TARGET);
-
- mLastSex = avatar_sex;
-
- // Check for NaN condition (NaN is detected if a variable doesn't equal itself.
- if (mCurWeight != mCurWeight)
- {
- mCurWeight = 0.0;
- }
- if (mLastWeight != mLastWeight)
- {
- mLastWeight = mCurWeight+.001;
- }
-
- // perform differential update of morph
- F32 delta_weight = ( getSex() & avatar_sex ) ? (mCurWeight - mLastWeight) : (getDefaultWeight() - mLastWeight);
- // store last weight
- mLastWeight += delta_weight;
-
- if (delta_weight != 0.f)
- {
- llassert(!mMesh->isLOD());
- LLVector4a *coords = mMesh->getWritableCoords();
-
- LLVector4a *scaled_normals = mMesh->getScaledNormals();
- LLVector4a *normals = mMesh->getWritableNormals();
-
- LLVector4a *scaled_binormals = mMesh->getScaledBinormals();
- LLVector4a *binormals = mMesh->getWritableBinormals();
-
- LLVector4a *clothing_weights = mMesh->getWritableClothingWeights();
- LLVector2 *tex_coords = mMesh->getWritableTexCoords();
-
- F32 *maskWeightArray = (mVertMask) ? mVertMask->getMorphMaskWeights() : NULL;
-
- for(U32 vert_index_morph = 0; vert_index_morph < mMorphData->mNumIndices; vert_index_morph++)
- {
- S32 vert_index_mesh = mMorphData->mVertexIndices[vert_index_morph];
-
- F32 maskWeight = 1.f;
- if (maskWeightArray)
- {
- maskWeight = maskWeightArray[vert_index_morph];
- }
-
-
- LLVector4a pos = mMorphData->mCoords[vert_index_morph];
- pos.mul(delta_weight*maskWeight);
- coords[vert_index_mesh].add(pos);
-
- if (getInfo()->mIsClothingMorph && clothing_weights)
- {
- LLVector4a clothing_offset = mMorphData->mCoords[vert_index_morph];
- clothing_offset.mul(delta_weight * maskWeight);
- LLVector4a* clothing_weight = &clothing_weights[vert_index_mesh];
- clothing_weight->add(clothing_offset);
- clothing_weight->getF32ptr()[VW] = maskWeight;
- }
-
- // calculate new normals based on half angles
- LLVector4a norm = mMorphData->mNormals[vert_index_morph];
- norm.mul(delta_weight*maskWeight*NORMAL_SOFTEN_FACTOR);
- scaled_normals[vert_index_mesh].add(norm);
- norm = scaled_normals[vert_index_mesh];
- norm.normalize3fast();
- normals[vert_index_mesh] = norm;
-
- // calculate new binormals
- LLVector4a binorm = mMorphData->mBinormals[vert_index_morph];
- binorm.mul(delta_weight*maskWeight*NORMAL_SOFTEN_FACTOR);
- scaled_binormals[vert_index_mesh].add(binorm);
- LLVector4a tangent;
- tangent.setCross3(scaled_binormals[vert_index_mesh], norm);
- LLVector4a& normalized_binormal = binormals[vert_index_mesh];
- normalized_binormal.setCross3(norm, tangent);
- normalized_binormal.normalize3fast();
-
- tex_coords[vert_index_mesh] += mMorphData->mTexCoords[vert_index_morph] * delta_weight * maskWeight;
- }
-
- // now apply volume changes
- for( volume_list_t::iterator iter = mVolumeMorphs.begin(); iter != mVolumeMorphs.end(); iter++ )
- {
- LLPolyVolumeMorph* volume_morph = &(*iter);
- LLVector3 scale_delta = volume_morph->mScale * delta_weight;
- LLVector3 pos_delta = volume_morph->mPos * delta_weight;
-
- volume_morph->mVolume->setScale(volume_morph->mVolume->getScale() + scale_delta);
- volume_morph->mVolume->setPosition(volume_morph->mVolume->getPosition() + pos_delta);
- }
- }
-
- if (mNext)
- {
- mNext->apply(avatar_sex);
- }
-}
-
-//-----------------------------------------------------------------------------
-// applyMask()
-//-----------------------------------------------------------------------------
-void LLPolyMorphTarget::applyMask(U8 *maskTextureData, S32 width, S32 height, S32 num_components, BOOL invert)
-{
- LLVector4a *clothing_weights = getInfo()->mIsClothingMorph ? mMesh->getWritableClothingWeights() : NULL;
-
- if (!mVertMask)
- {
- mVertMask = new LLPolyVertexMask(mMorphData);
- mNumMorphMasksPending--;
- }
- else
- {
- // remove effect of previous mask
- F32 *maskWeights = (mVertMask) ? mVertMask->getMorphMaskWeights() : NULL;
-
- if (maskWeights)
- {
- LLVector4a *coords = mMesh->getWritableCoords();
- LLVector4a *scaled_normals = mMesh->getScaledNormals();
- LLVector4a *scaled_binormals = mMesh->getScaledBinormals();
- LLVector2 *tex_coords = mMesh->getWritableTexCoords();
-
- LLVector4Logical clothing_mask;
- clothing_mask.clear();
- clothing_mask.setElement<0>();
- clothing_mask.setElement<1>();
- clothing_mask.setElement<2>();
-
-
- for(U32 vert = 0; vert < mMorphData->mNumIndices; vert++)
- {
- F32 lastMaskWeight = mLastWeight * maskWeights[vert];
- S32 out_vert = mMorphData->mVertexIndices[vert];
-
- // remove effect of existing masked morph
- LLVector4a t;
- t = mMorphData->mCoords[vert];
- t.mul(lastMaskWeight);
- coords[out_vert].sub(t);
-
- t = mMorphData->mNormals[vert];
- t.mul(lastMaskWeight*NORMAL_SOFTEN_FACTOR);
- scaled_normals[out_vert].sub(t);
-
- t = mMorphData->mBinormals[vert];
- t.mul(lastMaskWeight*NORMAL_SOFTEN_FACTOR);
- scaled_binormals[out_vert].sub(t);
-
- tex_coords[out_vert] -= mMorphData->mTexCoords[vert] * lastMaskWeight;
-
- if (clothing_weights)
- {
- LLVector4a clothing_offset = mMorphData->mCoords[vert];
- clothing_offset.mul(lastMaskWeight);
- LLVector4a* clothing_weight = &clothing_weights[out_vert];
- LLVector4a t;
- t.setSub(*clothing_weight, clothing_offset);
- clothing_weight->setSelectWithMask(clothing_mask, t, *clothing_weight);
- }
- }
- }
- }
-
- // set last weight to 0, since we've removed the effect of this morph
- mLastWeight = 0.f;
-
- mVertMask->generateMask(maskTextureData, width, height, num_components, invert, clothing_weights);
-
- apply(mLastSex);
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPolyVertexMask()
-//-----------------------------------------------------------------------------
-LLPolyVertexMask::LLPolyVertexMask(LLPolyMorphData* morph_data)
-{
- mWeights = new F32[morph_data->mNumIndices];
- mMorphData = morph_data;
- mWeightsGenerated = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// ~LLPolyVertexMask()
-//-----------------------------------------------------------------------------
-LLPolyVertexMask::~LLPolyVertexMask()
-{
- delete[] mWeights;
-}
-
-//-----------------------------------------------------------------------------
-// generateMask()
-//-----------------------------------------------------------------------------
-void LLPolyVertexMask::generateMask(U8 *maskTextureData, S32 width, S32 height, S32 num_components, BOOL invert, LLVector4a *clothing_weights)
-{
-// RN debug output that uses Image Debugger (http://www.cs.unc.edu/~baxter/projects/imdebug/)
-// BOOL debugImg = FALSE;
-// if (debugImg)
-// {
-// if (invert)
-// {
-// imdebug("lum rbga=rgba b=8 w=%d h=%d *-1 %p", width, height, maskTextureData);
-// }
-// else
-// {
-// imdebug("lum rbga=rgba b=8 w=%d h=%d %p", width, height, maskTextureData);
-// }
-// }
- for (U32 index = 0; index < mMorphData->mNumIndices; index++)
- {
- S32 vertIndex = mMorphData->mVertexIndices[index];
- const S32 *sharedVertIndex = mMorphData->mMesh->getSharedVert(vertIndex);
- LLVector2 uvCoords;
-
- if (sharedVertIndex)
- {
- uvCoords = mMorphData->mMesh->getUVs(*sharedVertIndex);
- }
- else
- {
- uvCoords = mMorphData->mMesh->getUVs(vertIndex);
- }
- U32 s = llclamp((U32)(uvCoords.mV[VX] * (F32)(width - 1)), (U32)0, (U32)width - 1);
- U32 t = llclamp((U32)(uvCoords.mV[VY] * (F32)(height - 1)), (U32)0, (U32)height - 1);
-
- mWeights[index] = ((F32) maskTextureData[((t * width + s) * num_components) + (num_components - 1)]) / 255.f;
-
- if (invert)
- {
- mWeights[index] = 1.f - mWeights[index];
- }
-
- // now apply step function
- // mWeights[index] = mWeights[index] > 0.95f ? 1.f : 0.f;
-
- if (clothing_weights)
- {
- clothing_weights[vertIndex].getF32ptr()[VW] = mWeights[index];
- }
- }
- mWeightsGenerated = TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// getMaskForMorphIndex()
-//-----------------------------------------------------------------------------
-F32* LLPolyVertexMask::getMorphMaskWeights()
-{
- if (!mWeightsGenerated)
- {
- return NULL;
- }
-
- return mWeights;
-}
diff --git a/indra/newview/llpolymorph.h b/indra/newview/llpolymorph.h
deleted file mode 100644
index 24940c52e0..0000000000
--- a/indra/newview/llpolymorph.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * @file llpolymorph.h
- * @brief Implementation of LLPolyMesh class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLPOLYMORPH_H
-#define LL_LLPOLYMORPH_H
-
-#include <string>
-#include <vector>
-
-#include "llviewervisualparam.h"
-
-class LLPolyMeshSharedData;
-class LLVOAvatar;
-class LLVector2;
-class LLViewerJointCollisionVolume;
-class LLWearable;
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphData()
-//-----------------------------------------------------------------------------
-LL_ALIGN_PREFIX(16)
-class LLPolyMorphData
-{
-public:
- LLPolyMorphData(const std::string& morph_name);
- ~LLPolyMorphData();
- LLPolyMorphData(const LLPolyMorphData &rhs);
-
- void* operator new(size_t size)
- {
- return ll_aligned_malloc_16(size);
- }
-
- void operator delete(void* ptr)
- {
- ll_aligned_free_16(ptr);
- }
-
- BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh);
- const std::string& getName() { return mName; }
-
-public:
- std::string mName;
-
- // morphology
- U32 mNumIndices;
- U32* mVertexIndices;
- U32 mCurrentIndex;
- LLVector4a* mCoords;
- LLVector4a* mNormals;
- LLVector4a* mBinormals;
- LLVector2* mTexCoords;
-
- F32 mTotalDistortion; // vertex distortion summed over entire morph
- F32 mMaxDistortion; // maximum single vertex distortion in a given morph
- LL_ALIGN_16(LLVector4a mAvgDistortion); // average vertex distortion, to infer directionality of the morph
- LLPolyMeshSharedData* mMesh;
-
-private:
- void freeData();
-} LL_ALIGN_POSTFIX(16);
-
-
-//-----------------------------------------------------------------------------
-// LLPolyVertexMask()
-//-----------------------------------------------------------------------------
-class LLPolyVertexMask
-{
-public:
- LLPolyVertexMask(LLPolyMorphData* morph_data);
- ~LLPolyVertexMask();
-
- void generateMask(U8 *maskData, S32 width, S32 height, S32 num_components, BOOL invert, LLVector4a *clothing_weights);
- F32* getMorphMaskWeights();
-
-
-protected:
- F32* mWeights;
- LLPolyMorphData *mMorphData;
- BOOL mWeightsGenerated;
-
-};
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphTarget Data structs
-//-----------------------------------------------------------------------------
-struct LLPolyVolumeMorphInfo
-{
- LLPolyVolumeMorphInfo(std::string &name, LLVector3 &scale, LLVector3 &pos)
- : mName(name), mScale(scale), mPos(pos) {};
-
- std::string mName;
- LLVector3 mScale;
- LLVector3 mPos;
-};
-
-struct LLPolyVolumeMorph
-{
- LLPolyVolumeMorph(LLViewerJointCollisionVolume* volume, LLVector3 scale, LLVector3 pos)
- : mVolume(volume), mScale(scale), mPos(pos) {};
-
- LLViewerJointCollisionVolume* mVolume;
- LLVector3 mScale;
- LLVector3 mPos;
-};
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphTargetInfo
-// Shared information for LLPolyMorphTargets
-//-----------------------------------------------------------------------------
-class LLPolyMorphTargetInfo : public LLViewerVisualParamInfo
-{
- friend class LLPolyMorphTarget;
-public:
- LLPolyMorphTargetInfo();
- /*virtual*/ ~LLPolyMorphTargetInfo() {};
-
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
-
-protected:
- std::string mMorphName;
- BOOL mIsClothingMorph;
- typedef std::vector<LLPolyVolumeMorphInfo> volume_info_list_t;
- volume_info_list_t mVolumeInfoList;
-};
-
-//-----------------------------------------------------------------------------
-// LLPolyMorphTarget
-// A set of vertex data associated with morph target.
-// These morph targets must be topologically consistent with a given Polymesh
-// (share face sets)
-//-----------------------------------------------------------------------------
-class LLPolyMorphTarget : public LLViewerVisualParam
-{
-public:
- LLPolyMorphTarget(LLPolyMesh *poly_mesh);
- ~LLPolyMorphTarget();
-
- // Special: These functions are overridden by child classes
- LLPolyMorphTargetInfo* getInfo() const { return (LLPolyMorphTargetInfo*)mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLPolyMorphTargetInfo *info);
-
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex sex );
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion();
- /*virtual*/ const LLVector4a& getAvgDistortion();
- /*virtual*/ F32 getMaxDistortion();
- /*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh);
- /*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh);
- /*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh);
-
- void applyMask(U8 *maskData, S32 width, S32 height, S32 num_components, BOOL invert);
- void addPendingMorphMask() { mNumMorphMasksPending++; }
-
-protected:
- LLPolyMorphData* mMorphData;
- LLPolyMesh* mMesh;
- LLPolyVertexMask * mVertMask;
- ESex mLastSex;
- // number of morph masks that haven't been generated, must be 0 before this morph is applied
- BOOL mNumMorphMasksPending;
-
- typedef std::vector<LLPolyVolumeMorph> volume_list_t;
- volume_list_t mVolumeMorphs;
-
-};
-
-#endif // LL_LLPOLYMORPH_H
diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp
index 08829c1184..08829c1184 100644..100755
--- a/indra/newview/llpopupview.cpp
+++ b/indra/newview/llpopupview.cpp
diff --git a/indra/newview/llpopupview.h b/indra/newview/llpopupview.h
index b378f61984..b378f61984 100644..100755
--- a/indra/newview/llpopupview.h
+++ b/indra/newview/llpopupview.h
diff --git a/indra/newview/llpostcard.cpp b/indra/newview/llpostcard.cpp
index 4f2d6da7e5..aebe636f59 100644..100755
--- a/indra/newview/llpostcard.cpp
+++ b/indra/newview/llpostcard.cpp
@@ -35,6 +35,7 @@
#include "message.h"
#include "llagent.h"
+#include "llassetstorage.h"
#include "llassetuploadresponders.h"
///////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llpostcard.h b/indra/newview/llpostcard.h
index 0eb118b906..0eb118b906 100644..100755
--- a/indra/newview/llpostcard.h
+++ b/indra/newview/llpostcard.h
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index 04934b13f1..04934b13f1 100644..100755
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
diff --git a/indra/newview/llpreview.h b/indra/newview/llpreview.h
index 759430c3a5..759430c3a5 100644..100755
--- a/indra/newview/llpreview.h
+++ b/indra/newview/llpreview.h
diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp
index 35ac0537a3..35ac0537a3 100644..100755
--- a/indra/newview/llpreviewanim.cpp
+++ b/indra/newview/llpreviewanim.cpp
diff --git a/indra/newview/llpreviewanim.h b/indra/newview/llpreviewanim.h
index 8eaed6ca1f..8eaed6ca1f 100644..100755
--- a/indra/newview/llpreviewanim.h
+++ b/indra/newview/llpreviewanim.h
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index f47928b131..f47928b131 100644..100755
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h
index fd4fcf9d8f..fd4fcf9d8f 100644..100755
--- a/indra/newview/llpreviewgesture.h
+++ b/indra/newview/llpreviewgesture.h
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index 3a9360fd23..3a9360fd23 100644..100755
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
diff --git a/indra/newview/llpreviewnotecard.h b/indra/newview/llpreviewnotecard.h
index b53c0da6be..b53c0da6be 100644..100755
--- a/indra/newview/llpreviewnotecard.h
+++ b/indra/newview/llpreviewnotecard.h
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 968a912ea2..968a912ea2 100644..100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 7563cecd9d..7563cecd9d 100644..100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
diff --git a/indra/newview/llpreviewsound.cpp b/indra/newview/llpreviewsound.cpp
index 33d2d015ad..33d2d015ad 100644..100755
--- a/indra/newview/llpreviewsound.cpp
+++ b/indra/newview/llpreviewsound.cpp
diff --git a/indra/newview/llpreviewsound.h b/indra/newview/llpreviewsound.h
index 0453bfd936..0453bfd936 100644..100755
--- a/indra/newview/llpreviewsound.h
+++ b/indra/newview/llpreviewsound.h
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 3ff5a05d81..91a98792eb 100644..100755
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -70,7 +70,7 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key)
mAspectRatio(0.f),
mPreviewToSave(FALSE),
mImage(NULL),
- mImageOldBoostLevel(LLViewerTexture::BOOST_NONE)
+ mImageOldBoostLevel(LLGLTexture::BOOST_NONE)
{
updateImageID();
if (key.has("save_as"))
@@ -468,9 +468,9 @@ void LLPreviewTexture::onAspectRatioCommit(LLUICtrl* ctrl, void* userdata)
void LLPreviewTexture::loadAsset()
{
- mImage = LLViewerTextureManager::getFetchedTexture(mImageID, MIPMAP_TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ mImage = LLViewerTextureManager::getFetchedTexture(mImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
mImageOldBoostLevel = mImage->getBoostLevel();
- mImage->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
+ mImage->setBoostLevel(LLGLTexture::BOOST_PREVIEW);
mImage->forceToSaveRawImage(0) ;
mAssetStatus = PREVIEW_ASSET_LOADING;
mUpdateDimensions = TRUE;
diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h
index cd16bacde2..cd16bacde2 100644..100755
--- a/indra/newview/llpreviewtexture.h
+++ b/indra/newview/llpreviewtexture.h
diff --git a/indra/newview/llproductinforequest.cpp b/indra/newview/llproductinforequest.cpp
index 93bf8b2328..1390000fc5 100644..100755
--- a/indra/newview/llproductinforequest.cpp
+++ b/indra/newview/llproductinforequest.cpp
@@ -43,10 +43,10 @@ public:
}
//If we get back an error (not found, etc...), handle it here
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "LLProductInfoRequest::error("
- << status << ": " << reason << ")" << llendl;
+ llwarns << "LLProductInfoRequest error [status:"
+ << status << ":] " << content << llendl;
}
};
diff --git a/indra/newview/llproductinforequest.h b/indra/newview/llproductinforequest.h
index fe8f7093b0..fe8f7093b0 100644..100755
--- a/indra/newview/llproductinforequest.h
+++ b/indra/newview/llproductinforequest.h
diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp
index 989f0b0e60..989f0b0e60 100644..100755
--- a/indra/newview/llprogressview.cpp
+++ b/indra/newview/llprogressview.cpp
diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h
index 813576b21d..813576b21d 100644..100755
--- a/indra/newview/llprogressview.h
+++ b/indra/newview/llprogressview.h
diff --git a/indra/newview/llrecentpeople.cpp b/indra/newview/llrecentpeople.cpp
index 7689cd1a52..7689cd1a52 100644..100755
--- a/indra/newview/llrecentpeople.cpp
+++ b/indra/newview/llrecentpeople.cpp
diff --git a/indra/newview/llrecentpeople.h b/indra/newview/llrecentpeople.h
index d0d6376867..d0d6376867 100644..100755
--- a/indra/newview/llrecentpeople.h
+++ b/indra/newview/llrecentpeople.h
diff --git a/indra/newview/llregioninfomodel.cpp b/indra/newview/llregioninfomodel.cpp
index 698c4f9bb9..590e246482 100644..100755
--- a/indra/newview/llregioninfomodel.cpp
+++ b/indra/newview/llregioninfomodel.cpp
@@ -119,7 +119,7 @@ void LLRegionInfoModel::sendRegionTerrain(const LLUUID& invoice) const
bool LLRegionInfoModel::getUseFixedSun() const
{
- return mRegionFlags & REGION_FLAGS_SUN_FIXED;
+ return ((mRegionFlags & REGION_FLAGS_SUN_FIXED) != 0);
}
void LLRegionInfoModel::setUseFixedSun(bool fixed)
@@ -141,7 +141,6 @@ void LLRegionInfoModel::update(LLMessageSystem* msg)
msg->getStringFast(_PREHASH_RegionInfo, _PREHASH_SimName, mSimName);
msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_EstateID, mEstateID);
msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_ParentEstateID, mParentEstateID);
- msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_RegionFlags, mRegionFlags);
msg->getU8Fast(_PREHASH_RegionInfo, _PREHASH_SimAccess, mSimAccess);
msg->getU8Fast(_PREHASH_RegionInfo, _PREHASH_MaxAgents, mAgentLimit);
msg->getF32Fast(_PREHASH_RegionInfo, _PREHASH_ObjectBonusFactor, mObjectBonusFactor);
@@ -159,6 +158,17 @@ void LLRegionInfoModel::update(LLMessageSystem* msg)
msg->getF32(_PREHASH_RegionInfo, _PREHASH_SunHour, mSunHour);
LL_DEBUGS("Windlight Sync") << "Got region sun hour: " << mSunHour << LL_ENDL;
+ if (msg->has(_PREHASH_RegionInfo3))
+ {
+ msg->getU64Fast(_PREHASH_RegionInfo3, _PREHASH_RegionFlagsExtended, mRegionFlags);
+ }
+ else
+ {
+ U32 flags = 0;
+ msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_RegionFlags, flags);
+ mRegionFlags = flags;
+ }
+
// the only reasonable way to decide if we actually have any data is to
// check to see if any of these fields have nonzero sizes
if (msg->getSize(_PREHASH_RegionInfo2, _PREHASH_ProductSKU) > 0 ||
diff --git a/indra/newview/llregioninfomodel.h b/indra/newview/llregioninfomodel.h
index 89efd82767..d22a0de463 100644..100755
--- a/indra/newview/llregioninfomodel.h
+++ b/indra/newview/llregioninfomodel.h
@@ -52,7 +52,7 @@ public:
U8 mSimAccess;
U8 mAgentLimit;
- U32 mRegionFlags;
+ U64 mRegionFlags;
U32 mEstateID;
U32 mParentEstateID;
diff --git a/indra/newview/llregionposition.cpp b/indra/newview/llregionposition.cpp
index 32c271b2b8..32c271b2b8 100644..100755
--- a/indra/newview/llregionposition.cpp
+++ b/indra/newview/llregionposition.cpp
diff --git a/indra/newview/llregionposition.h b/indra/newview/llregionposition.h
index 8f72fa2e4e..8f72fa2e4e 100644..100755
--- a/indra/newview/llregionposition.h
+++ b/indra/newview/llregionposition.h
diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp
index 3862dac340..500dec7ee5 100644..100755
--- a/indra/newview/llremoteparcelrequest.cpp
+++ b/indra/newview/llremoteparcelrequest.cpp
@@ -62,10 +62,10 @@ void LLRemoteParcelRequestResponder::result(const LLSD& content)
//If we get back an error (not found, etc...), handle it here
//virtual
-void LLRemoteParcelRequestResponder::error(U32 status, const std::string& reason)
+void LLRemoteParcelRequestResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llinfos << "LLRemoteParcelRequest::error("
- << status << ": " << reason << ")" << llendl;
+ llwarns << "LLRemoteParcelRequest error [status:"
+ << status << "]: " << content << llendl;
// Panel inspecting the information may be closed and destroyed
// before this response is received.
diff --git a/indra/newview/llremoteparcelrequest.h b/indra/newview/llremoteparcelrequest.h
index 74cf1616df..b87056573b 100644..100755
--- a/indra/newview/llremoteparcelrequest.h
+++ b/indra/newview/llremoteparcelrequest.h
@@ -44,7 +44,7 @@ public:
/*virtual*/ void result(const LLSD& content);
//If we get back an error (not found, etc...), handle it here
- /*virtual*/ void error(U32 status, const std::string& reason);
+ /*virtual*/ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
protected:
LLHandle<LLRemoteParcelInfoObserver> mObserverHandle;
diff --git a/indra/newview/llresourcedata.h b/indra/newview/llresourcedata.h
index 28b97ed130..28b97ed130 100644..100755
--- a/indra/newview/llresourcedata.h
+++ b/indra/newview/llresourcedata.h
diff --git a/indra/newview/llrootview.h b/indra/newview/llrootview.h
index 5223a314f3..5223a314f3 100644..100755
--- a/indra/newview/llrootview.h
+++ b/indra/newview/llrootview.h
diff --git a/indra/newview/llsavedsettingsglue.cpp b/indra/newview/llsavedsettingsglue.cpp
index 37b576814d..37b576814d 100644..100755
--- a/indra/newview/llsavedsettingsglue.cpp
+++ b/indra/newview/llsavedsettingsglue.cpp
diff --git a/indra/newview/llsavedsettingsglue.h b/indra/newview/llsavedsettingsglue.h
index e8c6a7dbdb..e8c6a7dbdb 100644..100755
--- a/indra/newview/llsavedsettingsglue.h
+++ b/indra/newview/llsavedsettingsglue.h
diff --git a/indra/newview/llsaveoutfitcombobtn.cpp b/indra/newview/llsaveoutfitcombobtn.cpp
index cbad85cfd3..32295cd96f 100644..100755
--- a/indra/newview/llsaveoutfitcombobtn.cpp
+++ b/indra/newview/llsaveoutfitcombobtn.cpp
@@ -76,8 +76,8 @@ void LLSaveOutfitComboBtn::saveOutfit(bool as_new)
if (panel_outfits_inventory)
{
panel_outfits_inventory->onSave();
- }
-
+ }
+
//*TODO how to get to know when base outfit is updated or new outfit is created?
}
diff --git a/indra/newview/llsaveoutfitcombobtn.h b/indra/newview/llsaveoutfitcombobtn.h
index 3987a99f51..3987a99f51 100644..100755
--- a/indra/newview/llsaveoutfitcombobtn.h
+++ b/indra/newview/llsaveoutfitcombobtn.h
diff --git a/indra/newview/llsceneview.cpp b/indra/newview/llsceneview.cpp
index 09e799e4f7..09e799e4f7 100644..100755
--- a/indra/newview/llsceneview.cpp
+++ b/indra/newview/llsceneview.cpp
diff --git a/indra/newview/llsceneview.h b/indra/newview/llsceneview.h
index 2a3a14bbee..2a3a14bbee 100644..100755
--- a/indra/newview/llsceneview.h
+++ b/indra/newview/llsceneview.h
diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index 154555b261..168a941ec3 100644..100755
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -730,7 +730,6 @@ void LLScreenChannel::showToastsTop()
LLRect toast_rect;
S32 top = channel_rect.mTop;
- S32 toast_margin = 0;
std::vector<ToastElem>::reverse_iterator it;
updateRect();
@@ -753,7 +752,7 @@ void LLScreenChannel::showToastsTop()
}
top = toast->getRect().mBottom - toast->getTopPad();
- toast_margin = gSavedSettings.getS32("ToastGap");
+ gSavedSettings.getS32("ToastGap");
}
LLToast* toast = it->getToast();
diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h
index e5f4807ab7..e5f4807ab7 100644..100755
--- a/indra/newview/llscreenchannel.h
+++ b/indra/newview/llscreenchannel.h
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp
index 0e0da6bdc7..0e0da6bdc7 100644..100755
--- a/indra/newview/llscriptfloater.cpp
+++ b/indra/newview/llscriptfloater.cpp
diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h
index 70451194b3..70451194b3 100644..100755
--- a/indra/newview/llscriptfloater.h
+++ b/indra/newview/llscriptfloater.h
diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp
index 05b82ba967..a7e24b86b1 100644..100755
--- a/indra/newview/llscrollingpanelparam.cpp
+++ b/indra/newview/llscrollingpanelparam.cpp
@@ -267,7 +267,7 @@ void LLScrollingPanelParam::onHintHeldDown( LLVisualParamHint* hint )
&& new_percent < slider->getMaxValue())
{
mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
- mWearable->writeToAvatar();
+ mWearable->writeToAvatar(gAgentAvatarp);
gAgentAvatarp->updateVisualParams();
slider->setValue( weightToPercent( new_weight ) );
@@ -300,7 +300,7 @@ void LLScrollingPanelParam::onHintMinMouseUp( void* userdata )
&& new_percent < slider->getMaxValue())
{
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
- self->mWearable->writeToAvatar();
+ self->mWearable->writeToAvatar(gAgentAvatarp);
slider->setValue( self->weightToPercent( new_weight ) );
}
}
@@ -334,7 +334,7 @@ void LLScrollingPanelParam::onHintMaxMouseUp( void* userdata )
&& new_percent < slider->getMaxValue())
{
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
- self->mWearable->writeToAvatar();
+ self->mWearable->writeToAvatar(gAgentAvatarp);
slider->setValue( self->weightToPercent( new_weight ) );
}
}
diff --git a/indra/newview/llscrollingpanelparam.h b/indra/newview/llscrollingpanelparam.h
index c7a47d5c7a..c7a47d5c7a 100644..100755
--- a/indra/newview/llscrollingpanelparam.h
+++ b/indra/newview/llscrollingpanelparam.h
diff --git a/indra/newview/llscrollingpanelparambase.cpp b/indra/newview/llscrollingpanelparambase.cpp
index 62e3039d2f..8e083ddb6c 100644..100755
--- a/indra/newview/llscrollingpanelparambase.cpp
+++ b/indra/newview/llscrollingpanelparambase.cpp
@@ -94,7 +94,7 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)
if (current_weight != new_weight )
{
self->mWearable->setVisualParamWeight( param->getID(), new_weight, FALSE );
- self->mWearable->writeToAvatar();
+ self->mWearable->writeToAvatar(gAgentAvatarp);
gAgentAvatarp->updateVisualParams();
}
}
diff --git a/indra/newview/llscrollingpanelparambase.h b/indra/newview/llscrollingpanelparambase.h
index 9538826251..9538826251 100644..100755
--- a/indra/newview/llscrollingpanelparambase.h
+++ b/indra/newview/llscrollingpanelparambase.h
diff --git a/indra/newview/llsearchcombobox.cpp b/indra/newview/llsearchcombobox.cpp
index 2824c70582..2824c70582 100644..100755
--- a/indra/newview/llsearchcombobox.cpp
+++ b/indra/newview/llsearchcombobox.cpp
diff --git a/indra/newview/llsearchcombobox.h b/indra/newview/llsearchcombobox.h
index 68f3979532..68f3979532 100644..100755
--- a/indra/newview/llsearchcombobox.h
+++ b/indra/newview/llsearchcombobox.h
diff --git a/indra/newview/llsearchhistory.cpp b/indra/newview/llsearchhistory.cpp
index 7b4bf63740..7b4bf63740 100644..100755
--- a/indra/newview/llsearchhistory.cpp
+++ b/indra/newview/llsearchhistory.cpp
diff --git a/indra/newview/llsearchhistory.h b/indra/newview/llsearchhistory.h
index 3309a8fcac..3309a8fcac 100644..100755
--- a/indra/newview/llsearchhistory.h
+++ b/indra/newview/llsearchhistory.h
diff --git a/indra/newview/llsecapi.cpp b/indra/newview/llsecapi.cpp
index 43bb7b1596..43bb7b1596 100644..100755
--- a/indra/newview/llsecapi.cpp
+++ b/indra/newview/llsecapi.cpp
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index db57848320..db57848320 100644..100755
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 30400a4c6a..928d26646b 100644..100755
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -1239,7 +1239,6 @@ void LLSecAPIBasicHandler::_readProtectedData()
llifstream::binary);
if (!protected_data_stream.fail()) {
- int offset;
U8 salt[STORE_SALT_SIZE];
U8 buffer[BUFFER_READ_SIZE];
U8 decrypted_buffer[BUFFER_READ_SIZE];
@@ -1250,7 +1249,6 @@ void LLSecAPIBasicHandler::_readProtectedData()
// read in the salt and key
protected_data_stream.read((char *)salt, STORE_SALT_SIZE);
- offset = 0;
if (protected_data_stream.gcount() < STORE_SALT_SIZE)
{
throw LLProtectedDataException("Config file too short.");
diff --git a/indra/newview/llsechandler_basic.h b/indra/newview/llsechandler_basic.h
index 1ce5a87c75..1ce5a87c75 100644..100755
--- a/indra/newview/llsechandler_basic.h
+++ b/indra/newview/llsechandler_basic.h
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 343316d30a..4681efd3e5 100644..100755
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -1180,7 +1180,6 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
if (mGridMode == GRID_MODE_LOCAL && mSelectedObjects->getObjectCount())
{
//LLViewerObject* root = getSelectedParentObject(mSelectedObjects->getFirstObject());
- LLBBox bbox = mSavedSelectionBBox;
mGridOrigin = mSavedSelectionBBox.getCenterAgent();
mGridScale = mSavedSelectionBBox.getExtentLocal() * 0.5f;
@@ -1198,7 +1197,6 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull())
{
mGridRotation = first_grid_object->getRenderRotation();
- LLVector3 first_grid_obj_pos = first_grid_object->getRenderPosition();
LLVector4a min_extents(F32_MAX);
LLVector4a max_extents(-F32_MAX);
@@ -1605,7 +1603,7 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
// Texture picker defaults aren't inventory items
// * Don't need to worry about permissions for them
// * Can just apply the texture and be done with it.
- objectp->setTEImage(te, LLViewerTextureManager::getFetchedTexture(mImageID, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
+ objectp->setTEImage(te, LLViewerTextureManager::getFetchedTexture(mImageID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
}
return true;
}
@@ -1771,7 +1769,7 @@ BOOL LLSelectMgr::selectionRevertTextures()
}
else
{
- object->setTEImage(te, LLViewerTextureManager::getFetchedTexture(id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
+ object->setTEImage(te, LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
}
}
}
@@ -5185,7 +5183,7 @@ void LLSelectMgr::updateSilhouettes()
if (!mSilhouetteImagep)
{
- mSilhouetteImagep = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", TRUE, LLViewerTexture::BOOST_UI);
+ mSilhouetteImagep = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI);
}
mHighlightedObjects->cleanupNodes();
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index cc78e35869..cc78e35869 100644..100755
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
diff --git a/indra/newview/llshareavatarhandler.cpp b/indra/newview/llshareavatarhandler.cpp
index 6b4f1d3dc6..6b4f1d3dc6 100644..100755
--- a/indra/newview/llshareavatarhandler.cpp
+++ b/indra/newview/llshareavatarhandler.cpp
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index adb97ac800..74fa5a87bb 100644..100755
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -47,7 +47,7 @@
#include "llviewercontrol.h"
#include "llviewerregion.h"
#include "llvoavatarself.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
static LLRegisterPanelClassWrapper<LLSidepanelAppearance> t_appearance("sidepanel_appearance");
@@ -198,7 +198,7 @@ void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility)
if (is_outfit_edit_visible || is_wearable_edit_visible)
{
- const LLWearable *wearable_ptr = mEditWearable->getWearable();
+ const LLViewerWearable *wearable_ptr = mEditWearable->getWearable();
if (!wearable_ptr)
{
llwarns << "Visibility change to invalid wearable" << llendl;
@@ -206,12 +206,9 @@ void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility)
}
// Disable camera switch is currently just for WT_PHYSICS type since we don't want to freeze the avatar
// when editing its physics.
- const BOOL disable_camera_motion = LLWearableType::getDisableCameraSwitch(wearable_ptr->getType());
- if (!gAgentCamera.cameraCustomizeAvatar() &&
- !disable_camera_motion &&
- gSavedSettings.getBOOL("AppearanceCameraMovement"))
+ if (!gAgentCamera.cameraCustomizeAvatar())
{
- gAgentCamera.changeCameraToCustomizeAvatar();
+ LLVOAvatarSelf::onCustomizeStart(LLWearableType::getDisableCameraSwitch(wearable_ptr->getType()));
}
if (is_wearable_edit_visible)
{
@@ -234,7 +231,7 @@ void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility)
{
gAgentCamera.changeCameraToDefault();
gAgentCamera.resetView();
- }
+ }
}
}
@@ -283,7 +280,7 @@ void LLSidepanelAppearance::onEditAppearanceButtonClicked()
{
if (gAgentWearables.areWearablesLoaded())
{
- gAgentCamera.changeCameraToCustomizeAvatar();
+ LLVOAvatarSelf::onCustomizeStart();
}
}
@@ -329,7 +326,7 @@ void LLSidepanelAppearance::showOutfitEditPanel()
toggleOutfitEditPanel(TRUE);
}
-void LLSidepanelAppearance::showWearableEditPanel(LLWearable *wearable /* = NULL*/, BOOL disable_camera_switch)
+void LLSidepanelAppearance::showWearableEditPanel(LLViewerWearable *wearable /* = NULL*/, BOOL disable_camera_switch)
{
toggleMyOutfitsPanel(FALSE);
toggleOutfitEditPanel(FALSE, TRUE); // don't switch out of edit appearance mode
@@ -371,19 +368,19 @@ void LLSidepanelAppearance::toggleOutfitEditPanel(BOOL visible, BOOL disable_cam
if (visible)
{
mOutfitEdit->onOpen(LLSD());
- if (!disable_camera_switch && gSavedSettings.getBOOL("AppearanceCameraMovement") )
- {
- gAgentCamera.changeCameraToCustomizeAvatar();
- }
+ LLVOAvatarSelf::onCustomizeStart(disable_camera_switch);
}
- else if (!disable_camera_switch && gSavedSettings.getBOOL("AppearanceCameraMovement") )
+ else
{
- gAgentCamera.changeCameraToDefault();
- gAgentCamera.resetView();
+ if (!disable_camera_switch) // if we're just switching between outfit and wearable editing, don't end customization.
+ {
+ LLVOAvatarSelf::onCustomizeEnd(disable_camera_switch);
+ LLAppearanceMgr::getInstance()->updateIsDirty();
+ }
}
}
-void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *wearable, BOOL disable_camera_switch)
+void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLViewerWearable *wearable, BOOL disable_camera_switch)
{
if (!mEditWearable || mEditWearable->getVisible() == visible)
{
@@ -393,7 +390,7 @@ void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *we
if (!wearable)
{
- wearable = gAgentWearables.getWearable(LLWearableType::WT_SHAPE, 0);
+ wearable = gAgentWearables.getViewerWearable(LLWearableType::WT_SHAPE, 0);
}
if (!wearable)
{
@@ -405,10 +402,7 @@ void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *we
if (visible)
{
- if (!disable_camera_switch && gSavedSettings.getBOOL("AppearanceCameraMovement") )
- {
- gAgentCamera.changeCameraToCustomizeAvatar();
- }
+ LLVOAvatarSelf::onCustomizeStart(disable_camera_switch);
mEditWearable->setWearable(wearable, disable_camera_switch);
mEditWearable->onOpen(LLSD()); // currently no-op, just for consistency
}
@@ -416,10 +410,10 @@ void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *we
{
// Save changes if closing.
mEditWearable->saveChanges();
- if (!disable_camera_switch && gSavedSettings.getBOOL("AppearanceCameraMovement") )
+ LLAppearanceMgr::getInstance()->updateIsDirty();
+ if (!disable_camera_switch) // if we're just switching between outfit and wearable editing, don't end customization.
{
- gAgentCamera.changeCameraToDefault();
- gAgentCamera.resetView();
+ LLVOAvatarSelf::onCustomizeEnd(disable_camera_switch);
}
}
}
@@ -453,13 +447,12 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
}
//static
-void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data, BOOL disable_camera_switch)
+void LLSidepanelAppearance::editWearable(LLViewerWearable *wearable, LLView *data, BOOL disable_camera_switch)
{
LLFloaterSidePanelContainer::showPanel("appearance", LLSD());
LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(data);
if (panel)
{
- panel->showOutfitsInventoryPanel();
panel->showWearableEditPanel(wearable, disable_camera_switch);
}
}
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 6dd3520266..762f557a80 100644..100755
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -36,7 +36,7 @@
class LLFilterEditor;
class LLCurrentlyWornFetchObserver;
class LLPanelEditWearable;
-class LLWearable;
+class LLViewerWearable;
class LLPanelOutfitsInventory;
class LLSidepanelAppearance : public LLPanel
@@ -47,11 +47,11 @@ public:
virtual ~LLSidepanelAppearance();
/*virtual*/ BOOL postBuild();
- /*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void onOpen(const LLSD& key);
void refreshCurrentOutfitName(const std::string& name = "");
- static void editWearable(LLWearable *wearable, LLView *data, BOOL disable_camera_switch = FALSE);
+ static void editWearable(LLViewerWearable *wearable, LLView *data, BOOL disable_camera_switch = FALSE);
void fetchInventory();
void inventoryFetched();
@@ -59,11 +59,12 @@ public:
void showOutfitsInventoryPanel();
void showOutfitEditPanel();
- void showWearableEditPanel(LLWearable *wearable = NULL, BOOL disable_camera_switch = FALSE);
+ void showWearableEditPanel(LLViewerWearable *wearable = NULL, BOOL disable_camera_switch = FALSE);
void setWearablesLoading(bool val);
void showDefaultSubpart();
void updateScrollingPanelList();
void updateToVisibility( const LLSD& new_visibility );
+ LLPanelEditWearable* getWearable(){ return mEditWearable; }
private:
void onFilterEdit(const std::string& search_string);
@@ -74,7 +75,7 @@ private:
void toggleMyOutfitsPanel(BOOL visible);
void toggleOutfitEditPanel(BOOL visible, BOOL disable_camera_switch = FALSE);
- void toggleWearableEditPanel(BOOL visible, LLWearable* wearable = NULL, BOOL disable_camera_switch = FALSE);
+ void toggleWearableEditPanel(BOOL visible, LLViewerWearable* wearable = NULL, BOOL disable_camera_switch = FALSE);
LLFilterEditor* mFilterEditor;
LLPanelOutfitsInventory* mPanelOutfitsInventory;
diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp
index 8915bb2fef..8915bb2fef 100644..100755
--- a/indra/newview/llsidepanelinventory.cpp
+++ b/indra/newview/llsidepanelinventory.cpp
diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h
index e8b2808d4f..e8b2808d4f 100644..100755
--- a/indra/newview/llsidepanelinventory.h
+++ b/indra/newview/llsidepanelinventory.h
diff --git a/indra/newview/llsidepanelinventorysubpanel.cpp b/indra/newview/llsidepanelinventorysubpanel.cpp
index 2918bb388a..2918bb388a 100644..100755
--- a/indra/newview/llsidepanelinventorysubpanel.cpp
+++ b/indra/newview/llsidepanelinventorysubpanel.cpp
diff --git a/indra/newview/llsidepanelinventorysubpanel.h b/indra/newview/llsidepanelinventorysubpanel.h
index b5cf3aaf17..b5cf3aaf17 100644..100755
--- a/indra/newview/llsidepanelinventorysubpanel.h
+++ b/indra/newview/llsidepanelinventorysubpanel.h
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 92c2863ffd..92c2863ffd 100644..100755
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h
index 12aaca923e..12aaca923e 100644..100755
--- a/indra/newview/llsidepaneliteminfo.h
+++ b/indra/newview/llsidepaneliteminfo.h
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 5532bdc71a..ad7c939728 100644..100755
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -370,10 +370,8 @@ void LLSidepanelTaskInfo::refresh()
// Update creator text field
getChildView("Creator:")->setEnabled(TRUE);
- BOOL creators_identical;
std::string creator_name;
- creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID,
- creator_name);
+ LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_name);
getChild<LLUICtrl>("Creator Name")->setValue(creator_name);
getChildView("Creator Name")->setEnabled(TRUE);
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index 05edcda5ed..05edcda5ed 100644..100755
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
diff --git a/indra/newview/llsidetraypanelcontainer.cpp b/indra/newview/llsidetraypanelcontainer.cpp
index e340333c2c..e340333c2c 100644..100755
--- a/indra/newview/llsidetraypanelcontainer.cpp
+++ b/indra/newview/llsidetraypanelcontainer.cpp
diff --git a/indra/newview/llsidetraypanelcontainer.h b/indra/newview/llsidetraypanelcontainer.h
index 93a85ed374..93a85ed374 100644..100755
--- a/indra/newview/llsidetraypanelcontainer.h
+++ b/indra/newview/llsidetraypanelcontainer.h
diff --git a/indra/newview/llsimplestat.h b/indra/newview/llsimplestat.h
index 9d7780c4f9..9d7780c4f9 100644..100755
--- a/indra/newview/llsimplestat.h
+++ b/indra/newview/llsimplestat.h
diff --git a/indra/newview/llsky.cpp b/indra/newview/llsky.cpp
index a961f0e3b4..a961f0e3b4 100644..100755
--- a/indra/newview/llsky.cpp
+++ b/indra/newview/llsky.cpp
diff --git a/indra/newview/llsky.h b/indra/newview/llsky.h
index 7b98c97840..7b98c97840 100644..100755
--- a/indra/newview/llsky.h
+++ b/indra/newview/llsky.h
diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp
index 3a82233320..3a82233320 100644..100755
--- a/indra/newview/llslurl.cpp
+++ b/indra/newview/llslurl.cpp
diff --git a/indra/newview/llslurl.h b/indra/newview/llslurl.h
index b86cf7949b..b86cf7949b 100644..100755
--- a/indra/newview/llslurl.h
+++ b/indra/newview/llslurl.h
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 3ed6e24498..f85e855fd3 100644..100755
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -3544,9 +3544,9 @@ void renderTexturePriority(LLDrawable* drawable)
drawBox(center, size);
/*S32 boost = imagep->getBoostLevel();
- if (boost>LLViewerTexture::BOOST_NONE)
+ if (boost>LLGLTexture::BOOST_NONE)
{
- F32 t = (F32) boost / (F32) (LLViewerTexture::BOOST_MAX_LEVEL-1);
+ F32 t = (F32) boost / (F32) (LLGLTexture::BOOST_MAX_LEVEL-1);
LLVector4 col = lerp(boost_cold, boost_hot, t);
LLGLEnable blend_on(GL_BLEND);
gGL.blendFunc(GL_SRC_ALPHA, GL_ONE);
@@ -3998,7 +3998,7 @@ void renderAgentTarget(LLVOAvatar* avatar)
{
renderCrossHairs(avatar->getPositionAgent(), 0.2f, LLColor4(1, 0, 0, 0.8f));
renderCrossHairs(avatar->mDrawable->getPositionAgent(), 0.2f, LLColor4(0, 1, 0, 0.8f));
- renderCrossHairs(avatar->mRoot.getWorldPosition(), 0.2f, LLColor4(1, 1, 1, 0.8f));
+ renderCrossHairs(avatar->mRoot->getWorldPosition(), 0.2f, LLColor4(1, 1, 1, 0.8f));
renderCrossHairs(avatar->mPelvisp->getWorldPosition(), 0.2f, LLColor4(0, 0, 1, 0.8f));
}
}
@@ -4062,9 +4062,6 @@ public:
return;
}
- LLVector4a nodeCenter = group->mBounds[0];
- LLVector4a octCenter = group->mOctreeNode->getCenter();
-
group->rebuildGeom();
group->rebuildMesh();
@@ -4539,9 +4536,6 @@ public:
virtual bool check(LLDrawable* drawable)
{
- LLVector3 local_start = mStart;
- LLVector3 local_end = mEnd;
-
if (!drawable || !gPipeline.hasRenderType(drawable->getRenderType()) || !drawable->isVisible())
{
return false;
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index b1706d9d35..b1706d9d35 100644..100755
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index 8783d99b11..a4582071e8 100644..100755
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -853,7 +853,10 @@ void LLIMSpeakerMgr::updateSpeakers(const LLSD& update)
}
}
}
-
+/*prep#
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+ llwarns << "ModerationResponder error [status:" << status << "]: " << content << llendl;
+ */
void LLIMSpeakerMgr::toggleAllowTextChat(const LLUUID& speaker_id)
{
LLPointer<LLSpeaker> speakerp = findSpeaker(speaker_id);
diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h
index e953dd0e1a..e953dd0e1a 100644..100755
--- a/indra/newview/llspeakers.h
+++ b/indra/newview/llspeakers.h
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index 07e9371124..07e9371124 100644..100755
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
diff --git a/indra/newview/llspeakingindicatormanager.h b/indra/newview/llspeakingindicatormanager.h
index e5afcd1cb7..e5afcd1cb7 100644..100755
--- a/indra/newview/llspeakingindicatormanager.h
+++ b/indra/newview/llspeakingindicatormanager.h
diff --git a/indra/newview/llsplitbutton.cpp b/indra/newview/llsplitbutton.cpp
index 790305103d..790305103d 100644..100755
--- a/indra/newview/llsplitbutton.cpp
+++ b/indra/newview/llsplitbutton.cpp
diff --git a/indra/newview/llsplitbutton.h b/indra/newview/llsplitbutton.h
index 4f20c8b379..4f20c8b379 100644..100755
--- a/indra/newview/llsplitbutton.h
+++ b/indra/newview/llsplitbutton.h
diff --git a/indra/newview/llsprite.cpp b/indra/newview/llsprite.cpp
index c3eb70f850..c3eb70f850 100644..100755
--- a/indra/newview/llsprite.cpp
+++ b/indra/newview/llsprite.cpp
diff --git a/indra/newview/llsprite.h b/indra/newview/llsprite.h
index d00b8ef695..d00b8ef695 100644..100755
--- a/indra/newview/llsprite.h
+++ b/indra/newview/llsprite.h
diff --git a/indra/newview/llsrv.cpp b/indra/newview/llsrv.cpp
index 567c2a0158..567c2a0158 100644..100755
--- a/indra/newview/llsrv.cpp
+++ b/indra/newview/llsrv.cpp
diff --git a/indra/newview/llsrv.h b/indra/newview/llsrv.h
index db5543f772..db5543f772 100644..100755
--- a/indra/newview/llsrv.h
+++ b/indra/newview/llsrv.h
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 37e6ded986..82596a86b9 100644..100755
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -26,6 +26,7 @@
#include "llviewerprecompiledheaders.h"
+#include "llappviewer.h"
#include "llstartup.h"
#if LL_WINDOWS
@@ -37,8 +38,8 @@
#include "llviewermedia_streamingaudio.h"
#include "llaudioengine.h"
-#ifdef LL_FMOD
-# include "llaudioengine_fmod.h"
+#ifdef LL_FMODEX
+# include "llaudioengine_fmodex.h"
#endif
#ifdef LL_OPENAL
@@ -316,7 +317,6 @@ bool idle_startup()
{
const F32 PRECACHING_DELAY = gSavedSettings.getF32("PrecachingDelay");
static LLTimer timeout;
- static S32 timeout_count = 0;
static LLTimer login_time;
@@ -332,7 +332,6 @@ bool idle_startup()
// last location by default
static S32 agent_location_id = START_LOCATION_ID_LAST;
- static S32 location_which = START_LOCATION_ID_LAST;
static bool show_connect_box = true;
@@ -625,32 +624,32 @@ bool idle_startup()
{
gAudiop = NULL;
-#ifdef LL_OPENAL
+#ifdef LL_FMODEX
if (!gAudiop
#if !LL_WINDOWS
- && NULL == getenv("LL_BAD_OPENAL_DRIVER")
+ && NULL == getenv("LL_BAD_FMODEX_DRIVER")
#endif // !LL_WINDOWS
)
{
- gAudiop = (LLAudioEngine *) new LLAudioEngine_OpenAL();
+ gAudiop = (LLAudioEngine *) new LLAudioEngine_FMODEX(gSavedSettings.getBOOL("FMODExProfilerEnable"));
}
#endif
-#ifdef LL_FMOD
+#ifdef LL_OPENAL
if (!gAudiop
#if !LL_WINDOWS
- && NULL == getenv("LL_BAD_FMOD_DRIVER")
+ && NULL == getenv("LL_BAD_OPENAL_DRIVER")
#endif // !LL_WINDOWS
)
{
- gAudiop = (LLAudioEngine *) new LLAudioEngine_FMOD();
+ gAudiop = (LLAudioEngine *) new LLAudioEngine_OpenAL();
}
#endif
-
+
if (gAudiop)
{
#if LL_WINDOWS
- // FMOD on Windows needs the window handle to stop playing audio
+ // FMOD Ex on Windows needs the window handle to stop playing audio
// when window is minimized. JC
void* window_handle = (HWND)gViewerWindow->getPlatformWindow();
#else
@@ -744,8 +743,6 @@ bool idle_startup()
gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW);
- timeout_count = 0;
-
// Login screen needs menus for preferences, but we can enter
// this startup phase more than once.
if (gLoginMenuBarView == NULL)
@@ -772,10 +769,6 @@ bool idle_startup()
gUserCredential = gLoginHandler.initializeLoginInfo();
display_startup();
}
- if (gHeadlessClient)
- {
- LL_WARNS("AppInit") << "Waiting at connection box in headless client. Did you mean to add autologin params?" << LL_ENDL;
- }
// Make sure the process dialog doesn't hide things
display_startup();
gViewerWindow->setShowProgress(FALSE);
@@ -993,15 +986,12 @@ bool idle_startup()
{
case LLSLURL::LOCATION:
agent_location_id = START_LOCATION_ID_URL;
- location_which = START_LOCATION_ID_LAST;
break;
case LLSLURL::LAST_LOCATION:
agent_location_id = START_LOCATION_ID_LAST;
- location_which = START_LOCATION_ID_LAST;
break;
default:
agent_location_id = START_LOCATION_ID_HOME;
- location_which = START_LOCATION_ID_HOME;
break;
}
@@ -1043,6 +1033,7 @@ bool idle_startup()
login->setSerialNumber(LLAppViewer::instance()->getSerialNumber());
login->setLastExecEvent(gLastExecEvent);
+ login->setLastExecDuration(gLastExecDuration);
login->setUpdaterLauncher(boost::bind(&LLAppViewer::launchUpdater, LLAppViewer::instance()));
// This call to LLLoginInstance::connect() starts the
@@ -1254,6 +1245,9 @@ bool idle_startup()
LLPostProcess::initClass();
display_startup();
+ LLAvatarAppearance::initClass();
+ display_startup();
+
LLViewerObject::initVOClasses();
display_startup();
@@ -2588,12 +2582,17 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
}
else
{
+ // FIXME SH-3860 - this creates a race condition, where COF
+ // changes (base outfit link added) after appearance update
+ // request has been submitted.
sWearablesLoadedCon = gAgentWearables.addLoadedCallback(LLStartUp::saveInitialOutfit);
bool do_copy = true;
bool do_append = false;
LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
- LLAppearanceMgr::instance().wearInventoryCategory(cat, do_copy, do_append);
+ // Need to fetch cof contents before we can wear.
+ callAfterCategoryFetch(LLAppearanceMgr::instance().getCOF(),
+ boost::bind(&LLAppearanceMgr::wearInventoryCategory, LLAppearanceMgr::getInstance(), cat, do_copy, do_append));
lldebugs << "initial outfit category id: " << cat_id << llendl;
}
@@ -3455,6 +3454,14 @@ bool process_login_success_response()
}
+ // set the location of the Agent Appearance service, from which we can request
+ // avatar baked textures if they are supported by the current region
+ std::string agent_appearance_url = response["agent_appearance_service"];
+ if (!agent_appearance_url.empty())
+ {
+ LLAppearanceMgr::instance().setAppearanceServiceURL(agent_appearance_url);
+ }
+
// Set the location of the snapshot sharing config endpoint
std::string snapshot_config_url = response["snapshot_config_url"];
if(!snapshot_config_url.empty())
@@ -3499,13 +3506,6 @@ bool process_login_success_response()
void transition_back_to_login_panel(const std::string& emsg)
{
- if (gHeadlessClient && gSavedSettings.getBOOL("AutoLogin"))
- {
- LL_WARNS("AppInit") << "Failed to login!" << LL_ENDL;
- LL_WARNS("AppInit") << emsg << LL_ENDL;
- exit(0);
- }
-
// Bounce back to the login screen.
reset_login(); // calls LLStartUp::setStartupState( STATE_LOGIN_SHOW );
gSavedSettings.setBOOL("AutoLogin", FALSE);
diff --git a/indra/newview/llstartup.h b/indra/newview/llstartup.h
index 760e38890b..760e38890b 100644..100755
--- a/indra/newview/llstartup.h
+++ b/indra/newview/llstartup.h
diff --git a/indra/newview/llstartuplistener.cpp b/indra/newview/llstartuplistener.cpp
index d9a21f908e..d9a21f908e 100644..100755
--- a/indra/newview/llstartuplistener.cpp
+++ b/indra/newview/llstartuplistener.cpp
diff --git a/indra/newview/llstartuplistener.h b/indra/newview/llstartuplistener.h
index a35e11f6eb..a35e11f6eb 100644..100755
--- a/indra/newview/llstartuplistener.h
+++ b/indra/newview/llstartuplistener.h
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index ff69c6e9fd..ff69c6e9fd 100644..100755
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index 9d28e6c2bc..9d28e6c2bc 100644..100755
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp
index 43fe37ac77..43fe37ac77 100644..100755
--- a/indra/newview/llstylemap.cpp
+++ b/indra/newview/llstylemap.cpp
diff --git a/indra/newview/llstylemap.h b/indra/newview/llstylemap.h
index 8aa0af535c..8aa0af535c 100644..100755
--- a/indra/newview/llstylemap.h
+++ b/indra/newview/llstylemap.h
diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp
index ec11a23eb8..93c7f54101 100644..100755
--- a/indra/newview/llsurface.cpp
+++ b/indra/newview/llsurface.cpp
@@ -1246,8 +1246,6 @@ BOOL LLSurface::generateWaterTexture(const F32 x, const F32 y,
y_end = tex_width;
}
- LLVector3d origin_global = from_region_handle(getRegion()->getHandle());
-
// OK, for now, just have the composition value equal the height at the point.
LLVector3 location;
LLColor4U coloru;
diff --git a/indra/newview/llsurface.h b/indra/newview/llsurface.h
index 9d24bf8771..9d24bf8771 100644..100755
--- a/indra/newview/llsurface.h
+++ b/indra/newview/llsurface.h
diff --git a/indra/newview/llsurfacepatch.cpp b/indra/newview/llsurfacepatch.cpp
index a9ba2bce9c..a9ba2bce9c 100644..100755
--- a/indra/newview/llsurfacepatch.cpp
+++ b/indra/newview/llsurfacepatch.cpp
diff --git a/indra/newview/llsurfacepatch.h b/indra/newview/llsurfacepatch.h
index 8c8f501dce..8c8f501dce 100644..100755
--- a/indra/newview/llsurfacepatch.h
+++ b/indra/newview/llsurfacepatch.h
diff --git a/indra/newview/llsyswellitem.cpp b/indra/newview/llsyswellitem.cpp
index 057d80457c..057d80457c 100644..100755
--- a/indra/newview/llsyswellitem.cpp
+++ b/indra/newview/llsyswellitem.cpp
diff --git a/indra/newview/llsyswellitem.h b/indra/newview/llsyswellitem.h
index d961708a01..d961708a01 100644..100755
--- a/indra/newview/llsyswellitem.h
+++ b/indra/newview/llsyswellitem.h
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index e92bd766ca..e92bd766ca 100644..100755
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h
index cc5c057d8b..cc5c057d8b 100644..100755
--- a/indra/newview/llsyswellwindow.h
+++ b/indra/newview/llsyswellwindow.h
diff --git a/indra/newview/lltable.h b/indra/newview/lltable.h
index d75ef84ae4..d75ef84ae4 100644..100755
--- a/indra/newview/lltable.h
+++ b/indra/newview/lltable.h
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index 50a088b799..50a088b799 100644..100755
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index e9c29c39bf..e9c29c39bf 100644..100755
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
diff --git a/indra/newview/llteleporthistorystorage.cpp b/indra/newview/llteleporthistorystorage.cpp
index af5a047da4..af5a047da4 100644..100755
--- a/indra/newview/llteleporthistorystorage.cpp
+++ b/indra/newview/llteleporthistorystorage.cpp
diff --git a/indra/newview/llteleporthistorystorage.h b/indra/newview/llteleporthistorystorage.h
index cf4c85a991..cf4c85a991 100644..100755
--- a/indra/newview/llteleporthistorystorage.h
+++ b/indra/newview/llteleporthistorystorage.h
diff --git a/indra/newview/lltexglobalcolor.cpp b/indra/newview/lltexglobalcolor.cpp
deleted file mode 100644
index ebe5ccd6c0..0000000000
--- a/indra/newview/lltexglobalcolor.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * @file lltexlayerglobalcolor.cpp
- * @brief Color for texture layers.
- *
- * $LicenseInfo:firstyear=2008&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "llagent.h"
-#include "lltexlayer.h"
-#include "llvoavatar.h"
-#include "llwearable.h"
-#include "lltexglobalcolor.h"
-
-//-----------------------------------------------------------------------------
-// LLTexGlobalColor
-//-----------------------------------------------------------------------------
-
-LLTexGlobalColor::LLTexGlobalColor(LLVOAvatar* avatar)
- :
- mAvatar(avatar),
- mInfo(NULL)
-{
-}
-
-LLTexGlobalColor::~LLTexGlobalColor()
-{
- // mParamColorList are LLViewerVisualParam's and get deleted with ~LLCharacter()
- //std::for_each(mParamColorList.begin(), mParamColorList.end(), DeletePointer());
-}
-
-BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
-{
- llassert(mInfo == NULL);
- mInfo = info;
- //mID = info->mID; // No ID
-
- mParamGlobalColorList.reserve(mInfo->mParamColorInfoList.size());
- for (param_color_info_list_t::iterator iter = mInfo->mParamColorInfoList.begin();
- iter != mInfo->mParamColorInfoList.end();
- iter++)
- {
- LLTexParamGlobalColor* param_color = new LLTexParamGlobalColor(this);
- if (!param_color->setInfo(*iter, TRUE))
- {
- mInfo = NULL;
- return FALSE;
- }
- mParamGlobalColorList.push_back(param_color);
- }
-
- return TRUE;
-}
-
-LLColor4 LLTexGlobalColor::getColor() const
-{
- // Sum of color params
- if (mParamGlobalColorList.empty())
- return LLColor4(1.f, 1.f, 1.f, 1.f);
-
- LLColor4 net_color(0.f, 0.f, 0.f, 0.f);
- LLTexLayer::calculateTexLayerColor(mParamGlobalColorList, net_color);
- return net_color;
-}
-
-const std::string& LLTexGlobalColor::getName() const
-{
- return mInfo->mName;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexParamGlobalColor
-//-----------------------------------------------------------------------------
-LLTexParamGlobalColor::LLTexParamGlobalColor(LLTexGlobalColor* tex_global_color) :
- LLTexLayerParamColor(tex_global_color->getAvatar()),
- mTexGlobalColor(tex_global_color)
-{
-}
-
-/*virtual*/ LLViewerVisualParam* LLTexParamGlobalColor::cloneParam(LLWearable* wearable) const
-{
- LLTexParamGlobalColor *new_param = new LLTexParamGlobalColor(mTexGlobalColor);
- *new_param = *this;
- return new_param;
-}
-
-void LLTexParamGlobalColor::onGlobalColorChanged(bool upload_bake)
-{
- mAvatar->onGlobalColorChanged(mTexGlobalColor, upload_bake);
-}
-
-//-----------------------------------------------------------------------------
-// LLTexGlobalColorInfo
-//-----------------------------------------------------------------------------
-
-LLTexGlobalColorInfo::LLTexGlobalColorInfo()
-{
-}
-
-
-LLTexGlobalColorInfo::~LLTexGlobalColorInfo()
-{
- for_each(mParamColorInfoList.begin(), mParamColorInfoList.end(), DeletePointer());
-}
-
-BOOL LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
-{
- // name attribute
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if (!node->getFastAttributeString(name_string, mName))
- {
- llwarns << "<global_color> element is missing name attribute." << llendl;
- return FALSE;
- }
- // <param> sub-element
- for (LLXmlTreeNode* child = node->getChildByName("param");
- child;
- child = node->getNextNamedChild())
- {
- if (child->getChildByName("param_color"))
- {
- // <param><param_color/></param>
- LLTexLayerParamColorInfo* info = new LLTexLayerParamColorInfo();
- if (!info->parseXml(child))
- {
- delete info;
- return FALSE;
- }
- mParamColorInfoList.push_back(info);
- }
- }
- return TRUE;
-}
diff --git a/indra/newview/lltexglobalcolor.h b/indra/newview/lltexglobalcolor.h
deleted file mode 100644
index ae04798445..0000000000
--- a/indra/newview/lltexglobalcolor.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * @file lltexglobalcolor.h
- * @brief This is global texture color info used by llvoavatar.
- *
- * $LicenseInfo:firstyear=2008&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLTEXGLOBALCOLOR_H
-#define LL_LLTEXGLOBALCOLOR_H
-
-#include "lltexlayer.h"
-#include "lltexlayerparams.h"
-
-class LLVOAvatar;
-class LLWearable;
-class LLTexGlobalColorInfo;
-
-class LLTexGlobalColor
-{
-public:
- LLTexGlobalColor( LLVOAvatar* avatar );
- ~LLTexGlobalColor();
-
- LLTexGlobalColorInfo* getInfo() const { return mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexGlobalColorInfo *info);
-
- LLVOAvatar* getAvatar() const { return mAvatar; }
- LLColor4 getColor() const;
- const std::string& getName() const;
-
-private:
- param_color_list_t mParamGlobalColorList;
- LLVOAvatar* mAvatar; // just backlink, don't LLPointer
- LLTexGlobalColorInfo *mInfo;
-};
-
-// Used by llvoavatar to determine skin/eye/hair color.
-class LLTexGlobalColorInfo
-{
- friend class LLTexGlobalColor;
-public:
- LLTexGlobalColorInfo();
- ~LLTexGlobalColorInfo();
-
- BOOL parseXml(LLXmlTreeNode* node);
-
-private:
- param_color_info_list_t mParamColorInfoList;
- std::string mName;
-};
-
-class LLTexParamGlobalColor : public LLTexLayerParamColor
-{
-public:
- LLTexParamGlobalColor(LLTexGlobalColor *tex_color);
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
-protected:
- /*virtual*/ void onGlobalColorChanged(bool upload_bake);
-private:
- LLTexGlobalColor* mTexGlobalColor;
-};
-
-#endif
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
deleted file mode 100644
index ad09af6594..0000000000
--- a/indra/newview/lltexlayer.cpp
+++ /dev/null
@@ -1,2514 +0,0 @@
-/**
- * @file lltexlayer.cpp
- * @brief A texture layer. Used for avatars.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "lltexlayer.h"
-
-#include "llagent.h"
-#include "llimagej2c.h"
-#include "llimagetga.h"
-#include "llnotificationsutil.h"
-#include "llvfile.h"
-#include "llvfs.h"
-#include "llviewerstats.h"
-#include "llviewerregion.h"
-#include "llvoavatar.h"
-#include "llvoavatarself.h"
-#include "pipeline.h"
-#include "llassetuploadresponders.h"
-#include "lltexlayerparams.h"
-#include "llui.h"
-#include "llagentwearables.h"
-#include "llwearable.h"
-#include "llviewercontrol.h"
-#include "llviewershadermgr.h"
-#include "llviewervisualparam.h"
-
-//#include "../tools/imdebug/imdebug.h"
-
-using namespace LLVOAvatarDefines;
-
-static const S32 BAKE_UPLOAD_ATTEMPTS = 7;
-static const F32 BAKE_UPLOAD_RETRY_DELAY = 2.f; // actual delay grows by power of 2 each attempt
-
-// runway consolidate
-extern std::string self_av_string();
-
-class LLTexLayerInfo
-{
- friend class LLTexLayer;
- friend class LLTexLayerTemplate;
- friend class LLTexLayerInterface;
-public:
- LLTexLayerInfo();
- ~LLTexLayerInfo();
-
- BOOL parseXml(LLXmlTreeNode* node);
- BOOL createVisualParams(LLVOAvatar *avatar);
- BOOL isUserSettable() { return mLocalTexture != -1; }
- S32 getLocalTexture() const { return mLocalTexture; }
- BOOL getOnlyAlpha() const { return mUseLocalTextureAlphaOnly; }
- std::string getName() const { return mName; }
-
-private:
- std::string mName;
-
- BOOL mWriteAllChannels; // Don't use masking. Just write RGBA into buffer,
- LLTexLayerInterface::ERenderPass mRenderPass;
-
- std::string mGlobalColor;
- LLColor4 mFixedColor;
-
- S32 mLocalTexture;
- std::string mStaticImageFileName;
- BOOL mStaticImageIsMask;
- BOOL mUseLocalTextureAlphaOnly; // Ignore RGB channels from the input texture. Use alpha as a mask
- BOOL mIsVisibilityMask;
-
- typedef std::vector< std::pair< std::string,BOOL > > morph_name_list_t;
- morph_name_list_t mMorphNameList;
- param_color_info_list_t mParamColorInfoList;
- param_alpha_info_list_t mParamAlphaInfoList;
-};
-
-//-----------------------------------------------------------------------------
-// LLBakedUploadData()
-//-----------------------------------------------------------------------------
-LLBakedUploadData::LLBakedUploadData(const LLVOAvatarSelf* avatar,
- LLTexLayerSet* layerset,
- const LLUUID& id,
- bool highest_res) :
- mAvatar(avatar),
- mTexLayerSet(layerset),
- mID(id),
- mStartTime(LLFrameTimer::getTotalTime()), // Record starting time
- mIsHighestRes(highest_res)
-{
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerSetBuffer
-// The composite image that a LLTexLayerSet writes to. Each LLTexLayerSet has one.
-//-----------------------------------------------------------------------------
-
-// static
-S32 LLTexLayerSetBuffer::sGLByteCount = 0;
-
-LLTexLayerSetBuffer::LLTexLayerSetBuffer(LLTexLayerSet* const owner,
- S32 width, S32 height) :
- // ORDER_LAST => must render these after the hints are created.
- LLViewerDynamicTexture( width, height, 4, LLViewerDynamicTexture::ORDER_LAST, TRUE ),
- mUploadPending(FALSE), // Not used for any logic here, just to sync sending of updates
- mNeedsUpload(FALSE),
- mNumLowresUploads(0),
- mUploadFailCount(0),
- mNeedsUpdate(TRUE),
- mNumLowresUpdates(0),
- mTexLayerSet(owner)
-{
- LLTexLayerSetBuffer::sGLByteCount += getSize();
- mNeedsUploadTimer.start();
- mNeedsUpdateTimer.start();
-}
-
-LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
-{
- LLTexLayerSetBuffer::sGLByteCount -= getSize();
- destroyGLTexture();
- for( S32 order = 0; order < ORDER_COUNT; order++ )
- {
- LLViewerDynamicTexture::sInstances[order].erase(this); // will fail in all but one case.
- }
-}
-
-//virtual
-S8 LLTexLayerSetBuffer::getType() const
-{
- return LLViewerDynamicTexture::LL_TEX_LAYER_SET_BUFFER ;
-}
-
-//virtual
-void LLTexLayerSetBuffer::restoreGLTexture()
-{
- LLViewerDynamicTexture::restoreGLTexture() ;
-}
-
-//virtual
-void LLTexLayerSetBuffer::destroyGLTexture()
-{
- LLViewerDynamicTexture::destroyGLTexture() ;
-}
-
-// static
-void LLTexLayerSetBuffer::dumpTotalByteCount()
-{
- llinfos << "Composite System GL Buffers: " << (LLTexLayerSetBuffer::sGLByteCount/1024) << "KB" << llendl;
-}
-
-void LLTexLayerSetBuffer::requestUpdate()
-{
- restartUpdateTimer();
- mNeedsUpdate = TRUE;
- mNumLowresUpdates = 0;
- // If we're in the middle of uploading a baked texture, we don't care about it any more.
- // When it's downloaded, ignore it.
- mUploadID.setNull();
-}
-
-void LLTexLayerSetBuffer::requestUpload()
-{
- conditionalRestartUploadTimer();
- mNeedsUpload = TRUE;
- mNumLowresUploads = 0;
- mUploadPending = TRUE;
-}
-
-void LLTexLayerSetBuffer::conditionalRestartUploadTimer()
-{
- // If we requested a new upload but haven't even uploaded
- // a low res version of our last upload request, then
- // keep the timer ticking instead of resetting it.
- if (mNeedsUpload && (mNumLowresUploads == 0))
- {
- mNeedsUploadTimer.unpause();
- }
- else
- {
- mNeedsUploadTimer.reset();
- mNeedsUploadTimer.start();
- }
-}
-
-void LLTexLayerSetBuffer::restartUpdateTimer()
-{
- mNeedsUpdateTimer.reset();
- mNeedsUpdateTimer.start();
-}
-
-void LLTexLayerSetBuffer::cancelUpload()
-{
- mNeedsUpload = FALSE;
- mUploadPending = FALSE;
- mNeedsUploadTimer.pause();
- mUploadRetryTimer.reset();
-}
-
-void LLTexLayerSetBuffer::pushProjection() const
-{
- gGL.matrixMode(LLRender::MM_PROJECTION);
- gGL.pushMatrix();
- gGL.loadIdentity();
- gGL.ortho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
-
- gGL.matrixMode(LLRender::MM_MODELVIEW);
- gGL.pushMatrix();
- gGL.loadIdentity();
-}
-
-void LLTexLayerSetBuffer::popProjection() const
-{
- gGL.matrixMode(LLRender::MM_PROJECTION);
- gGL.popMatrix();
-
- gGL.matrixMode(LLRender::MM_MODELVIEW);
- gGL.popMatrix();
-}
-
-BOOL LLTexLayerSetBuffer::needsRender()
-{
- llassert(mTexLayerSet->getAvatar() == gAgentAvatarp);
- if (!isAgentAvatarValid()) return FALSE;
-
- const BOOL upload_now = mNeedsUpload && isReadyToUpload();
- const BOOL update_now = mNeedsUpdate && isReadyToUpdate();
-
- // Don't render if we don't want to (or aren't ready to) upload or update.
- if (!(update_now || upload_now))
- {
- return FALSE;
- }
-
- // Don't render if we're animating our appearance.
- if (gAgentAvatarp->getIsAppearanceAnimating())
- {
- return FALSE;
- }
-
- // Don't render if we are trying to create a shirt texture but aren't wearing a skirt.
- if (gAgentAvatarp->getBakedTE(mTexLayerSet) == LLVOAvatarDefines::TEX_SKIRT_BAKED &&
- !gAgentAvatarp->isWearingWearableType(LLWearableType::WT_SKIRT))
- {
- cancelUpload();
- return FALSE;
- }
-
- // Render if we have at least minimal level of detail for each local texture.
- return mTexLayerSet->isLocalTextureDataAvailable();
-}
-
-void LLTexLayerSetBuffer::preRender(BOOL clear_depth)
-{
- // Set up an ortho projection
- pushProjection();
-
- // keep depth buffer, we don't need to clear it
- LLViewerDynamicTexture::preRender(FALSE);
-}
-
-void LLTexLayerSetBuffer::postRender(BOOL success)
-{
- popProjection();
-
- LLViewerDynamicTexture::postRender(success);
-}
-
-BOOL LLTexLayerSetBuffer::render()
-{
- // Default color mask for tex layer render
- gGL.setColorMask(true, true);
-
- // do we need to upload, and do we have sufficient data to create an uploadable composite?
- // TODO: When do we upload the texture if gAgent.mNumPendingQueries is non-zero?
- const BOOL upload_now = mNeedsUpload && isReadyToUpload();
- const BOOL update_now = mNeedsUpdate && isReadyToUpdate();
-
- BOOL success = TRUE;
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- if (use_shaders)
- {
- gAlphaMaskProgram.bind();
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
-
- LLVertexBuffer::unbind();
-
- // Composite the color data
- LLGLSUIDefault gls_ui;
- success &= mTexLayerSet->render( mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight );
- gGL.flush();
-
- if(upload_now)
- {
- if (!success)
- {
- llinfos << "Failed attempt to bake " << mTexLayerSet->getBodyRegionName() << llendl;
- mUploadPending = FALSE;
- }
- else
- {
- if (mTexLayerSet->isVisible())
- {
- mTexLayerSet->getAvatar()->debugBakedTextureUpload(mTexLayerSet->getBakedTexIndex(), FALSE); // FALSE for start of upload, TRUE for finish.
- doUpload();
- }
- else
- {
- mUploadPending = FALSE;
- mNeedsUpload = FALSE;
- mNeedsUploadTimer.pause();
- mTexLayerSet->getAvatar()->setNewBakedTexture(mTexLayerSet->getBakedTexIndex(),IMG_INVISIBLE);
- }
- }
- }
-
- if (update_now)
- {
- doUpdate();
- }
-
- if (use_shaders)
- {
- gAlphaMaskProgram.unbind();
- }
-
- LLVertexBuffer::unbind();
-
- // reset GL state
- gGL.setColorMask(true, true);
- gGL.setSceneBlendType(LLRender::BT_ALPHA);
-
- // we have valid texture data now
- mGLTexturep->setGLTextureCreated(true);
-
- return success;
-}
-
-BOOL LLTexLayerSetBuffer::isInitialized(void) const
-{
- return mGLTexturep.notNull() && mGLTexturep->isGLTextureCreated();
-}
-
-BOOL LLTexLayerSetBuffer::uploadPending() const
-{
- return mUploadPending;
-}
-
-BOOL LLTexLayerSetBuffer::uploadNeeded() const
-{
- return mNeedsUpload;
-}
-
-BOOL LLTexLayerSetBuffer::uploadInProgress() const
-{
- return !mUploadID.isNull();
-}
-
-BOOL LLTexLayerSetBuffer::isReadyToUpload() const
-{
- if (!gAgentQueryManager.hasNoPendingQueries()) return FALSE; // Can't upload if there are pending queries.
- if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures()) return FALSE; // Don't upload if avatar is using composites.
-
- BOOL ready = FALSE;
- if (mTexLayerSet->isLocalTextureDataFinal())
- {
- // If we requested an upload and have the final LOD ready, upload (or wait a while if this is a retry)
- if (mUploadFailCount == 0)
- {
- ready = TRUE;
- }
- else
- {
- ready = mUploadRetryTimer.getElapsedTimeF32() >= BAKE_UPLOAD_RETRY_DELAY * (1 << (mUploadFailCount - 1));
- }
- }
- else
- {
- // Upload if we've hit a timeout. Upload is a pretty expensive process so we need to make sure
- // we aren't doing uploads too frequently.
- const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedTextureUploadTimeout");
- if (texture_timeout != 0)
- {
- // The timeout period increases exponentially between every lowres upload in order to prevent
- // spamming the server with frequent uploads.
- const U32 texture_timeout_threshold = texture_timeout*(1 << mNumLowresUploads);
-
- // If we hit our timeout and have textures available at even lower resolution, then upload.
- const BOOL is_upload_textures_timeout = mNeedsUploadTimer.getElapsedTimeF32() >= texture_timeout_threshold;
- const BOOL has_lower_lod = mTexLayerSet->isLocalTextureDataAvailable();
- ready = has_lower_lod && is_upload_textures_timeout;
- }
- }
-
- return ready;
-}
-
-BOOL LLTexLayerSetBuffer::isReadyToUpdate() const
-{
- // If we requested an update and have the final LOD ready, then update.
- if (mTexLayerSet->isLocalTextureDataFinal()) return TRUE;
-
- // If we haven't done an update yet, then just do one now regardless of state of textures.
- if (mNumLowresUpdates == 0) return TRUE;
-
- // Update if we've hit a timeout. Unlike for uploads, we can make this timeout fairly small
- // since render unnecessarily doesn't cost much.
- const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedLocalTextureUpdateTimeout");
- if (texture_timeout != 0)
- {
- // If we hit our timeout and have textures available at even lower resolution, then update.
- const BOOL is_update_textures_timeout = mNeedsUpdateTimer.getElapsedTimeF32() >= texture_timeout;
- const BOOL has_lower_lod = mTexLayerSet->isLocalTextureDataAvailable();
- if (has_lower_lod && is_update_textures_timeout) return TRUE;
- }
-
- return FALSE;
-}
-
-BOOL LLTexLayerSetBuffer::requestUpdateImmediate()
-{
- mNeedsUpdate = TRUE;
- BOOL result = FALSE;
-
- if (needsRender())
- {
- preRender(FALSE);
- result = render();
- postRender(result);
- }
-
- return result;
-}
-
-// Create the baked texture, send it out to the server, then wait for it to come
-// back so we can switch to using it.
-void LLTexLayerSetBuffer::doUpload()
-{
- llinfos << "Uploading baked " << mTexLayerSet->getBodyRegionName() << llendl;
- LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_BAKES);
-
- // Don't need caches since we're baked now. (note: we won't *really* be baked
- // until this image is sent to the server and the Avatar Appearance message is received.)
- mTexLayerSet->deleteCaches();
-
- // Get the COLOR information from our texture
- U8* baked_color_data = new U8[ mFullWidth * mFullHeight * 4 ];
- glReadPixels(mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, GL_RGBA, GL_UNSIGNED_BYTE, baked_color_data );
- stop_glerror();
-
- // Get the MASK information from our texture
- LLGLSUIDefault gls_ui;
- LLPointer<LLImageRaw> baked_mask_image = new LLImageRaw(mFullWidth, mFullHeight, 1 );
- U8* baked_mask_data = baked_mask_image->getData();
- mTexLayerSet->gatherMorphMaskAlpha(baked_mask_data, mFullWidth, mFullHeight);
-
-
- // Create the baked image from our color and mask information
- const S32 baked_image_components = 5; // red green blue [bump] clothing
- LLPointer<LLImageRaw> baked_image = new LLImageRaw( mFullWidth, mFullHeight, baked_image_components );
- U8* baked_image_data = baked_image->getData();
- S32 i = 0;
- for (S32 u=0; u < mFullWidth; u++)
- {
- for (S32 v=0; v < mFullHeight; v++)
- {
- baked_image_data[5*i + 0] = baked_color_data[4*i + 0];
- baked_image_data[5*i + 1] = baked_color_data[4*i + 1];
- baked_image_data[5*i + 2] = baked_color_data[4*i + 2];
- baked_image_data[5*i + 3] = baked_color_data[4*i + 3]; // alpha should be correct for eyelashes.
- baked_image_data[5*i + 4] = baked_mask_data[i];
- i++;
- }
- }
-
- LLPointer<LLImageJ2C> compressedImage = new LLImageJ2C;
- const char* comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // writes into baked_color_data. 5 channels (rgb, heightfield/alpha, mask)
- if (compressedImage->encode(baked_image, comment_text))
- {
- LLTransactionID tid;
- tid.generate();
- const LLAssetID asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
- if (LLVFile::writeFile(compressedImage->getData(), compressedImage->getDataSize(),
- gVFS, asset_id, LLAssetType::AT_TEXTURE))
- {
- // Read back the file and validate.
- BOOL valid = FALSE;
- LLPointer<LLImageJ2C> integrity_test = new LLImageJ2C;
- S32 file_size = 0;
-
- //data buffer MUST be allocated using LLImageBase
- LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE);
- file_size = file.getSize();
- U8* data = integrity_test->allocateData(file_size);
- file.read(data, file_size);
-
- if (data)
- {
- valid = integrity_test->validate(data, file_size); // integrity_test will delete 'data'
- }
- else
- {
- integrity_test->setLastError("Unable to read entire file");
- }
-
- if (valid)
- {
- const bool highest_lod = mTexLayerSet->isLocalTextureDataFinal();
- // Baked_upload_data is owned by the responder and deleted after the request completes.
- LLBakedUploadData* baked_upload_data = new LLBakedUploadData(gAgentAvatarp,
- this->mTexLayerSet,
- asset_id,
- highest_lod);
- // upload ID is used to avoid overlaps, e.g. when the user rapidly makes two changes outside of Face Edit.
- mUploadID = asset_id;
-
- // Upload the image
- const std::string url = gAgent.getRegion()->getCapability("UploadBakedTexture");
- if(!url.empty()
- && !LLPipeline::sForceOldBakedUpload // toggle debug setting UploadBakedTexOld to change between the new caps method and old method
- && (mUploadFailCount < (BAKE_UPLOAD_ATTEMPTS - 1))) // Try last ditch attempt via asset store if cap upload is failing.
- {
- LLSD body = LLSD::emptyMap();
- // The responder will call LLTexLayerSetBuffer::onTextureUploadComplete()
- LLHTTPClient::post(url, body, new LLSendTexLayerResponder(body, mUploadID, LLAssetType::AT_TEXTURE, baked_upload_data));
- llinfos << "Baked texture upload via capability of " << mUploadID << " to " << url << llendl;
- }
- else
- {
- gAssetStorage->storeAssetData(tid,
- LLAssetType::AT_TEXTURE,
- LLTexLayerSetBuffer::onTextureUploadComplete,
- baked_upload_data,
- TRUE, // temp_file
- TRUE, // is_priority
- TRUE); // store_local
- llinfos << "Baked texture upload via Asset Store." << llendl;
- }
-
- if (highest_lod)
- {
- // Sending the final LOD for the baked texture. All done, pause
- // the upload timer so we know how long it took.
- mNeedsUpload = FALSE;
- mNeedsUploadTimer.pause();
- }
- else
- {
- // Sending a lower level LOD for the baked texture. Restart the upload timer.
- mNumLowresUploads++;
- mNeedsUploadTimer.unpause();
- mNeedsUploadTimer.reset();
- }
-
- // Print out notification that we uploaded this texture.
- if (gSavedSettings.getBOOL("DebugAvatarRezTime"))
- {
- const std::string lod_str = highest_lod ? "HighRes" : "LowRes";
- LLSD args;
- args["EXISTENCE"] = llformat("%d",(U32)mTexLayerSet->getAvatar()->debugGetExistenceTimeElapsedF32());
- args["TIME"] = llformat("%d",(U32)mNeedsUploadTimer.getElapsedTimeF32());
- args["BODYREGION"] = mTexLayerSet->getBodyRegionName();
- args["RESOLUTION"] = lod_str;
- LLNotificationsUtil::add("AvatarRezSelfBakedTextureUploadNotification",args);
- LL_DEBUGS("Avatar") << self_av_string() << "Uploading [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUploadTimer.getElapsedTimeF32() << " ]" << LL_ENDL;
- }
- }
- else
- {
- // The read back and validate operation failed. Remove the uploaded file.
- mUploadPending = FALSE;
- LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE, LLVFile::WRITE);
- file.remove();
- llinfos << "Unable to create baked upload file (reason: corrupted)." << llendl;
- }
- }
- }
- else
- {
- // The VFS write file operation failed.
- mUploadPending = FALSE;
- llinfos << "Unable to create baked upload file (reason: failed to write file)" << llendl;
- }
-
- delete [] baked_color_data;
-}
-
-// Mostly bookkeeping; don't need to actually "do" anything since
-// render() will actually do the update.
-void LLTexLayerSetBuffer::doUpdate()
-{
- const BOOL highest_lod = mTexLayerSet->isLocalTextureDataFinal();
- if (highest_lod)
- {
- mNeedsUpdate = FALSE;
- }
- else
- {
- mNumLowresUpdates++;
- }
-
- restartUpdateTimer();
-
- // need to swtich to using this layerset if this is the first update
- // after getting the lowest LOD
- mTexLayerSet->getAvatar()->updateMeshTextures();
-
- // Print out notification that we uploaded this texture.
- if (gSavedSettings.getBOOL("DebugAvatarRezTime"))
- {
- const BOOL highest_lod = mTexLayerSet->isLocalTextureDataFinal();
- const std::string lod_str = highest_lod ? "HighRes" : "LowRes";
- LLSD args;
- args["EXISTENCE"] = llformat("%d",(U32)mTexLayerSet->getAvatar()->debugGetExistenceTimeElapsedF32());
- args["TIME"] = llformat("%d",(U32)mNeedsUpdateTimer.getElapsedTimeF32());
- args["BODYREGION"] = mTexLayerSet->getBodyRegionName();
- args["RESOLUTION"] = lod_str;
- LLNotificationsUtil::add("AvatarRezSelfBakedTextureUpdateNotification",args);
- LL_DEBUGS("Avatar") << self_av_string() << "Locally updating [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUpdateTimer.getElapsedTimeF32() << " ]" << LL_ENDL;
- }
-}
-
-// static
-void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid,
- void* userdata,
- S32 result,
- LLExtStat ext_status) // StoreAssetData callback (not fixed)
-{
- LLBakedUploadData* baked_upload_data = (LLBakedUploadData*)userdata;
-
- if (isAgentAvatarValid() &&
- !gAgentAvatarp->isDead() &&
- (baked_upload_data->mAvatar == gAgentAvatarp) && // Sanity check: only the user's avatar should be uploading textures.
- (baked_upload_data->mTexLayerSet->hasComposite()))
- {
- LLTexLayerSetBuffer* layerset_buffer = baked_upload_data->mTexLayerSet->getComposite();
- S32 failures = layerset_buffer->mUploadFailCount;
- layerset_buffer->mUploadFailCount = 0;
-
- if (layerset_buffer->mUploadID.isNull())
- {
- // The upload got canceled, we should be in the
- // process of baking a new texture so request an
- // upload with the new data
-
- // BAP: does this really belong in this callback, as
- // opposed to where the cancellation takes place?
- // suspect this does nothing.
- layerset_buffer->requestUpload();
- }
- else if (baked_upload_data->mID == layerset_buffer->mUploadID)
- {
- // This is the upload we're currently waiting for.
- layerset_buffer->mUploadID.setNull();
- const std::string name(baked_upload_data->mTexLayerSet->getBodyRegionName());
- const std::string resolution = baked_upload_data->mIsHighestRes ? " full res " : " low res ";
- if (result >= 0)
- {
- layerset_buffer->mUploadPending = FALSE; // Allows sending of AgentSetAppearance later
- LLVOAvatarDefines::ETextureIndex baked_te = gAgentAvatarp->getBakedTE(layerset_buffer->mTexLayerSet);
- // Update baked texture info with the new UUID
- U64 now = LLFrameTimer::getTotalTime(); // Record starting time
- llinfos << "Baked" << resolution << "texture upload for " << name << " took " << (S32)((now - baked_upload_data->mStartTime) / 1000) << " ms" << llendl;
- gAgentAvatarp->setNewBakedTexture(baked_te, uuid);
- }
- else
- {
- ++failures;
- S32 max_attempts = baked_upload_data->mIsHighestRes ? BAKE_UPLOAD_ATTEMPTS : 1; // only retry final bakes
- llwarns << "Baked" << resolution << "texture upload for " << name << " failed (attempt " << failures << "/" << max_attempts << ")" << llendl;
- if (failures < max_attempts)
- {
- layerset_buffer->mUploadFailCount = failures;
- layerset_buffer->mUploadRetryTimer.start();
- layerset_buffer->requestUpload();
- }
- }
- }
- else
- {
- llinfos << "Received baked texture out of date, ignored." << llendl;
- }
-
- gAgentAvatarp->dirtyMesh();
- }
- else
- {
- // Baked texture failed to upload (in which case since we
- // didn't set the new baked texture, it means that they'll try
- // and rebake it at some point in the future (after login?)),
- // or this response to upload is out of date, in which case a
- // current response should be on the way or already processed.
- llwarns << "Baked upload failed" << llendl;
- }
-
- delete baked_upload_data;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerSet
-// An ordered set of texture layers that get composited into a single texture.
-//-----------------------------------------------------------------------------
-
-LLTexLayerSetInfo::LLTexLayerSetInfo() :
- mBodyRegion( "" ),
- mWidth( 512 ),
- mHeight( 512 ),
- mClearAlpha( TRUE )
-{
-}
-
-LLTexLayerSetInfo::~LLTexLayerSetInfo( )
-{
- std::for_each(mLayerInfoList.begin(), mLayerInfoList.end(), DeletePointer());
-}
-
-BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "layer_set" ) );
- if( !node->hasName( "layer_set" ) )
- {
- return FALSE;
- }
-
- // body_region
- static LLStdStringHandle body_region_string = LLXmlTree::addAttributeString("body_region");
- if( !node->getFastAttributeString( body_region_string, mBodyRegion ) )
- {
- llwarns << "<layer_set> is missing body_region attribute" << llendl;
- return FALSE;
- }
-
- // width, height
- static LLStdStringHandle width_string = LLXmlTree::addAttributeString("width");
- if( !node->getFastAttributeS32( width_string, mWidth ) )
- {
- return FALSE;
- }
-
- static LLStdStringHandle height_string = LLXmlTree::addAttributeString("height");
- if( !node->getFastAttributeS32( height_string, mHeight ) )
- {
- return FALSE;
- }
-
- // Optional alpha component to apply after all compositing is complete.
- static LLStdStringHandle alpha_tga_file_string = LLXmlTree::addAttributeString("alpha_tga_file");
- node->getFastAttributeString( alpha_tga_file_string, mStaticAlphaFileName );
-
- static LLStdStringHandle clear_alpha_string = LLXmlTree::addAttributeString("clear_alpha");
- node->getFastAttributeBOOL( clear_alpha_string, mClearAlpha );
-
- // <layer>
- for (LLXmlTreeNode* child = node->getChildByName( "layer" );
- child;
- child = node->getNextNamedChild())
- {
- LLTexLayerInfo* info = new LLTexLayerInfo();
- if( !info->parseXml( child ))
- {
- delete info;
- return FALSE;
- }
- mLayerInfoList.push_back( info );
- }
- return TRUE;
-}
-
-// creates visual params without generating layersets or layers
-void LLTexLayerSetInfo::createVisualParams(LLVOAvatar *avatar)
-{
- //layer_info_list_t mLayerInfoList;
- for (layer_info_list_t::iterator layer_iter = mLayerInfoList.begin();
- layer_iter != mLayerInfoList.end();
- layer_iter++)
- {
- LLTexLayerInfo *layer_info = *layer_iter;
- layer_info->createVisualParams(avatar);
- }
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerSet
-// An ordered set of texture layers that get composited into a single texture.
-//-----------------------------------------------------------------------------
-
-BOOL LLTexLayerSet::sHasCaches = FALSE;
-
-LLTexLayerSet::LLTexLayerSet(LLVOAvatarSelf* const avatar) :
- mComposite( NULL ),
- mAvatar( avatar ),
- mUpdatesEnabled( FALSE ),
- mIsVisible( TRUE ),
- mBakedTexIndex(LLVOAvatarDefines::BAKED_HEAD),
- mInfo( NULL )
-{
-}
-
-LLTexLayerSet::~LLTexLayerSet()
-{
- deleteCaches();
- std::for_each(mLayerList.begin(), mLayerList.end(), DeletePointer());
- std::for_each(mMaskLayerList.begin(), mMaskLayerList.end(), DeletePointer());
-}
-
-//-----------------------------------------------------------------------------
-// setInfo
-//-----------------------------------------------------------------------------
-
-BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
-{
- llassert(mInfo == NULL);
- mInfo = info;
- //mID = info->mID; // No ID
-
- mLayerList.reserve(info->mLayerInfoList.size());
- for (LLTexLayerSetInfo::layer_info_list_t::const_iterator iter = info->mLayerInfoList.begin();
- iter != info->mLayerInfoList.end();
- iter++)
- {
- LLTexLayerInterface *layer = NULL;
- if ( (*iter)->isUserSettable() )
- {
- layer = new LLTexLayerTemplate( this );
- }
- else
- {
- layer = new LLTexLayer(this);
- }
- // this is the first time this layer (of either type) is being created - make sure you add the parameters to the avatar
- if (!layer->setInfo(*iter, NULL))
- {
- mInfo = NULL;
- return FALSE;
- }
- if (!layer->isVisibilityMask())
- {
- mLayerList.push_back( layer );
- }
- else
- {
- mMaskLayerList.push_back(layer);
- }
- }
-
- requestUpdate();
-
- stop_glerror();
-
- return TRUE;
-}
-
-#if 0 // obsolete
-//-----------------------------------------------------------------------------
-// parseData
-//-----------------------------------------------------------------------------
-
-BOOL LLTexLayerSet::parseData(LLXmlTreeNode* node)
-{
- LLTexLayerSetInfo *info = new LLTexLayerSetInfo;
-
- if (!info->parseXml(node))
- {
- delete info;
- return FALSE;
- }
- if (!setInfo(info))
- {
- delete info;
- return FALSE;
- }
- return TRUE;
-}
-#endif
-
-void LLTexLayerSet::deleteCaches()
-{
- for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- layer->deleteCaches();
- }
- for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++)
- {
- LLTexLayerInterface* layer = *iter;
- layer->deleteCaches();
- }
-}
-
-// Returns TRUE if at least one packet of data has been received for each of the textures that this layerset depends on.
-BOOL LLTexLayerSet::isLocalTextureDataAvailable() const
-{
- if (!mAvatar->isSelf()) return FALSE;
- return ((LLVOAvatarSelf *)mAvatar)->isLocalTextureDataAvailable(this);
-}
-
-
-// Returns TRUE if all of the data for the textures that this layerset depends on have arrived.
-BOOL LLTexLayerSet::isLocalTextureDataFinal() const
-{
- if (!mAvatar->isSelf()) return FALSE;
- return ((LLVOAvatarSelf *)mAvatar)->isLocalTextureDataFinal(this);
-}
-
-
-BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
-{
- BOOL success = TRUE;
- mIsVisible = TRUE;
-
- if (mMaskLayerList.size() > 0)
- {
- for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++)
- {
- LLTexLayerInterface* layer = *iter;
- if (layer->isInvisibleAlphaMask())
- {
- mIsVisible = FALSE;
- }
- }
- }
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- LLGLSUIDefault gls_ui;
- LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE);
- gGL.setColorMask(true, true);
-
- // clear buffer area to ensure we don't pick up UI elements
- {
- gGL.flush();
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.0f);
- }
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f( 0.f, 0.f, 0.f, 1.f );
-
- gl_rect_2d_simple( width, height );
-
- gGL.flush();
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
-
- if (mIsVisible)
- {
- // composite color layers
- for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- if (layer->getRenderPass() == LLTexLayer::RP_COLOR)
- {
- gGL.flush();
- success &= layer->render(x, y, width, height);
- gGL.flush();
- }
- }
-
- renderAlphaMaskTextures(x, y, width, height, false);
-
- stop_glerror();
- }
- else
- {
- gGL.flush();
-
- gGL.setSceneBlendType(LLRender::BT_REPLACE);
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
-
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f( 0.f, 0.f, 0.f, 0.f );
-
- gl_rect_2d_simple( width, height );
- gGL.setSceneBlendType(LLRender::BT_ALPHA);
-
- gGL.flush();
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
-
- return success;
-}
-
-
-BOOL LLTexLayerSet::isBodyRegion(const std::string& region) const
-{
- return mInfo->mBodyRegion == region;
-}
-
-const std::string LLTexLayerSet::getBodyRegionName() const
-{
- return mInfo->mBodyRegion;
-}
-
-void LLTexLayerSet::requestUpdate()
-{
- if( mUpdatesEnabled )
- {
- createComposite();
- mComposite->requestUpdate();
- }
-}
-
-void LLTexLayerSet::requestUpload()
-{
- createComposite();
- mComposite->requestUpload();
-}
-
-void LLTexLayerSet::cancelUpload()
-{
- if(mComposite)
- {
- mComposite->cancelUpload();
- }
-}
-
-void LLTexLayerSet::createComposite()
-{
- if(!mComposite)
- {
- S32 width = mInfo->mWidth;
- S32 height = mInfo->mHeight;
- // Composite other avatars at reduced resolution
- if( !mAvatar->isSelf() )
- {
- llerrs << "composites should not be created for non-self avatars!" << llendl;
- }
- mComposite = new LLTexLayerSetBuffer( this, width, height );
- }
-}
-
-void LLTexLayerSet::destroyComposite()
-{
- if( mComposite )
- {
- mComposite = NULL;
- }
-}
-
-void LLTexLayerSet::setUpdatesEnabled( BOOL b )
-{
- mUpdatesEnabled = b;
-}
-
-
-void LLTexLayerSet::updateComposite()
-{
- createComposite();
- mComposite->requestUpdateImmediate();
-}
-
-LLTexLayerSetBuffer* LLTexLayerSet::getComposite()
-{
- if (!mComposite)
- {
- createComposite();
- }
- return mComposite;
-}
-
-const LLTexLayerSetBuffer* LLTexLayerSet::getComposite() const
-{
- return mComposite;
-}
-
-void LLTexLayerSet::gatherMorphMaskAlpha(U8 *data, S32 width, S32 height)
-{
- memset(data, 255, width * height);
-
- for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- layer->gatherAlphaMasks(data, mComposite->getOriginX(),mComposite->getOriginY(), width, height);
- }
-
- // Set alpha back to that of our alpha masks.
- renderAlphaMaskTextures(mComposite->getOriginX(), mComposite->getOriginY(), width, height, true);
-}
-
-void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height, bool forceClear)
-{
- const LLTexLayerSetInfo *info = getInfo();
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- gGL.setColorMask(false, true);
- gGL.setSceneBlendType(LLRender::BT_REPLACE);
-
- // (Optionally) replace alpha with a single component image from a tga file.
- if (!info->mStaticAlphaFileName.empty())
- {
- gGL.flush();
- {
- LLViewerTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(info->mStaticAlphaFileName, TRUE);
- if( tex )
- {
- LLGLSUIDefault gls_ui;
- gGL.getTexUnit(0)->bind(tex);
- gGL.getTexUnit(0)->setTextureBlendType( LLTexUnit::TB_REPLACE );
- gl_rect_2d_simple_tex( width, height );
- }
- }
- gGL.flush();
- }
- else if (forceClear || info->mClearAlpha || (mMaskLayerList.size() > 0))
- {
- // Set the alpha channel to one (clean up after previous blending)
- gGL.flush();
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f( 0.f, 0.f, 0.f, 1.f );
-
- gl_rect_2d_simple( width, height );
-
- gGL.flush();
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
-
- // (Optional) Mask out part of the baked texture with alpha masks
- // will still have an effect even if mClearAlpha is set or the alpha component was replaced
- if (mMaskLayerList.size() > 0)
- {
- gGL.setSceneBlendType(LLRender::BT_MULT_ALPHA);
- gGL.getTexUnit(0)->setTextureBlendType( LLTexUnit::TB_REPLACE );
- for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++)
- {
- LLTexLayerInterface* layer = *iter;
- gGL.flush();
- layer->blendAlphaTexture(x,y,width, height);
- gGL.flush();
- }
-
- }
-
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-
- gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
- gGL.setColorMask(true, true);
- gGL.setSceneBlendType(LLRender::BT_ALPHA);
-}
-
-void LLTexLayerSet::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components)
-{
- mAvatar->applyMorphMask(tex_data, width, height, num_components, mBakedTexIndex);
-}
-
-BOOL LLTexLayerSet::isMorphValid() const
-{
- for(layer_list_t::const_iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- const LLTexLayerInterface* layer = *iter;
- if (layer && !layer->isMorphValid())
- {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-void LLTexLayerSet::invalidateMorphMasks()
-{
- for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- if (layer)
- {
- layer->invalidateMorphMasks();
- }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// LLTexLayerInfo
-//-----------------------------------------------------------------------------
-LLTexLayerInfo::LLTexLayerInfo() :
- mWriteAllChannels( FALSE ),
- mRenderPass(LLTexLayer::RP_COLOR),
- mFixedColor( 0.f, 0.f, 0.f, 0.f ),
- mLocalTexture( -1 ),
- mStaticImageIsMask( FALSE ),
- mUseLocalTextureAlphaOnly(FALSE),
- mIsVisibilityMask(FALSE)
-{
-}
-
-LLTexLayerInfo::~LLTexLayerInfo( )
-{
- std::for_each(mParamColorInfoList.begin(), mParamColorInfoList.end(), DeletePointer());
- std::for_each(mParamAlphaInfoList.begin(), mParamAlphaInfoList.end(), DeletePointer());
-}
-
-BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "layer" ) );
-
- // name attribute
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if( !node->getFastAttributeString( name_string, mName ) )
- {
- return FALSE;
- }
-
- static LLStdStringHandle write_all_channels_string = LLXmlTree::addAttributeString("write_all_channels");
- node->getFastAttributeBOOL( write_all_channels_string, mWriteAllChannels );
-
- std::string render_pass_name;
- static LLStdStringHandle render_pass_string = LLXmlTree::addAttributeString("render_pass");
- if( node->getFastAttributeString( render_pass_string, render_pass_name ) )
- {
- if( render_pass_name == "bump" )
- {
- mRenderPass = LLTexLayer::RP_BUMP;
- }
- }
-
- // Note: layers can have either a "global_color" attrib, a "fixed_color" attrib, or a <param_color> child.
- // global color attribute (optional)
- static LLStdStringHandle global_color_string = LLXmlTree::addAttributeString("global_color");
- node->getFastAttributeString( global_color_string, mGlobalColor );
-
- // Visibility mask (optional)
- BOOL is_visibility;
- static LLStdStringHandle visibility_mask_string = LLXmlTree::addAttributeString("visibility_mask");
- if (node->getFastAttributeBOOL(visibility_mask_string, is_visibility))
- {
- mIsVisibilityMask = is_visibility;
- }
-
- // color attribute (optional)
- LLColor4U color4u;
- static LLStdStringHandle fixed_color_string = LLXmlTree::addAttributeString("fixed_color");
- if( node->getFastAttributeColor4U( fixed_color_string, color4u ) )
- {
- mFixedColor.setVec( color4u );
- }
-
- // <texture> optional sub-element
- for (LLXmlTreeNode* texture_node = node->getChildByName( "texture" );
- texture_node;
- texture_node = node->getNextNamedChild())
- {
- std::string local_texture_name;
- static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
- static LLStdStringHandle local_texture_string = LLXmlTree::addAttributeString("local_texture");
- static LLStdStringHandle file_is_mask_string = LLXmlTree::addAttributeString("file_is_mask");
- static LLStdStringHandle local_texture_alpha_only_string = LLXmlTree::addAttributeString("local_texture_alpha_only");
- if( texture_node->getFastAttributeString( tga_file_string, mStaticImageFileName ) )
- {
- texture_node->getFastAttributeBOOL( file_is_mask_string, mStaticImageIsMask );
- }
- else if (texture_node->getFastAttributeString(local_texture_string, local_texture_name))
- {
- texture_node->getFastAttributeBOOL( local_texture_alpha_only_string, mUseLocalTextureAlphaOnly );
-
- /* if ("upper_shirt" == local_texture_name)
- mLocalTexture = TEX_UPPER_SHIRT; */
- mLocalTexture = TEX_NUM_INDICES;
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
- iter++)
- {
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
- if (local_texture_name == texture_dict->mName)
- {
- mLocalTexture = iter->first;
- break;
- }
- }
- if (mLocalTexture == TEX_NUM_INDICES)
- {
- llwarns << "<texture> element has invalid local_texture attribute: " << mName << " " << local_texture_name << llendl;
- return FALSE;
- }
- }
- else
- {
- llwarns << "<texture> element is missing a required attribute. " << mName << llendl;
- return FALSE;
- }
- }
-
- for (LLXmlTreeNode* maskNode = node->getChildByName( "morph_mask" );
- maskNode;
- maskNode = node->getNextNamedChild())
- {
- std::string morph_name;
- static LLStdStringHandle morph_name_string = LLXmlTree::addAttributeString("morph_name");
- if (maskNode->getFastAttributeString(morph_name_string, morph_name))
- {
- BOOL invert = FALSE;
- static LLStdStringHandle invert_string = LLXmlTree::addAttributeString("invert");
- maskNode->getFastAttributeBOOL(invert_string, invert);
- mMorphNameList.push_back(std::pair<std::string,BOOL>(morph_name,invert));
- }
- }
-
- // <param> optional sub-element (color or alpha params)
- for (LLXmlTreeNode* child = node->getChildByName( "param" );
- child;
- child = node->getNextNamedChild())
- {
- if( child->getChildByName( "param_color" ) )
- {
- // <param><param_color/></param>
- LLTexLayerParamColorInfo* info = new LLTexLayerParamColorInfo();
- if (!info->parseXml(child))
- {
- delete info;
- return FALSE;
- }
- mParamColorInfoList.push_back(info);
- }
- else if( child->getChildByName( "param_alpha" ) )
- {
- // <param><param_alpha/></param>
- LLTexLayerParamAlphaInfo* info = new LLTexLayerParamAlphaInfo( );
- if (!info->parseXml(child))
- {
- delete info;
- return FALSE;
- }
- mParamAlphaInfoList.push_back(info);
- }
- }
-
- return TRUE;
-}
-
-BOOL LLTexLayerInfo::createVisualParams(LLVOAvatar *avatar)
-{
- BOOL success = TRUE;
- for (param_color_info_list_t::iterator color_info_iter = mParamColorInfoList.begin();
- color_info_iter != mParamColorInfoList.end();
- color_info_iter++)
- {
- LLTexLayerParamColorInfo * color_info = *color_info_iter;
- LLTexLayerParamColor* param_color = new LLTexLayerParamColor(avatar);
- if (!param_color->setInfo(color_info, TRUE))
- {
- llwarns << "NULL TexLayer Color Param could not be added to visual param list. Deleting." << llendl;
- delete param_color;
- success = FALSE;
- }
- }
-
- for (param_alpha_info_list_t::iterator alpha_info_iter = mParamAlphaInfoList.begin();
- alpha_info_iter != mParamAlphaInfoList.end();
- alpha_info_iter++)
- {
- LLTexLayerParamAlphaInfo * alpha_info = *alpha_info_iter;
- LLTexLayerParamAlpha* param_alpha = new LLTexLayerParamAlpha(avatar);
- if (!param_alpha->setInfo(alpha_info, TRUE))
- {
- llwarns << "NULL TexLayer Alpha Param could not be added to visual param list. Deleting." << llendl;
- delete param_alpha;
- success = FALSE;
- }
- }
-
- return success;
-}
-
-LLTexLayerInterface::LLTexLayerInterface(LLTexLayerSet* const layer_set):
- mTexLayerSet( layer_set ),
- mMorphMasksValid( FALSE ),
- mInfo(NULL),
- mHasMorph(FALSE)
-{
-}
-
-LLTexLayerInterface::LLTexLayerInterface(const LLTexLayerInterface &layer, LLWearable *wearable):
- mTexLayerSet( layer.mTexLayerSet ),
- mInfo(NULL)
-{
- // don't add visual params for cloned layers
- setInfo(layer.getInfo(), wearable);
-
- mHasMorph = layer.mHasMorph;
-}
-
-BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearable ) // This sets mInfo and calls initialization functions
-{
- // setInfo should only be called once. Code is not robust enough to handle redefinition of a texlayer.
- // Not a critical warning, but could be useful for debugging later issues. -Nyx
- if (mInfo != NULL)
- {
- llwarns << "mInfo != NULL" << llendl;
- }
- mInfo = info;
- //mID = info->mID; // No ID
-
- mParamColorList.reserve(mInfo->mParamColorInfoList.size());
- for (param_color_info_list_t::const_iterator iter = mInfo->mParamColorInfoList.begin();
- iter != mInfo->mParamColorInfoList.end();
- iter++)
- {
- LLTexLayerParamColor* param_color;
- if (!wearable)
- {
- param_color = new LLTexLayerParamColor(this);
- if (!param_color->setInfo(*iter, TRUE))
- {
- mInfo = NULL;
- return FALSE;
- }
- }
- else
- {
- param_color = (LLTexLayerParamColor*)wearable->getVisualParam((*iter)->getID());
- if (!param_color)
- {
- mInfo = NULL;
- return FALSE;
- }
- }
- mParamColorList.push_back( param_color );
- }
-
- mParamAlphaList.reserve(mInfo->mParamAlphaInfoList.size());
- for (param_alpha_info_list_t::const_iterator iter = mInfo->mParamAlphaInfoList.begin();
- iter != mInfo->mParamAlphaInfoList.end();
- iter++)
- {
- LLTexLayerParamAlpha* param_alpha;
- if (!wearable)
- {
- param_alpha = new LLTexLayerParamAlpha( this );
- if (!param_alpha->setInfo(*iter, TRUE))
- {
- mInfo = NULL;
- return FALSE;
- }
- }
- else
- {
- param_alpha = (LLTexLayerParamAlpha*) wearable->getVisualParam((*iter)->getID());
- if (!param_alpha)
- {
- mInfo = NULL;
- return FALSE;
- }
- }
- mParamAlphaList.push_back( param_alpha );
- }
-
- return TRUE;
-}
-
-/*virtual*/ void LLTexLayerInterface::requestUpdate()
-{
- mTexLayerSet->requestUpdate();
-}
-
-const std::string& LLTexLayerInterface::getName() const
-{
- return mInfo->mName;
-}
-
-LLTexLayerInterface::ERenderPass LLTexLayerInterface::getRenderPass() const
-{
- return mInfo->mRenderPass;
-}
-
-const std::string& LLTexLayerInterface::getGlobalColor() const
-{
- return mInfo->mGlobalColor;
-}
-
-BOOL LLTexLayerInterface::isVisibilityMask() const
-{
- return mInfo->mIsVisibilityMask;
-}
-
-void LLTexLayerInterface::invalidateMorphMasks()
-{
- mMorphMasksValid = FALSE;
-}
-
-LLViewerVisualParam* LLTexLayerInterface::getVisualParamPtr(S32 index) const
-{
- LLViewerVisualParam *result = NULL;
- for (param_color_list_t::const_iterator color_iter = mParamColorList.begin(); color_iter != mParamColorList.end() && !result; ++color_iter)
- {
- if ((*color_iter)->getID() == index)
- {
- result = *color_iter;
- }
- }
- for (param_alpha_list_t::const_iterator alpha_iter = mParamAlphaList.begin(); alpha_iter != mParamAlphaList.end() && !result; ++alpha_iter)
- {
- if ((*alpha_iter)->getID() == index)
- {
- result = *alpha_iter;
- }
- }
-
- return result;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayer
-// A single texture layer, consisting of:
-// * color, consisting of either
-// * one or more color parameters (weighted colors)
-// * a reference to a global color
-// * a fixed color with non-zero alpha
-// * opaque white (the default)
-// * (optional) a texture defined by either
-// * a GUID
-// * a texture entry index (TE)
-// * (optional) one or more alpha parameters (weighted alpha textures)
-//-----------------------------------------------------------------------------
-LLTexLayer::LLTexLayer(LLTexLayerSet* const layer_set) :
- LLTexLayerInterface( layer_set ),
- mLocalTextureObject(NULL)
-{
-}
-
-LLTexLayer::LLTexLayer(const LLTexLayer &layer, LLWearable *wearable) :
- LLTexLayerInterface( layer, wearable ),
- mLocalTextureObject(NULL)
-{
-}
-
-LLTexLayer::LLTexLayer(const LLTexLayerTemplate &layer_template, LLLocalTextureObject *lto, LLWearable *wearable) :
- LLTexLayerInterface( layer_template, wearable ),
- mLocalTextureObject(lto)
-{
-}
-
-LLTexLayer::~LLTexLayer()
-{
- // mParamAlphaList and mParamColorList are LLViewerVisualParam's and get
- // deleted with ~LLCharacter()
- //std::for_each(mParamAlphaList.begin(), mParamAlphaList.end(), DeletePointer());
- //std::for_each(mParamColorList.begin(), mParamColorList.end(), DeletePointer());
-
- for( alpha_cache_t::iterator iter = mAlphaCache.begin();
- iter != mAlphaCache.end(); iter++ )
- {
- U8* alpha_data = iter->second;
- delete [] alpha_data;
- }
-
-}
-
-//-----------------------------------------------------------------------------
-// setInfo
-//-----------------------------------------------------------------------------
-
-BOOL LLTexLayer::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
-{
- return LLTexLayerInterface::setInfo(info, wearable);
-}
-
-//static
-void LLTexLayer::calculateTexLayerColor(const param_color_list_t &param_list, LLColor4 &net_color)
-{
- for (param_color_list_t::const_iterator iter = param_list.begin();
- iter != param_list.end(); iter++)
- {
- const LLTexLayerParamColor* param = *iter;
- LLColor4 param_net = param->getNetColor();
- const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)param->getInfo();
- switch(info->getOperation())
- {
- case LLTexLayerParamColor::OP_ADD:
- net_color += param_net;
- break;
- case LLTexLayerParamColor::OP_MULTIPLY:
- net_color = net_color * param_net;
- break;
- case LLTexLayerParamColor::OP_BLEND:
- net_color = lerp(net_color, param_net, param->getWeight());
- break;
- default:
- llassert(0);
- break;
- }
- }
- net_color.clamp();
-}
-
-/*virtual*/ void LLTexLayer::deleteCaches()
-{
- // Only need to delete caches for alpha params. Color params don't hold extra memory
- for (param_alpha_list_t::iterator iter = mParamAlphaList.begin();
- iter != mParamAlphaList.end(); iter++ )
- {
- LLTexLayerParamAlpha* param = *iter;
- param->deleteCaches();
- }
-}
-
-BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
-{
- LLGLEnable color_mat(GL_COLOR_MATERIAL);
- gPipeline.disableLights();
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- LLColor4 net_color;
- BOOL color_specified = findNetColor(&net_color);
-
- if (mTexLayerSet->getAvatar()->mIsDummy)
- {
- color_specified = true;
- net_color = LLVOAvatar::getDummyColor();
- }
-
- BOOL success = TRUE;
-
- // If you can't see the layer, don't render it.
- if( is_approx_zero( net_color.mV[VW] ) )
- {
- return success;
- }
-
- BOOL alpha_mask_specified = FALSE;
- param_alpha_list_t::const_iterator iter = mParamAlphaList.begin();
- if( iter != mParamAlphaList.end() )
- {
- // If we have alpha masks, but we're skipping all of them, skip the whole layer.
- // However, we can't do this optimization if we have morph masks that need updating.
-/* if (!mHasMorph)
- {
- BOOL skip_layer = TRUE;
-
- while( iter != mParamAlphaList.end() )
- {
- const LLTexLayerParamAlpha* param = *iter;
-
- if( !param->getSkip() )
- {
- skip_layer = FALSE;
- break;
- }
-
- iter++;
- }
-
- if( skip_layer )
- {
- return success;
- }
- }//*/
-
- renderMorphMasks(x, y, width, height, net_color);
- alpha_mask_specified = TRUE;
- gGL.flush();
- gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ONE_MINUS_DEST_ALPHA);
- }
-
- gGL.color4fv( net_color.mV);
-
- if( getInfo()->mWriteAllChannels )
- {
- gGL.flush();
- gGL.setSceneBlendType(LLRender::BT_REPLACE);
- }
-
- if( (getInfo()->mLocalTexture != -1) && !getInfo()->mUseLocalTextureAlphaOnly )
- {
- {
- LLViewerTexture* tex = NULL;
- if (mLocalTextureObject && mLocalTextureObject->getImage())
- {
- tex = mLocalTextureObject->getImage();
- if (mLocalTextureObject->getID() == IMG_DEFAULT_AVATAR)
- {
- tex = NULL;
- }
- }
- else
- {
- llinfos << "lto not defined or image not defined: " << getInfo()->getLocalTexture() << " lto: " << mLocalTextureObject << llendl;
- }
-// if( mTexLayerSet->getAvatar()->getLocalTextureGL((ETextureIndex)getInfo()->mLocalTexture, &image_gl ) )
- {
- if( tex )
- {
- bool no_alpha_test = getInfo()->mWriteAllChannels;
- LLGLDisable alpha_test(no_alpha_test ? GL_ALPHA_TEST : 0);
- if (use_shaders && no_alpha_test)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
-
- LLTexUnit::eTextureAddressMode old_mode = tex->getAddressMode();
-
- gGL.getTexUnit(0)->bind(tex, TRUE);
- gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
-
- gl_rect_2d_simple_tex( width, height );
-
- gGL.getTexUnit(0)->setTextureAddressMode(old_mode);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- if (use_shaders && no_alpha_test)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
-
- }
- }
-// else
-// {
-// success = FALSE;
-// }
- }
- }
-
- if( !getInfo()->mStaticImageFileName.empty() )
- {
- {
- LLViewerTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
- if( tex )
- {
- gGL.getTexUnit(0)->bind(tex, TRUE);
- gl_rect_2d_simple_tex( width, height );
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- }
- else
- {
- success = FALSE;
- }
- }
- }
-
- if(((-1 == getInfo()->mLocalTexture) ||
- getInfo()->mUseLocalTextureAlphaOnly) &&
- getInfo()->mStaticImageFileName.empty() &&
- color_specified )
- {
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4fv( net_color.mV );
- gl_rect_2d_simple( width, height );
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
-
- if( alpha_mask_specified || getInfo()->mWriteAllChannels )
- {
- // Restore standard blend func value
- gGL.flush();
- gGL.setSceneBlendType(LLRender::BT_ALPHA);
- stop_glerror();
- }
-
- if( !success )
- {
- llinfos << "LLTexLayer::render() partial: " << getInfo()->mName << llendl;
- }
- return success;
-}
-
-const U8* LLTexLayer::getAlphaData() const
-{
- LLCRC alpha_mask_crc;
- const LLUUID& uuid = getUUID();
- alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES);
-
- for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
- {
- const LLTexLayerParamAlpha* param = *iter;
- // MULTI-WEARABLE: verify visual parameters used here
- F32 param_weight = param->getWeight();
- alpha_mask_crc.update((U8*)&param_weight, sizeof(F32));
- }
-
- U32 cache_index = alpha_mask_crc.getCRC();
-
- alpha_cache_t::const_iterator iter2 = mAlphaCache.find(cache_index);
- return (iter2 == mAlphaCache.end()) ? 0 : iter2->second;
-}
-
-BOOL LLTexLayer::findNetColor(LLColor4* net_color) const
-{
- // Color is either:
- // * one or more color parameters (weighted colors) (which may make use of a global color or fixed color)
- // * a reference to a global color
- // * a fixed color with non-zero alpha
- // * opaque white (the default)
-
- if( !mParamColorList.empty() )
- {
- if( !getGlobalColor().empty() )
- {
- net_color->setVec( mTexLayerSet->getAvatar()->getGlobalColor( getInfo()->mGlobalColor ) );
- }
- else if (getInfo()->mFixedColor.mV[VW])
- {
- net_color->setVec( getInfo()->mFixedColor );
- }
- else
- {
- net_color->setVec( 0.f, 0.f, 0.f, 0.f );
- }
-
- calculateTexLayerColor(mParamColorList, *net_color);
- return TRUE;
- }
-
- if( !getGlobalColor().empty() )
- {
- net_color->setVec( mTexLayerSet->getAvatar()->getGlobalColor( getGlobalColor() ) );
- return TRUE;
- }
-
- if( getInfo()->mFixedColor.mV[VW] )
- {
- net_color->setVec( getInfo()->mFixedColor );
- return TRUE;
- }
-
- net_color->setToWhite();
-
- return FALSE; // No need to draw a separate colored polygon
-}
-
-BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
-{
- BOOL success = TRUE;
-
- gGL.flush();
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- if( !getInfo()->mStaticImageFileName.empty() )
- {
- LLViewerTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask );
- if( tex )
- {
- LLGLSNoAlphaTest gls_no_alpha_test;
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
- gGL.getTexUnit(0)->bind(tex, TRUE);
- gl_rect_2d_simple_tex( width, height );
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
- else
- {
- success = FALSE;
- }
- }
- else
- {
- if (getInfo()->mLocalTexture >=0 && getInfo()->mLocalTexture < TEX_NUM_INDICES)
- {
- LLViewerTexture* tex = mLocalTextureObject->getImage();
- if (tex)
- {
- LLGLSNoAlphaTest gls_no_alpha_test;
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
- gGL.getTexUnit(0)->bind(tex);
- gl_rect_2d_simple_tex( width, height );
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- success = TRUE;
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
- }
- }
- }
-
- return success;
-}
-
-/*virtual*/ void LLTexLayer::gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height)
-{
- addAlphaMask(data, originX, originY, width, height);
-}
-
-BOOL LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLColor4 &layer_color)
-{
- BOOL success = TRUE;
-
- llassert( !mParamAlphaList.empty() );
-
- bool use_shaders = LLGLSLShader::sNoFixedFunction;
-
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.f);
- }
-
- gGL.setColorMask(false, true);
-
- LLTexLayerParamAlpha* first_param = *mParamAlphaList.begin();
- // Note: if the first param is a mulitply, multiply against the current buffer's alpha
- if( !first_param || !first_param->getMultiplyBlend() )
- {
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-
- // Clear the alpha
- gGL.flush();
- gGL.setSceneBlendType(LLRender::BT_REPLACE);
-
- gGL.color4f( 0.f, 0.f, 0.f, 0.f );
- gl_rect_2d_simple( width, height );
- }
-
- // Accumulate alphas
- LLGLSNoAlphaTest gls_no_alpha_test;
- gGL.color4f( 1.f, 1.f, 1.f, 1.f );
- for (param_alpha_list_t::iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
- {
- LLTexLayerParamAlpha* param = *iter;
- success &= param->render( x, y, width, height );
- }
-
- // Approximates a min() function
- gGL.flush();
- gGL.setSceneBlendType(LLRender::BT_MULT_ALPHA);
-
- // Accumulate the alpha component of the texture
- if( getInfo()->mLocalTexture != -1 )
- {
- LLViewerTexture* tex = mLocalTextureObject->getImage();
- if( tex && (tex->getComponents() == 4) )
- {
- LLGLSNoAlphaTest gls_no_alpha_test;
- LLTexUnit::eTextureAddressMode old_mode = tex->getAddressMode();
-
- gGL.getTexUnit(0)->bind(tex, TRUE);
- gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
-
- gl_rect_2d_simple_tex( width, height );
-
- gGL.getTexUnit(0)->setTextureAddressMode(old_mode);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- }
- }
-
- if( !getInfo()->mStaticImageFileName.empty() )
- {
- LLViewerTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
- if( tex )
- {
- if( (tex->getComponents() == 4) ||
- ( (tex->getComponents() == 1) && getInfo()->mStaticImageIsMask ) )
- {
- LLGLSNoAlphaTest gls_no_alpha_test;
- gGL.getTexUnit(0)->bind(tex, TRUE);
- gl_rect_2d_simple_tex( width, height );
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- }
- }
- }
-
- // Draw a rectangle with the layer color to multiply the alpha by that color's alpha.
- // Note: we're still using gGL.blendFunc( GL_DST_ALPHA, GL_ZERO );
- if (layer_color.mV[VW] != 1.f)
- {
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4fv(layer_color.mV);
- gl_rect_2d_simple( width, height );
- }
-
- if (use_shaders)
- {
- gAlphaMaskProgram.setMinimumAlpha(0.004f);
- }
-
- LLGLSUIDefault gls_ui;
-
- gGL.setColorMask(true, true);
-
- if (hasMorph() && success)
- {
- LLCRC alpha_mask_crc;
- const LLUUID& uuid = getUUID();
- alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES);
-
- for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
- {
- const LLTexLayerParamAlpha* param = *iter;
- F32 param_weight = param->getWeight();
- alpha_mask_crc.update((U8*)&param_weight, sizeof(F32));
- }
-
- U32 cache_index = alpha_mask_crc.getCRC();
- U8* alpha_data = get_if_there(mAlphaCache,cache_index,(U8*)NULL);
- if (!alpha_data)
- {
- // clear out a slot if we have filled our cache
- S32 max_cache_entries = getTexLayerSet()->getAvatar()->isSelf() ? 4 : 1;
- while ((S32)mAlphaCache.size() >= max_cache_entries)
- {
- alpha_cache_t::iterator iter2 = mAlphaCache.begin(); // arbitrarily grab the first entry
- alpha_data = iter2->second;
- delete [] alpha_data;
- mAlphaCache.erase(iter2);
- }
- alpha_data = new U8[width * height];
- mAlphaCache[cache_index] = alpha_data;
- glReadPixels(x, y, width, height, GL_ALPHA, GL_UNSIGNED_BYTE, alpha_data);
- }
-
- getTexLayerSet()->getAvatar()->dirtyMesh();
-
- mMorphMasksValid = TRUE;
- getTexLayerSet()->applyMorphMask(alpha_data, width, height, 1);
- }
-
- return success;
-}
-
-void LLTexLayer::addAlphaMask(U8 *data, S32 originX, S32 originY, S32 width, S32 height)
-{
- S32 size = width * height;
- const U8* alphaData = getAlphaData();
- if (!alphaData && hasAlphaParams())
- {
- LLColor4 net_color;
- findNetColor( &net_color );
- // TODO: eliminate need for layer morph mask valid flag
- invalidateMorphMasks();
- renderMorphMasks(originX, originY, width, height, net_color);
- alphaData = getAlphaData();
- }
- if (alphaData)
- {
- for( S32 i = 0; i < size; i++ )
- {
- U8 curAlpha = data[i];
- U16 resultAlpha = curAlpha;
- resultAlpha *= (alphaData[i] + 1);
- resultAlpha = resultAlpha >> 8;
- data[i] = (U8)resultAlpha;
- }
- }
-}
-
-/*virtual*/ BOOL LLTexLayer::isInvisibleAlphaMask() const
-{
- if (mLocalTextureObject)
- {
- if (mLocalTextureObject->getID() == IMG_INVISIBLE)
- {
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-LLUUID LLTexLayer::getUUID() const
-{
- LLUUID uuid;
- if( getInfo()->mLocalTexture != -1 )
- {
- LLViewerTexture* tex = mLocalTextureObject->getImage();
- if (tex)
- {
- uuid = mLocalTextureObject->getID();
- }
- }
- if( !getInfo()->mStaticImageFileName.empty() )
- {
- LLViewerTexture* tex = LLTexLayerStaticImageList::getInstance()->getTexture(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
- if( tex )
- {
- uuid = tex->getID();
- }
- }
- return uuid;
-}
-
-
-//-----------------------------------------------------------------------------
-// LLTexLayerTemplate
-// A single texture layer, consisting of:
-// * color, consisting of either
-// * one or more color parameters (weighted colors)
-// * a reference to a global color
-// * a fixed color with non-zero alpha
-// * opaque white (the default)
-// * (optional) a texture defined by either
-// * a GUID
-// * a texture entry index (TE)
-// * (optional) one or more alpha parameters (weighted alpha textures)
-//-----------------------------------------------------------------------------
-LLTexLayerTemplate::LLTexLayerTemplate(LLTexLayerSet* layer_set) :
- LLTexLayerInterface(layer_set)
-{
-}
-
-LLTexLayerTemplate::LLTexLayerTemplate(const LLTexLayerTemplate &layer) :
- LLTexLayerInterface(layer)
-{
-}
-
-LLTexLayerTemplate::~LLTexLayerTemplate()
-{
-}
-
-//-----------------------------------------------------------------------------
-// setInfo
-//-----------------------------------------------------------------------------
-
-/*virtual*/ BOOL LLTexLayerTemplate::setInfo(const LLTexLayerInfo* info, LLWearable* wearable )
-{
- return LLTexLayerInterface::setInfo(info, wearable);
-}
-
-U32 LLTexLayerTemplate::updateWearableCache() const
-{
- mWearableCache.clear();
-
- S32 te = mInfo->mLocalTexture;
- if (te == -1)
- {
- //this isn't a cloneable layer
- return 0;
- }
- LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType((ETextureIndex)te);
- U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);
- U32 added = 0;
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLWearable* wearable = gAgentWearables.getWearable(wearable_type, i);
- if (!wearable)
- {
- continue;
- }
- mWearableCache.push_back(wearable);
- added++;
- }
- return added;
-}
-LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const
-{
- if (mWearableCache.size() <= i)
- {
- return NULL;
- }
- LLWearable *wearable = mWearableCache[i];
- LLLocalTextureObject *lto = NULL;
- LLTexLayer *layer = NULL;
- if (wearable)
- {
- lto = wearable->getLocalTextureObject(mInfo->mLocalTexture);
- }
- if (lto)
- {
- layer = lto->getTexLayer(getName());
- }
- return layer;
-}
-
-/*virtual*/ BOOL LLTexLayerTemplate::render(S32 x, S32 y, S32 width, S32 height)
-{
- if(!mInfo)
- {
- return FALSE ;
- }
-
- BOOL success = TRUE;
- updateWearableCache();
- for (wearable_cache_t::const_iterator iter = mWearableCache.begin(); iter!= mWearableCache.end(); iter++)
- {
- LLWearable* wearable = NULL;
- LLLocalTextureObject *lto = NULL;
- LLTexLayer *layer = NULL;
- wearable = *iter;
- if (wearable)
- {
- lto = wearable->getLocalTextureObject(mInfo->mLocalTexture);
- }
- if (lto)
- {
- layer = lto->getTexLayer(getName());
- }
- if (layer)
- {
- wearable->writeToAvatar();
- layer->setLTO(lto);
- success &= layer->render(x,y,width,height);
- }
- }
-
- return success;
-}
-
-/*virtual*/ BOOL LLTexLayerTemplate::blendAlphaTexture( S32 x, S32 y, S32 width, S32 height) // Multiplies a single alpha texture against the frame buffer
-{
- BOOL success = TRUE;
- U32 num_wearables = updateWearableCache();
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLTexLayer *layer = getLayer(i);
- if (layer)
- {
- success &= layer->blendAlphaTexture(x,y,width,height);
- }
- }
- return success;
-}
-
-/*virtual*/ void LLTexLayerTemplate::gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height)
-{
- U32 num_wearables = updateWearableCache();
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLTexLayer *layer = getLayer(i);
- if (layer)
- {
- layer->addAlphaMask(data, originX, originY, width, height);
- }
- }
-}
-
-/*virtual*/ void LLTexLayerTemplate::setHasMorph(BOOL newval)
-{
- mHasMorph = newval;
- U32 num_wearables = updateWearableCache();
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLTexLayer *layer = getLayer(i);
- if (layer)
- {
- layer->setHasMorph(newval);
- }
- }
-}
-
-/*virtual*/ void LLTexLayerTemplate::deleteCaches()
-{
- U32 num_wearables = updateWearableCache();
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLTexLayer *layer = getLayer(i);
- if (layer)
- {
- layer->deleteCaches();
- }
- }
-}
-
-/*virtual*/ BOOL LLTexLayerTemplate::isInvisibleAlphaMask() const
-{
- U32 num_wearables = updateWearableCache();
- for (U32 i = 0; i < num_wearables; i++)
- {
- LLTexLayer *layer = getLayer(i);
- if (layer)
- {
- if (layer->isInvisibleAlphaMask())
- {
- return TRUE;
- }
- }
- }
-
- return FALSE;
-}
-
-
-//-----------------------------------------------------------------------------
-// finds a specific layer based on a passed in name
-//-----------------------------------------------------------------------------
-LLTexLayerInterface* LLTexLayerSet::findLayerByName(const std::string& name)
-{
- for (layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- if (layer->getName() == name)
- {
- return layer;
- }
- }
- for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++ )
- {
- LLTexLayerInterface* layer = *iter;
- if (layer->getName() == name)
- {
- return layer;
- }
- }
- return NULL;
-}
-
-void LLTexLayerSet::cloneTemplates(LLLocalTextureObject *lto, LLVOAvatarDefines::ETextureIndex tex_index, LLWearable *wearable)
-{
- // initialize all texlayers with this texture type for this LTO
- for( LLTexLayerSet::layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
- {
- LLTexLayerTemplate* layer = (LLTexLayerTemplate*)*iter;
- if (layer->getInfo()->getLocalTexture() == (S32) tex_index)
- {
- lto->addTexLayer(layer, wearable);
- }
- }
- for( LLTexLayerSet::layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++ )
- {
- LLTexLayerTemplate* layer = (LLTexLayerTemplate*)*iter;
- if (layer->getInfo()->getLocalTexture() == (S32) tex_index)
- {
- lto->addTexLayer(layer, wearable);
- }
- }
-}
-//-----------------------------------------------------------------------------
-// LLTexLayerStaticImageList
-//-----------------------------------------------------------------------------
-
-LLTexLayerStaticImageList::LLTexLayerStaticImageList() :
- mGLBytes(0),
- mTGABytes(0),
- mImageNames(16384)
-{
-}
-
-LLTexLayerStaticImageList::~LLTexLayerStaticImageList()
-{
- deleteCachedImages();
-}
-
-void LLTexLayerStaticImageList::dumpByteCount() const
-{
- llinfos << "Avatar Static Textures " <<
- "KB GL:" << (mGLBytes / 1024) <<
- "KB TGA:" << (mTGABytes / 1024) << "KB" << llendl;
-}
-
-void LLTexLayerStaticImageList::deleteCachedImages()
-{
- if( mGLBytes || mTGABytes )
- {
- llinfos << "Clearing Static Textures " <<
- "KB GL:" << (mGLBytes / 1024) <<
- "KB TGA:" << (mTGABytes / 1024) << "KB" << llendl;
-
- //mStaticImageLists uses LLPointers, clear() will cause deletion
-
- mStaticImageListTGA.clear();
- mStaticImageList.clear();
-
- mGLBytes = 0;
- mTGABytes = 0;
- }
-}
-
-// Note: in general, for a given image image we'll call either getImageTga() or getTexture().
-// We call getImageTga() if the image is used as an alpha gradient.
-// Otherwise, we call getTexture()
-
-// Returns an LLImageTGA that contains the encoded data from a tga file named file_name.
-// Caches the result to speed identical subsequent requests.
-LLImageTGA* LLTexLayerStaticImageList::getImageTGA(const std::string& file_name)
-{
- const char *namekey = mImageNames.addString(file_name);
- image_tga_map_t::const_iterator iter = mStaticImageListTGA.find(namekey);
- if( iter != mStaticImageListTGA.end() )
- {
- return iter->second;
- }
- else
- {
- std::string path;
- path = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,file_name);
- LLPointer<LLImageTGA> image_tga = new LLImageTGA( path );
- if( image_tga->getDataSize() > 0 )
- {
- mStaticImageListTGA[ namekey ] = image_tga;
- mTGABytes += image_tga->getDataSize();
- return image_tga;
- }
- else
- {
- return NULL;
- }
- }
-}
-
-// Returns a GL Image (without a backing ImageRaw) that contains the decoded data from a tga file named file_name.
-// Caches the result to speed identical subsequent requests.
-LLViewerTexture* LLTexLayerStaticImageList::getTexture(const std::string& file_name, BOOL is_mask)
-{
- LLPointer<LLViewerTexture> tex;
- const char *namekey = mImageNames.addString(file_name);
-
- texture_map_t::const_iterator iter = mStaticImageList.find(namekey);
- if( iter != mStaticImageList.end() )
- {
- tex = iter->second;
- }
- else
- {
- tex = LLViewerTextureManager::getLocalTexture( FALSE );
- LLPointer<LLImageRaw> image_raw = new LLImageRaw;
- if( loadImageRaw( file_name, image_raw ) )
- {
- if( (image_raw->getComponents() == 1) && is_mask )
- {
- // Note: these are static, unchanging images so it's ok to assume
- // that once an image is a mask it's always a mask.
- tex->setExplicitFormat( GL_ALPHA8, GL_ALPHA );
- }
- tex->createGLTexture(0, image_raw, 0, TRUE, LLViewerTexture::LOCAL);
-
- gGL.getTexUnit(0)->bind(tex);
- tex->setAddressMode(LLTexUnit::TAM_CLAMP);
-
- mStaticImageList [ namekey ] = tex;
- mGLBytes += (S32)tex->getWidth() * tex->getHeight() * tex->getComponents();
- }
- else
- {
- tex = NULL;
- }
- }
-
- return tex;
-}
-
-// Reads a .tga file, decodes it, and puts the decoded data in image_raw.
-// Returns TRUE if successful.
-BOOL LLTexLayerStaticImageList::loadImageRaw(const std::string& file_name, LLImageRaw* image_raw)
-{
- BOOL success = FALSE;
- std::string path;
- path = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,file_name);
- LLPointer<LLImageTGA> image_tga = new LLImageTGA( path );
- if( image_tga->getDataSize() > 0 )
- {
- // Copy data from tga to raw.
- success = image_tga->decode( image_raw );
- }
-
- return success;
-}
-
-const std::string LLTexLayerSetBuffer::dumpTextureInfo() const
-{
- if (!isAgentAvatarValid()) return "";
-
- const BOOL is_high_res = !mNeedsUpload;
- const U32 num_low_res = mNumLowresUploads;
- const U32 upload_time = (U32)mNeedsUploadTimer.getElapsedTimeF32();
- const std::string local_texture_info = gAgentAvatarp->debugDumpLocalTextureDataInfo(mTexLayerSet);
-
- std::string status = "CREATING ";
- if (!uploadNeeded()) status = "DONE ";
- if (uploadInProgress()) status = "UPLOADING";
-
- std::string text = llformat("[%s] [HiRes:%d LoRes:%d] [Elapsed:%d] %s",
- status.c_str(),
- is_high_res, num_low_res,
- upload_time,
- local_texture_info.c_str());
- return text;
-}
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
deleted file mode 100644
index 4f43547dae..0000000000
--- a/indra/newview/lltexlayer.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/**
- * @file lltexlayer.h
- * @brief Texture layer classes. Used for avatars.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLTEXLAYER_H
-#define LL_LLTEXLAYER_H
-
-#include <deque>
-#include "lldynamictexture.h"
-#include "llvoavatardefines.h"
-#include "lltexlayerparams.h"
-
-class LLVOAvatar;
-class LLVOAvatarSelf;
-class LLImageTGA;
-class LLImageRaw;
-class LLXmlTreeNode;
-class LLTexLayerSet;
-class LLTexLayerSetInfo;
-class LLTexLayerInfo;
-class LLTexLayerSetBuffer;
-class LLWearable;
-class LLViewerVisualParam;
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerInterface
-//
-// Interface class to generalize functionality shared by LLTexLayer
-// and LLTexLayerTemplate.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerInterface
-{
-public:
- enum ERenderPass
- {
- RP_COLOR,
- RP_BUMP,
- RP_SHINE
- };
-
- LLTexLayerInterface(LLTexLayerSet* const layer_set);
- LLTexLayerInterface(const LLTexLayerInterface &layer, LLWearable *wearable);
- virtual ~LLTexLayerInterface() {}
-
- virtual BOOL render(S32 x, S32 y, S32 width, S32 height) = 0;
- virtual void deleteCaches() = 0;
- virtual BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height) = 0;
- virtual BOOL isInvisibleAlphaMask() const = 0;
-
- const LLTexLayerInfo* getInfo() const { return mInfo; }
- virtual BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // sets mInfo, calls initialization functions
-
- const std::string& getName() const;
- const LLTexLayerSet* const getTexLayerSet() const { return mTexLayerSet; }
- LLTexLayerSet* const getTexLayerSet() { return mTexLayerSet; }
-
- void invalidateMorphMasks();
- virtual void setHasMorph(BOOL newval) { mHasMorph = newval; }
- BOOL hasMorph() const { return mHasMorph; }
- BOOL isMorphValid() const { return mMorphMasksValid; }
-
- void requestUpdate();
- virtual void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height) = 0;
- BOOL hasAlphaParams() const { return !mParamAlphaList.empty(); }
-
- ERenderPass getRenderPass() const;
- BOOL isVisibilityMask() const;
-
-protected:
- const std::string& getGlobalColor() const;
- LLViewerVisualParam* getVisualParamPtr(S32 index) const;
-
-protected:
- LLTexLayerSet* const mTexLayerSet;
- const LLTexLayerInfo* mInfo;
- BOOL mMorphMasksValid;
- BOOL mHasMorph;
-
- // Layers can have either mParamColorList, mGlobalColor, or mFixedColor. They are looked for in that order.
- param_color_list_t mParamColorList;
- param_alpha_list_t mParamAlphaList;
- // mGlobalColor name stored in mInfo
- // mFixedColor value stored in mInfo
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerTemplate
-//
-// Only exists for llvoavatarself.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerTemplate : public LLTexLayerInterface
-{
-public:
- LLTexLayerTemplate(LLTexLayerSet* const layer_set);
- LLTexLayerTemplate(const LLTexLayerTemplate &layer);
- /*virtual*/ ~LLTexLayerTemplate();
- /*virtual*/ BOOL render(S32 x, S32 y, S32 width, S32 height);
- /*virtual*/ BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
- /*virtual*/ BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
- /*virtual*/ void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height);
- /*virtual*/ void setHasMorph(BOOL newval);
- /*virtual*/ void deleteCaches();
- /*virtual*/ BOOL isInvisibleAlphaMask() const;
-protected:
- U32 updateWearableCache() const;
- LLTexLayer* getLayer(U32 i) const;
-private:
- typedef std::vector<LLWearable*> wearable_cache_t;
- mutable wearable_cache_t mWearableCache; // mutable b/c most get- require updating this cache
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayer
-//
-// A single texture layer. Only exists for llvoavatarself.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayer : public LLTexLayerInterface
-{
-public:
- LLTexLayer(LLTexLayerSet* const layer_set);
- LLTexLayer(const LLTexLayer &layer, LLWearable *wearable);
- LLTexLayer(const LLTexLayerTemplate &layer_template, LLLocalTextureObject *lto, LLWearable *wearable);
- /*virtual*/ ~LLTexLayer();
-
- /*virtual*/ BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // This sets mInfo and calls initialization functions
- /*virtual*/ BOOL render(S32 x, S32 y, S32 width, S32 height);
-
- /*virtual*/ void deleteCaches();
- const U8* getAlphaData() const;
-
- BOOL findNetColor(LLColor4* color) const;
- /*virtual*/ BOOL blendAlphaTexture(S32 x, S32 y, S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
- /*virtual*/ void gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height);
- BOOL renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLColor4 &layer_color);
- void addAlphaMask(U8 *data, S32 originX, S32 originY, S32 width, S32 height);
- /*virtual*/ BOOL isInvisibleAlphaMask() const;
-
- void setLTO(LLLocalTextureObject *lto) { mLocalTextureObject = lto; }
- LLLocalTextureObject* getLTO() { return mLocalTextureObject; }
-
- static void calculateTexLayerColor(const param_color_list_t &param_list, LLColor4 &net_color);
-protected:
- LLUUID getUUID() const;
-private:
- typedef std::map<U32, U8*> alpha_cache_t;
- alpha_cache_t mAlphaCache;
- LLLocalTextureObject* mLocalTextureObject;
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerSet
-//
-// An ordered set of texture layers that gets composited into a single texture.
-// Only exists for llvoavatarself.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerSet
-{
- friend class LLTexLayerSetBuffer;
-public:
- LLTexLayerSet(LLVOAvatarSelf* const avatar);
- ~LLTexLayerSet();
-
- const LLTexLayerSetInfo* getInfo() const { return mInfo; }
- BOOL setInfo(const LLTexLayerSetInfo *info); // This sets mInfo and calls initialization functions
-
- BOOL render(S32 x, S32 y, S32 width, S32 height);
- void renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height, bool forceClear = false);
-
- BOOL isBodyRegion(const std::string& region) const;
- LLTexLayerSetBuffer* getComposite();
- const LLTexLayerSetBuffer* getComposite() const; // Do not create one if it doesn't exist.
- void requestUpdate();
- void requestUpload();
- void cancelUpload();
- void updateComposite();
- BOOL isLocalTextureDataAvailable() const;
- BOOL isLocalTextureDataFinal() const;
- void createComposite();
- void destroyComposite();
- void setUpdatesEnabled(BOOL b);
- BOOL getUpdatesEnabled() const { return mUpdatesEnabled; }
- void deleteCaches();
- void gatherMorphMaskAlpha(U8 *data, S32 width, S32 height);
- void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components);
- BOOL isMorphValid() const;
- void invalidateMorphMasks();
- LLTexLayerInterface* findLayerByName(const std::string& name);
- void cloneTemplates(LLLocalTextureObject *lto, LLVOAvatarDefines::ETextureIndex tex_index, LLWearable* wearable);
-
- LLVOAvatarSelf* getAvatar() const { return mAvatar; }
- const std::string getBodyRegionName() const;
- BOOL hasComposite() const { return (mComposite.notNull()); }
- LLVOAvatarDefines::EBakedTextureIndex getBakedTexIndex() { return mBakedTexIndex; }
- void setBakedTexIndex(LLVOAvatarDefines::EBakedTextureIndex index) { mBakedTexIndex = index; }
- BOOL isVisible() const { return mIsVisible; }
-
- static BOOL sHasCaches;
-
-private:
- typedef std::vector<LLTexLayerInterface *> layer_list_t;
- layer_list_t mLayerList;
- layer_list_t mMaskLayerList;
- LLPointer<LLTexLayerSetBuffer> mComposite;
- LLVOAvatarSelf* const mAvatar; // note: backlink only; don't make this an LLPointer.
- BOOL mUpdatesEnabled;
- BOOL mIsVisible;
-
- LLVOAvatarDefines::EBakedTextureIndex mBakedTexIndex;
- const LLTexLayerSetInfo* mInfo;
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerSetInfo
-//
-// Contains shared layer set data.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerSetInfo
-{
- friend class LLTexLayerSet;
-public:
- LLTexLayerSetInfo();
- ~LLTexLayerSetInfo();
- BOOL parseXml(LLXmlTreeNode* node);
- void createVisualParams(LLVOAvatar *avatar);
-private:
- std::string mBodyRegion;
- S32 mWidth;
- S32 mHeight;
- std::string mStaticAlphaFileName;
- BOOL mClearAlpha; // Set alpha to 1 for this layerset (if there is no mStaticAlphaFileName)
- typedef std::vector<LLTexLayerInfo*> layer_info_list_t;
- layer_info_list_t mLayerInfoList;
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerSetBuffer
-//
-// The composite image that a LLTexLayerSet writes to. Each LLTexLayerSet has one.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerSetBuffer : public LLViewerDynamicTexture
-{
- LOG_CLASS(LLTexLayerSetBuffer);
-
-public:
- LLTexLayerSetBuffer(LLTexLayerSet* const owner, S32 width, S32 height);
- virtual ~LLTexLayerSetBuffer();
-
-public:
- /*virtual*/ S8 getType() const;
- BOOL isInitialized(void) const;
- static void dumpTotalByteCount();
- const std::string dumpTextureInfo() const;
- virtual void restoreGLTexture();
- virtual void destroyGLTexture();
-protected:
- void pushProjection() const;
- void popProjection() const;
-private:
- LLTexLayerSet* const mTexLayerSet;
- static S32 sGLByteCount;
-
- //--------------------------------------------------------------------
- // Render
- //--------------------------------------------------------------------
-public:
- /*virtual*/ BOOL needsRender();
-protected:
- BOOL render(S32 x, S32 y, S32 width, S32 height);
- virtual void preRender(BOOL clear_depth);
- virtual void postRender(BOOL success);
- virtual BOOL render();
-
- //--------------------------------------------------------------------
- // Uploads
- //--------------------------------------------------------------------
-public:
- void requestUpload();
- void cancelUpload();
- BOOL uploadNeeded() const; // We need to upload a new texture
- BOOL uploadInProgress() const; // We have started uploading a new texture and are awaiting the result
- BOOL uploadPending() const; // We are expecting a new texture to be uploaded at some point
- static void onTextureUploadComplete(const LLUUID& uuid,
- void* userdata,
- S32 result, LLExtStat ext_status);
-protected:
- BOOL isReadyToUpload() const;
- void doUpload(); // Does a read back and upload.
- void conditionalRestartUploadTimer();
-private:
- BOOL mNeedsUpload; // Whether we need to send our baked textures to the server
- U32 mNumLowresUploads; // Number of times we've sent a lowres version of our baked textures to the server
- BOOL mUploadPending; // Whether we have received back the new baked textures
- LLUUID mUploadID; // The current upload process (null if none).
- LLFrameTimer mNeedsUploadTimer; // Tracks time since upload was requested and performed.
- S32 mUploadFailCount; // Number of consecutive upload failures
- LLFrameTimer mUploadRetryTimer; // Tracks time since last upload failure.
-
- //--------------------------------------------------------------------
- // Updates
- //--------------------------------------------------------------------
-public:
- void requestUpdate();
- BOOL requestUpdateImmediate();
-protected:
- BOOL isReadyToUpdate() const;
- void doUpdate();
- void restartUpdateTimer();
-private:
- BOOL mNeedsUpdate; // Whether we need to locally update our baked textures
- U32 mNumLowresUpdates; // Number of times we've locally updated with lowres version of our baked textures
- LLFrameTimer mNeedsUpdateTimer; // Tracks time since update was requested and performed.
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerStaticImageList
-//
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerStaticImageList : public LLSingleton<LLTexLayerStaticImageList>
-{
-public:
- LLTexLayerStaticImageList();
- ~LLTexLayerStaticImageList();
- LLViewerTexture* getTexture(const std::string& file_name, BOOL is_mask);
- LLImageTGA* getImageTGA(const std::string& file_name);
- void deleteCachedImages();
- void dumpByteCount() const;
-protected:
- BOOL loadImageRaw(const std::string& file_name, LLImageRaw* image_raw);
-private:
- LLStringTable mImageNames;
- typedef std::map<const char*, LLPointer<LLViewerTexture> > texture_map_t;
- texture_map_t mStaticImageList;
- typedef std::map<const char*, LLPointer<LLImageTGA> > image_tga_map_t;
- image_tga_map_t mStaticImageListTGA;
- S32 mGLBytes;
- S32 mTGABytes;
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLBakedUploadData
-//
-// Used by LLTexLayerSetBuffer for a callback.
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-struct LLBakedUploadData
-{
- LLBakedUploadData(const LLVOAvatarSelf* avatar,
- LLTexLayerSet* layerset,
- const LLUUID& id,
- bool highest_res);
- ~LLBakedUploadData() {}
- const LLUUID mID;
- const LLVOAvatarSelf* mAvatar; // note: backlink only; don't LLPointer
- LLTexLayerSet* mTexLayerSet;
- const U64 mStartTime; // for measuring baked texture upload time
- const bool mIsHighestRes; // whether this is a "final" bake, or intermediate low res
-};
-
-#endif // LL_LLTEXLAYER_H
diff --git a/indra/newview/lltexlayerparams.cpp b/indra/newview/lltexlayerparams.cpp
deleted file mode 100644
index 8972827eff..0000000000
--- a/indra/newview/lltexlayerparams.cpp
+++ /dev/null
@@ -1,568 +0,0 @@
-/**
- * @file lltexlayerparams.cpp
- * @brief Texture layer parameters
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "lltexlayerparams.h"
-
-#include "llagentcamera.h"
-#include "llimagetga.h"
-#include "lltexlayer.h"
-#include "llvoavatarself.h"
-#include "llwearable.h"
-#include "llui.h"
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParam
-//-----------------------------------------------------------------------------
-LLTexLayerParam::LLTexLayerParam(LLTexLayerInterface *layer) :
- mTexLayer(layer),
- mAvatar(NULL)
-{
- if (mTexLayer != NULL)
- {
- mAvatar = mTexLayer->getTexLayerSet()->getAvatar();
- }
- else
- {
- llerrs << "LLTexLayerParam constructor passed with NULL reference for layer!" << llendl;
- }
-}
-
-LLTexLayerParam::LLTexLayerParam(LLVOAvatar *avatar) :
- mTexLayer(NULL)
-{
- mAvatar = avatar;
-}
-
-
-BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, BOOL add_to_avatar )
-{
- LLViewerVisualParam::setInfo(info);
-
- if (add_to_avatar)
- {
- mAvatar->addVisualParam( this);
- }
-
- return TRUE;
-}
-
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParamAlpha
-//-----------------------------------------------------------------------------
-
-// static
-LLTexLayerParamAlpha::param_alpha_ptr_list_t LLTexLayerParamAlpha::sInstances;
-
-// static
-void LLTexLayerParamAlpha::dumpCacheByteCount()
-{
- S32 gl_bytes = 0;
- getCacheByteCount( &gl_bytes);
- llinfos << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
-}
-
-// static
-void LLTexLayerParamAlpha::getCacheByteCount(S32* gl_bytes)
-{
- *gl_bytes = 0;
-
- for (param_alpha_ptr_list_t::iterator iter = sInstances.begin();
- iter != sInstances.end(); iter++)
- {
- LLTexLayerParamAlpha* instance = *iter;
- LLViewerTexture* tex = instance->mCachedProcessedTexture;
- if (tex)
- {
- S32 bytes = (S32)tex->getWidth() * tex->getHeight() * tex->getComponents();
-
- if (tex->hasGLTexture())
- {
- *gl_bytes += bytes;
- }
- }
- }
-}
-
-LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLTexLayerInterface* layer) :
- LLTexLayerParam(layer),
- mCachedProcessedTexture(NULL),
- mNeedsCreateTexture(FALSE),
- mStaticImageInvalid(FALSE),
- mAvgDistortionVec(1.f, 1.f, 1.f),
- mCachedEffectiveWeight(0.f)
-{
- sInstances.push_front(this);
-}
-
-LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLVOAvatar* avatar) :
- LLTexLayerParam(avatar),
- mCachedProcessedTexture(NULL),
- mNeedsCreateTexture(FALSE),
- mStaticImageInvalid(FALSE),
- mAvgDistortionVec(1.f, 1.f, 1.f),
- mCachedEffectiveWeight(0.f)
-{
- sInstances.push_front(this);
-}
-
-
-LLTexLayerParamAlpha::~LLTexLayerParamAlpha()
-{
- deleteCaches();
- sInstances.remove(this);
-}
-
-/*virtual*/ LLViewerVisualParam* LLTexLayerParamAlpha::cloneParam(LLWearable* wearable) const
-{
- LLTexLayerParamAlpha *new_param = new LLTexLayerParamAlpha(mTexLayer);
- *new_param = *this;
- return new_param;
-}
-
-void LLTexLayerParamAlpha::deleteCaches()
-{
- mStaticImageTGA = NULL; // deletes image
- mCachedProcessedTexture = NULL;
- mStaticImageRaw = NULL;
- mNeedsCreateTexture = FALSE;
-}
-
-BOOL LLTexLayerParamAlpha::getMultiplyBlend() const
-{
- return ((LLTexLayerParamAlphaInfo *)getInfo())->mMultiplyBlend;
-}
-
-void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL upload_bake)
-{
- if (mIsAnimating || mTexLayer == NULL)
- {
- return;
- }
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- F32 new_weight = llclamp(weight, min_weight, max_weight);
- U8 cur_u8 = F32_to_U8(mCurWeight, min_weight, max_weight);
- U8 new_u8 = F32_to_U8(new_weight, min_weight, max_weight);
- if (cur_u8 != new_u8)
- {
- mCurWeight = new_weight;
-
- if ((mAvatar->getSex() & getSex()) && (mAvatar->isSelf() && !mIsDummy)) // only trigger a baked texture update if we're changing a wearable's visual param.
- {
- if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
- {
- upload_bake = FALSE;
- }
- mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), upload_bake);
- mTexLayer->invalidateMorphMasks();
- }
- }
-}
-
-void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL upload_bake)
-{
- // do not animate dummy parameters
- if (mIsDummy)
- {
- setWeight(target_value, upload_bake);
- return;
- }
-
- mTargetWeight = target_value;
- setWeight(target_value, upload_bake);
- mIsAnimating = TRUE;
- if (mNext)
- {
- mNext->setAnimationTarget(target_value, upload_bake);
- }
-}
-
-void LLTexLayerParamAlpha::animate(F32 delta, BOOL upload_bake)
-{
- if (mNext)
- {
- mNext->animate(delta, upload_bake);
- }
-}
-
-BOOL LLTexLayerParamAlpha::getSkip() const
-{
- if (!mTexLayer)
- {
- return TRUE;
- }
-
- const LLVOAvatar *avatar = mTexLayer->getTexLayerSet()->getAvatar();
-
- if (((LLTexLayerParamAlphaInfo *)getInfo())->mSkipIfZeroWeight)
- {
- F32 effective_weight = (avatar->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
- if (is_approx_zero(effective_weight))
- {
- return TRUE;
- }
- }
-
- LLWearableType::EType type = (LLWearableType::EType)getWearableType();
- if ((type != LLWearableType::WT_INVALID) && !avatar->isWearingWearableType(type))
- {
- return TRUE;
- }
-
- return FALSE;
-}
-
-
-BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
-{
- BOOL success = TRUE;
-
- if (!mTexLayer)
- {
- return success;
- }
-
- F32 effective_weight = (mTexLayer->getTexLayerSet()->getAvatar()->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
- BOOL weight_changed = effective_weight != mCachedEffectiveWeight;
- if (getSkip())
- {
- return success;
- }
-
- LLTexLayerParamAlphaInfo *info = (LLTexLayerParamAlphaInfo *)getInfo();
- gGL.flush();
- if (info->mMultiplyBlend)
- {
- gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); // Multiplication: approximates a min() function
- }
- else
- {
- gGL.setSceneBlendType(LLRender::BT_ADD); // Addition: approximates a max() function
- }
-
- if (!info->mStaticImageFileName.empty() && !mStaticImageInvalid)
- {
- if (mStaticImageTGA.isNull())
- {
- // Don't load the image file until we actually need it the first time. Like now.
- mStaticImageTGA = LLTexLayerStaticImageList::getInstance()->getImageTGA(info->mStaticImageFileName);
- // We now have something in one of our caches
- LLTexLayerSet::sHasCaches |= mStaticImageTGA.notNull() ? TRUE : FALSE;
-
- if (mStaticImageTGA.isNull())
- {
- llwarns << "Unable to load static file: " << info->mStaticImageFileName << llendl;
- mStaticImageInvalid = TRUE; // don't try again.
- return FALSE;
- }
- }
-
- const S32 image_tga_width = mStaticImageTGA->getWidth();
- const S32 image_tga_height = mStaticImageTGA->getHeight();
- if (!mCachedProcessedTexture ||
- (mCachedProcessedTexture->getWidth() != image_tga_width) ||
- (mCachedProcessedTexture->getHeight() != image_tga_height) ||
- (weight_changed))
- {
-// llinfos << "Building Cached Alpha: " << mName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << effective_weight << llendl;
- mCachedEffectiveWeight = effective_weight;
-
- if (!mCachedProcessedTexture)
- {
- mCachedProcessedTexture = LLViewerTextureManager::getLocalTexture(image_tga_width, image_tga_height, 1, FALSE);
-
- // We now have something in one of our caches
- LLTexLayerSet::sHasCaches |= mCachedProcessedTexture ? TRUE : FALSE;
-
- mCachedProcessedTexture->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
- }
-
- // Applies domain and effective weight to data as it is decoded. Also resizes the raw image if needed.
- mStaticImageRaw = NULL;
- mStaticImageRaw = new LLImageRaw;
- mStaticImageTGA->decodeAndProcess(mStaticImageRaw, info->mDomain, effective_weight);
- mNeedsCreateTexture = TRUE;
- }
-
- if (mCachedProcessedTexture)
- {
- {
- // Create the GL texture, and then hang onto it for future use.
- if (mNeedsCreateTexture)
- {
- mCachedProcessedTexture->createGLTexture(0, mStaticImageRaw);
- mNeedsCreateTexture = FALSE;
- gGL.getTexUnit(0)->bind(mCachedProcessedTexture);
- mCachedProcessedTexture->setAddressMode(LLTexUnit::TAM_CLAMP);
- }
-
- LLGLSNoAlphaTest gls_no_alpha_test;
- gGL.getTexUnit(0)->bind(mCachedProcessedTexture);
- gl_rect_2d_simple_tex(width, height);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- stop_glerror();
- }
- }
-
- // Don't keep the cache for other people's avatars
- // (It's not really a "cache" in that case, but the logic is the same)
- if (!mAvatar->isSelf())
- {
- mCachedProcessedTexture = NULL;
- }
- }
- else
- {
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f(0.f, 0.f, 0.f, effective_weight);
- gl_rect_2d_simple(width, height);
- }
-
- return success;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParamAlphaInfo
-//-----------------------------------------------------------------------------
-LLTexLayerParamAlphaInfo::LLTexLayerParamAlphaInfo() :
- mMultiplyBlend(FALSE),
- mSkipIfZeroWeight(FALSE),
- mDomain(0.f)
-{
-}
-
-BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert(node->hasName("param") && node->getChildByName("param_alpha"));
-
- if (!LLViewerVisualParamInfo::parseXml(node))
- return FALSE;
-
- LLXmlTreeNode* param_alpha_node = node->getChildByName("param_alpha");
- if (!param_alpha_node)
- {
- return FALSE;
- }
-
- static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
- if (param_alpha_node->getFastAttributeString(tga_file_string, mStaticImageFileName))
- {
- // Don't load the image file until it's actually needed.
- }
-// else
-// {
-// llwarns << "<param_alpha> element is missing tga_file attribute." << llendl;
-// }
-
- static LLStdStringHandle multiply_blend_string = LLXmlTree::addAttributeString("multiply_blend");
- param_alpha_node->getFastAttributeBOOL(multiply_blend_string, mMultiplyBlend);
-
- static LLStdStringHandle skip_if_zero_string = LLXmlTree::addAttributeString("skip_if_zero");
- param_alpha_node->getFastAttributeBOOL(skip_if_zero_string, mSkipIfZeroWeight);
-
- static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain");
- param_alpha_node->getFastAttributeF32(domain_string, mDomain);
-
- return TRUE;
-}
-
-
-
-
-LLTexLayerParamColor::LLTexLayerParamColor(LLTexLayerInterface* layer) :
- LLTexLayerParam(layer),
- mAvgDistortionVec(1.f, 1.f, 1.f)
-{
-}
-
-LLTexLayerParamColor::LLTexLayerParamColor(LLVOAvatar *avatar) :
- LLTexLayerParam(avatar),
- mAvgDistortionVec(1.f, 1.f, 1.f)
-{
-}
-
-LLTexLayerParamColor::~LLTexLayerParamColor()
-{
-}
-
-/*virtual*/ LLViewerVisualParam* LLTexLayerParamColor::cloneParam(LLWearable* wearable) const
-{
- LLTexLayerParamColor *new_param = new LLTexLayerParamColor(mTexLayer);
- *new_param = *this;
- return new_param;
-}
-
-LLColor4 LLTexLayerParamColor::getNetColor() const
-{
- const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)getInfo();
-
- llassert(info->mNumColors >= 1);
-
- F32 effective_weight = (mAvatar && (mAvatar->getSex() & getSex())) ? mCurWeight : getDefaultWeight();
-
- S32 index_last = info->mNumColors - 1;
- F32 scaled_weight = effective_weight * index_last;
- S32 index_start = (S32) scaled_weight;
- S32 index_end = index_start + 1;
- if (index_start == index_last)
- {
- return info->mColors[index_last];
- }
- else
- {
- F32 weight = scaled_weight - index_start;
- const LLColor4 *start = &info->mColors[ index_start ];
- const LLColor4 *end = &info->mColors[ index_end ];
- return LLColor4((1.f - weight) * start->mV[VX] + weight * end->mV[VX],
- (1.f - weight) * start->mV[VY] + weight * end->mV[VY],
- (1.f - weight) * start->mV[VZ] + weight * end->mV[VZ],
- (1.f - weight) * start->mV[VW] + weight * end->mV[VW]);
- }
-}
-
-void LLTexLayerParamColor::setWeight(F32 weight, BOOL upload_bake)
-{
- if (mIsAnimating)
- {
- return;
- }
-
- const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)getInfo();
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- F32 new_weight = llclamp(weight, min_weight, max_weight);
- U8 cur_u8 = F32_to_U8(mCurWeight, min_weight, max_weight);
- U8 new_u8 = F32_to_U8(new_weight, min_weight, max_weight);
- if (cur_u8 != new_u8)
- {
- mCurWeight = new_weight;
-
- if (info->mNumColors <= 0)
- {
- // This will happen when we set the default weight the first time.
- return;
- }
-
- if ((mAvatar->getSex() & getSex()) && (mAvatar->isSelf() && !mIsDummy)) // only trigger a baked texture update if we're changing a wearable's visual param.
- {
- onGlobalColorChanged(upload_bake);
- if (mTexLayer)
- {
- mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), upload_bake);
- }
- }
-
-// llinfos << "param " << mName << " = " << new_weight << llendl;
- }
-}
-
-void LLTexLayerParamColor::setAnimationTarget(F32 target_value, BOOL upload_bake)
-{
- // set value first then set interpolating flag to ignore further updates
- mTargetWeight = target_value;
- setWeight(target_value, upload_bake);
- mIsAnimating = TRUE;
- if (mNext)
- {
- mNext->setAnimationTarget(target_value, upload_bake);
- }
-}
-
-void LLTexLayerParamColor::animate(F32 delta, BOOL upload_bake)
-{
- if (mNext)
- {
- mNext->animate(delta, upload_bake);
- }
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParamColorInfo
-//-----------------------------------------------------------------------------
-LLTexLayerParamColorInfo::LLTexLayerParamColorInfo() :
- mOperation(LLTexLayerParamColor::OP_ADD),
- mNumColors(0)
-{
-}
-
-BOOL LLTexLayerParamColorInfo::parseXml(LLXmlTreeNode *node)
-{
- llassert(node->hasName("param") && node->getChildByName("param_color"));
-
- if (!LLViewerVisualParamInfo::parseXml(node))
- return FALSE;
-
- LLXmlTreeNode* param_color_node = node->getChildByName("param_color");
- if (!param_color_node)
- {
- return FALSE;
- }
-
- std::string op_string;
- static LLStdStringHandle operation_string = LLXmlTree::addAttributeString("operation");
- if (param_color_node->getFastAttributeString(operation_string, op_string))
- {
- LLStringUtil::toLower(op_string);
- if (op_string == "add") mOperation = LLTexLayerParamColor::OP_ADD;
- else if (op_string == "multiply") mOperation = LLTexLayerParamColor::OP_MULTIPLY;
- else if (op_string == "blend") mOperation = LLTexLayerParamColor::OP_BLEND;
- }
-
- mNumColors = 0;
-
- LLColor4U color4u;
- for (LLXmlTreeNode* child = param_color_node->getChildByName("value");
- child;
- child = param_color_node->getNextNamedChild())
- {
- if ((mNumColors < MAX_COLOR_VALUES))
- {
- static LLStdStringHandle color_string = LLXmlTree::addAttributeString("color");
- if (child->getFastAttributeColor4U(color_string, color4u))
- {
- mColors[ mNumColors ].setVec(color4u);
- mNumColors++;
- }
- }
- }
- if (!mNumColors)
- {
- llwarns << "<param_color> is missing <value> sub-elements" << llendl;
- return FALSE;
- }
-
- if ((mOperation == LLTexLayerParamColor::OP_BLEND) && (mNumColors != 1))
- {
- llwarns << "<param_color> with operation\"blend\" must have exactly one <value>" << llendl;
- return FALSE;
- }
-
- return TRUE;
-}
diff --git a/indra/newview/lltexlayerparams.h b/indra/newview/lltexlayerparams.h
deleted file mode 100644
index c812199796..0000000000
--- a/indra/newview/lltexlayerparams.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- * @file lltexlayerparams.h
- * @brief Texture layer parameters, used by lltexlayer.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLTEXLAYERPARAMS_H
-#define LL_LLTEXLAYERPARAMS_H
-
-#include "llviewervisualparam.h"
-
-class LLImageRaw;
-class LLImageTGA;
-class LLTexLayer;
-class LLTexLayerInterface;
-class LLViewerTexture;
-class LLVOAvatar;
-class LLWearable;
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerParam
-//
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-class LLTexLayerParam : public LLViewerVisualParam
-{
-public:
- LLTexLayerParam(LLTexLayerInterface *layer);
- LLTexLayerParam(LLVOAvatar *avatar);
- /*virtual*/ BOOL setInfo(LLViewerVisualParamInfo *info, BOOL add_to_avatar );
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const = 0;
-
-protected:
- LLTexLayerInterface* mTexLayer;
- LLVOAvatar* mAvatar;
-};
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerParamAlpha
-//
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LL_ALIGN_PREFIX(16)
-class LLTexLayerParamAlpha : public LLTexLayerParam
-{
-public:
- LLTexLayerParamAlpha( LLTexLayerInterface* layer );
- LLTexLayerParamAlpha( LLVOAvatar* avatar );
- /*virtual*/ ~LLTexLayerParamAlpha();
-
- void* operator new(size_t size)
- {
- return ll_aligned_malloc_16(size);
- }
-
- void operator delete(void* ptr)
- {
- ll_aligned_free_16(ptr);
- }
-
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex avatar_sex ) {}
- /*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
- /*virtual*/ void setAnimationTarget(F32 target_value, BOOL upload_bake);
- /*virtual*/ void animate(F32 delta, BOOL upload_bake);
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion() { return 1.f; }
- /*virtual*/ const LLVector4a& getAvgDistortion() { return mAvgDistortionVec; }
- /*virtual*/ F32 getMaxDistortion() { return 3.f; }
- /*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector4a(1.f, 1.f, 1.f);}
- /*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
- /*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
-
- // New functions
- BOOL render( S32 x, S32 y, S32 width, S32 height );
- BOOL getSkip() const;
- void deleteCaches();
- BOOL getMultiplyBlend() const;
-
-private:
- LLPointer<LLViewerTexture> mCachedProcessedTexture;
- LLPointer<LLImageTGA> mStaticImageTGA;
- LLPointer<LLImageRaw> mStaticImageRaw;
- BOOL mNeedsCreateTexture;
- BOOL mStaticImageInvalid;
- LL_ALIGN_16(LLVector4a mAvgDistortionVec);
- F32 mCachedEffectiveWeight;
-
-public:
- // Global list of instances for gathering statistics
- static void dumpCacheByteCount();
- static void getCacheByteCount( S32* gl_bytes );
-
- typedef std::list< LLTexLayerParamAlpha* > param_alpha_ptr_list_t;
- static param_alpha_ptr_list_t sInstances;
-} LL_ALIGN_POSTFIX(16);
-class LLTexLayerParamAlphaInfo : public LLViewerVisualParamInfo
-{
- friend class LLTexLayerParamAlpha;
-public:
- LLTexLayerParamAlphaInfo();
- /*virtual*/ ~LLTexLayerParamAlphaInfo() {};
-
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
-
-private:
- std::string mStaticImageFileName;
- BOOL mMultiplyBlend;
- BOOL mSkipIfZeroWeight;
- F32 mDomain;
-};
-//
-// LLTexLayerParamAlpha
-//-----------------------------------------------------------------------------
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// LLTexLayerParamColor
-//
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-LL_ALIGN_PREFIX(16)
-class LLTexLayerParamColor : public LLTexLayerParam
-{
-public:
- enum EColorOperation
- {
- OP_ADD = 0,
- OP_MULTIPLY = 1,
- OP_BLEND = 2,
- OP_COUNT = 3 // Number of operations
- };
-
- LLTexLayerParamColor( LLTexLayerInterface* layer );
- LLTexLayerParamColor( LLVOAvatar* avatar );
-
- void* operator new(size_t size)
- {
- return ll_aligned_malloc_16(size);
- }
-
- void operator delete(void* ptr)
- {
- ll_aligned_free_16(ptr);
- }
-
- /* virtual */ ~LLTexLayerParamColor();
-
- /*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex avatar_sex ) {}
- /*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
- /*virtual*/ void setAnimationTarget(F32 target_value, BOOL upload_bake);
- /*virtual*/ void animate(F32 delta, BOOL upload_bake);
-
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion() { return 1.f; }
- /*virtual*/ const LLVector4a& getAvgDistortion() { return mAvgDistortionVec; }
- /*virtual*/ F32 getMaxDistortion() { return 3.f; }
- /*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector4a(1.f, 1.f, 1.f); }
- /*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
- /*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
-
- // New functions
- LLColor4 getNetColor() const;
-protected:
- virtual void onGlobalColorChanged(bool upload_bake) {}
-private:
- LL_ALIGN_16(LLVector4a mAvgDistortionVec);
-} LL_ALIGN_POSTFIX(16);
-
-class LLTexLayerParamColorInfo : public LLViewerVisualParamInfo
-{
- friend class LLTexLayerParamColor;
-
-public:
- LLTexLayerParamColorInfo();
- virtual ~LLTexLayerParamColorInfo() {};
- BOOL parseXml( LLXmlTreeNode* node );
- LLTexLayerParamColor::EColorOperation getOperation() const { return mOperation; }
-private:
- enum { MAX_COLOR_VALUES = 20 };
- LLTexLayerParamColor::EColorOperation mOperation;
- LLColor4 mColors[MAX_COLOR_VALUES];
- S32 mNumColors;
-};
-
-typedef std::vector<LLTexLayerParamColor *> param_color_list_t;
-typedef std::vector<LLTexLayerParamAlpha *> param_alpha_list_t;
-typedef std::vector<LLTexLayerParamColorInfo *> param_color_info_list_t;
-typedef std::vector<LLTexLayerParamAlphaInfo *> param_alpha_info_list_t;
-
-#endif
diff --git a/indra/newview/lltextureatlas.cpp b/indra/newview/lltextureatlas.cpp
index f8c1bca8ae..f8c1bca8ae 100644..100755
--- a/indra/newview/lltextureatlas.cpp
+++ b/indra/newview/lltextureatlas.cpp
diff --git a/indra/newview/lltextureatlas.h b/indra/newview/lltextureatlas.h
index 6b36eb7fe4..6b36eb7fe4 100644..100755
--- a/indra/newview/lltextureatlas.h
+++ b/indra/newview/lltextureatlas.h
diff --git a/indra/newview/lltextureatlasmanager.cpp b/indra/newview/lltextureatlasmanager.cpp
index ca9d6da4db..ca9d6da4db 100644..100755
--- a/indra/newview/lltextureatlasmanager.cpp
+++ b/indra/newview/lltextureatlasmanager.cpp
diff --git a/indra/newview/lltextureatlasmanager.h b/indra/newview/lltextureatlasmanager.h
index b643056198..b643056198 100644..100755
--- a/indra/newview/lltextureatlasmanager.h
+++ b/indra/newview/lltextureatlasmanager.h
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 305f6fca0f..305f6fca0f 100644..100755
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h
index e3fc957fd2..e3fc957fd2 100644..100755
--- a/indra/newview/lltexturecache.h
+++ b/indra/newview/lltexturecache.h
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 007eb8e33f..e2d0fdf357 100644..100755
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -571,8 +571,8 @@ void LLFloaterTexturePicker::draw()
mTexturep = NULL;
if(mImageAssetID.notNull())
{
- mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES);
- mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
+ mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID);
+ mTexturep->setBoostLevel(LLGLTexture::BOOST_PREVIEW);
}
if (mTentativeLabel)
@@ -1442,9 +1442,9 @@ void LLTextureCtrl::draw()
}
else if (!mImageAssetID.isNull())
{
- LLPointer<LLViewerFetchedTexture> texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES,LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ LLPointer<LLViewerFetchedTexture> texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES,LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
- texture->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
+ texture->setBoostLevel(LLGLTexture::BOOST_PREVIEW);
texture->forceToSaveRawImage(0) ;
mTexturep = texture;
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index 599d9c70c5..599d9c70c5 100644..100755
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 7de66b139f..be5fde9e2b 100755
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -389,7 +389,8 @@ public:
virtual void onCompleted(LLCore::HttpHandle handle, LLCore::HttpResponse * response);
protected:
- LLTextureFetchWorker(LLTextureFetch* fetcher, const std::string& url, const LLUUID& id, const LLHost& host,
+ LLTextureFetchWorker(LLTextureFetch* fetcher, FTType f_type,
+ const std::string& url, const LLUUID& id, const LLHost& host,
F32 priority, S32 discard, S32 size);
private:
@@ -501,11 +502,13 @@ private:
};
static const char* sStateDescs[];
e_state mState;
+ void setState(e_state new_state);
e_write_to_cache_state mWriteToCacheState;
LLTextureFetch* mFetcher;
LLPointer<LLImageFormatted> mFormattedImage;
LLPointer<LLImageRaw> mRawImage;
LLPointer<LLImageRaw> mAuxImage;
+ FTType mFTType;
LLUUID mID;
LLHost mHost;
std::string mUrl;
@@ -827,6 +830,7 @@ volatile bool LLTextureFetch::svMetricsDataBreak(true); // Start with a data bre
// called from MAIN THREAD
LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
+ FTType f_type, // Fetched image type
const std::string& url, // Optional URL
const LLUUID& id, // Image UUID
const LLHost& host, // Simulator host
@@ -838,6 +842,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
mState(INIT),
mWriteToCacheState(NOT_WRITE),
mFetcher(fetcher),
+ mFTType(f_type),
mID(id),
mHost(host),
mUrl(url),
@@ -1024,7 +1029,7 @@ void LLTextureFetchWorker::setDesiredDiscard(S32 discard, S32 size)
mDesiredSize = llmax(mDesiredSize, TEXTURE_CACHE_ENTRY_SIZE);
if ((prioritize && mState == INIT) || mState == DONE)
{
- mState = INIT;
+ setState(INIT);
U32 work_priority = mWorkPriority | LLWorkerThread::PRIORITY_HIGH;
setPriority(work_priority);
}
@@ -1088,12 +1093,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (mState == INIT || mState == LOAD_FROM_NETWORK || mState == LOAD_FROM_SIMULATOR)
{
+ LL_DEBUGS("Texture") << mID << " abort: mImagePriority < F_ALMOST_ZERO" << llendl;
return true; // abort
}
}
if(mState > CACHE_POST && !mCanUseNET && !mCanUseHTTP)
{
//nowhere to get data, abort.
+ LL_WARNS("Texture") << mID << " abort, nowhere to get data" << llendl;
return true ;
}
@@ -1136,7 +1143,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
clearPackets(); // TODO: Shouldn't be necessary
mCacheReadHandle = LLTextureCache::nullHandle();
mCacheWriteHandle = LLTextureCache::nullHandle();
- mState = LOAD_FROM_TEXTURE_CACHE;
+ setState(LOAD_FROM_TEXTURE_CACHE);
mInCache = FALSE;
mDesiredSize = llmax(mDesiredSize, TEXTURE_CACHE_ENTRY_SIZE); // min desired size is TEXTURE_CACHE_ENTRY_SIZE
LL_DEBUGS("Texture") << mID << ": Priority: " << llformat("%8.0f",mImagePriority)
@@ -1153,7 +1160,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
S32 size = mDesiredSize - offset;
if (size <= 0)
{
- mState = CACHE_POST;
+ setState(CACHE_POST);
return false;
}
mFileSize = 0;
@@ -1171,6 +1178,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
offset, size, responder);
mCacheReadTimer.reset();
}
+/* SH-3980 - disabling caching of server bakes until we can fix the blurring problems */
+/* else if ((mUrl.empty()||mFTType==FTT_SERVER_BAKE) && mFetcher->canLoadFromCache()) */
else if (mUrl.empty() && mFetcher->canLoadFromCache())
{
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it
@@ -1183,18 +1192,13 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
else if(!mUrl.empty() && mCanUseHTTP)
{
- if (!(mUrl.compare(0, 7, "http://") == 0))
- {
- // *TODO:?remove this warning
- llwarns << "Unknown URL Type: " << mUrl << llendl;
- }
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = WAIT_HTTP_RESOURCE;
+ setState(WAIT_HTTP_RESOURCE);
}
else
{
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = LOAD_FROM_NETWORK;
+ setState(LOAD_FROM_NETWORK);
}
}
@@ -1204,7 +1208,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mFetcher->mTextureCache->readComplete(mCacheReadHandle, false))
{
mCacheReadHandle = LLTextureCache::nullHandle();
- mState = CACHE_POST;
+ setState(CACHE_POST);
// fall through
}
else
@@ -1212,6 +1216,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
//
//This should never happen
//
+ LL_DEBUGS("Texture") << mID << " this should never happen" << llendl;
return false;
}
}
@@ -1230,7 +1235,12 @@ bool LLTextureFetchWorker::doWork(S32 param)
// we have enough data, decode it
llassert_always(mFormattedImage->getDataSize() > 0);
mLoadedDiscard = mDesiredDiscard;
- mState = DECODE_IMAGE;
+ if (mLoadedDiscard < 0)
+ {
+ LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << llendl;
+ }
+ setState(DECODE_IMAGE);
mInCache = TRUE;
mWriteToCacheState = NOT_WRITE ;
LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize()
@@ -1243,13 +1253,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mUrl.compare(0, 7, "file://") == 0)
{
// failed to load local file, we're done.
+ LL_WARNS("Texture") << mID << ": abort, failed to load local file " << mUrl << LL_ENDL;
return true;
}
// need more data
else
{
LL_DEBUGS("Texture") << mID << ": Not in Cache" << LL_ENDL;
- mState = LOAD_FROM_NETWORK;
+ setState(LOAD_FROM_NETWORK);
}
// fall through
@@ -1290,9 +1301,15 @@ bool LLTextureFetchWorker::doWork(S32 param)
mCanUseHTTP = false;
}
}
+#if 0 /* SH-3980 - disabling caching of server bakes until we can fix the blurring problems */
+ if (mFTType == FTT_SERVER_BAKE)
+ {
+ mWriteToCacheState = CAN_WRITE;
+ }
+#endif
if (mCanUseHTTP && !mUrl.empty())
{
- mState = WAIT_HTTP_RESOURCE;
+ setState(WAIT_HTTP_RESOURCE);
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
if(mWriteToCacheState != NOT_WRITE)
{
@@ -1322,6 +1339,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
//mFetcher->addToNetworkQueue(this);
//recordTextureStart(false);
//setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
+
+ LL_DEBUGS("Texture") << mID << " does this happen?" << llendl;
return false;
}
}
@@ -1340,10 +1359,16 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
// processSimulatorPackets() failed
// llwarns << "processSimulatorPackets() failed to load buffer" << llendl;
+ LL_WARNS("Texture") << mID << " processSimulatorPackets() failed to load buffer" << llendl;
return true; // failed
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = DECODE_IMAGE;
+ if (mLoadedDiscard < 0)
+ {
+ LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << llendl;
+ }
+ setState(DECODE_IMAGE);
mWriteToCacheState = SHOULD_WRITE;
recordTextureDone(false);
}
@@ -1367,14 +1392,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
// Otherwise, advance into the HTTP states.
if (mFetcher->getHttpWaitersCount() || ! acquireHttpSemaphore())
{
- mState = WAIT_HTTP_RESOURCE2;
+ setState(WAIT_HTTP_RESOURCE2);
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
mFetcher->addHttpWaiter(this->mID);
++mResourceWaitCount;
return false;
}
- mState = SEND_HTTP_REQ;
+ setState(SEND_HTTP_REQ);
// *NOTE: You must invoke releaseHttpSemaphore() if you transition
// to a state other than SEND_HTTP_REQ or WAIT_HTTP_REQ or abort
// the request.
@@ -1391,6 +1416,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (! mCanUseHTTP)
{
releaseHttpSemaphore();
+ LL_WARNS("Texture") << mID << " abort: SEND_HTTP_REQ but !mCanUseHTTP" << llendl;
return true; // abort
}
@@ -1407,13 +1433,19 @@ bool LLTextureFetchWorker::doWork(S32 param)
// We already have all the data, just decode it
mLoadedDiscard = mFormattedImage->getDiscardLevel();
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = DECODE_IMAGE;
+ if (mLoadedDiscard < 0)
+ {
+ LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << llendl;
+ }
+ setState(DECODE_IMAGE);
releaseHttpSemaphore();
return false;
}
else
{
releaseHttpSemaphore();
+ LL_WARNS("Texture") << mID << " SEND_HTTP_REQ abort: cur_size " << cur_size << " <=0" << llendl;
return true; // abort.
}
}
@@ -1471,7 +1503,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
mFetcher->addToHTTPQueue(mID);
recordTextureStart(true);
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
- mState = WAIT_HTTP_REQ;
+ setState(WAIT_HTTP_REQ);
// fall through
}
@@ -1489,8 +1521,9 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if(mWriteToCacheState == NOT_WRITE) //map tiles
{
- mState = DONE;
+ setState(DONE);
releaseHttpSemaphore();
+ LL_DEBUGS("Texture") << mID << " abort: WAIT_HTTP_REQ not found" << llendl;
return true; // failed, means no map tile on the empty region.
}
@@ -1499,7 +1532,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
// roll back to try UDP
if (mCanUseNET)
{
- mState = INIT;
+ setState(INIT);
mCanUseHTTP = false;
mUrl.clear();
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
@@ -1530,15 +1563,21 @@ bool LLTextureFetchWorker::doWork(S32 param)
// Use available data
mLoadedDiscard = mFormattedImage->getDiscardLevel();
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = DECODE_IMAGE;
+ if (mLoadedDiscard < 0)
+ {
+ LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << llendl;
+ }
+ setState(DECODE_IMAGE);
releaseHttpSemaphore();
return false;
}
// Fail harder
resetFormattedData();
- mState = DONE;
+ setState(DONE);
releaseHttpSemaphore();
+ LL_WARNS("Texture") << mID << " abort: fail harder" << llendl;
return true; // failed
}
@@ -1547,6 +1586,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
// next time the texture is requested, even if the data have already been fetched.
if(mWriteToCacheState != NOT_WRITE)
{
+ // Why do we want to keep url if NOT_WRITE - is this a proxy for map tiles?
mUrl.clear();
}
@@ -1560,7 +1600,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
// abort.
- mState = DONE;
+ setState(DONE);
+ LL_WARNS("Texture") << mID << " abort: no data received" << llendl;
releaseHttpSemaphore();
return true;
}
@@ -1578,7 +1619,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
LL_WARNS("Texture") << "Partial HTTP response produces break in image data for texture "
<< mID << ". Aborting load." << LL_ENDL;
- mState = DONE;
+ setState(DONE);
releaseHttpSemaphore();
return true;
}
@@ -1626,7 +1667,12 @@ bool LLTextureFetchWorker::doWork(S32 param)
mHttpReplyOffset = 0;
mLoadedDiscard = mRequestedDiscard;
- mState = DECODE_IMAGE;
+ if (mLoadedDiscard < 0)
+ {
+ LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << llendl;
+ }
+ setState(DECODE_IMAGE);
if (mWriteToCacheState != NOT_WRITE)
{
mWriteToCacheState = SHOULD_WRITE ;
@@ -1657,31 +1703,34 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (textures_decode_disabled)
{
// for debug use, don't decode
- mState = DONE;
+ setState(DONE);
return true;
}
if (mDesiredDiscard < 0)
{
// We aborted, don't decode
- mState = DONE;
+ setState(DONE);
+ LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: desired discard " << mDesiredDiscard << "<0" << llendl;
return true;
}
if (mFormattedImage->getDataSize() <= 0)
{
- //llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl;
+ llwarns << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl;
//abort, don't decode
- mState = DONE;
+ setState(DONE);
+ LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: (mFormattedImage->getDataSize() <= 0)" << llendl;
return true;
}
if (mLoadedDiscard < 0)
{
- //llerrs << "Decode entered with invalid mLoadedDiscard. ID = " << mID << llendl;
+ llwarns << "Decode entered with invalid mLoadedDiscard. ID = " << mID << llendl;
//abort, don't decode
- mState = DONE;
+ setState(DONE);
+ LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: mLoadedDiscard < 0" << llendl;
return true;
}
@@ -1691,7 +1740,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
S32 discard = mHaveAllData ? 0 : mLoadedDiscard;
U32 image_priority = LLWorkerThread::PRIORITY_NORMAL | mWorkPriority;
mDecoded = FALSE;
- mState = DECODE_IMAGE_UPDATE;
+ setState(DECODE_IMAGE_UPDATE);
LL_DEBUGS("Texture") << mID << ": Decoding. Bytes: " << mFormattedImage->getDataSize() << " Discard: " << discard
<< " All Data: " << mHaveAllData << LL_ENDL;
mDecodeHandle = mFetcher->mImageDecodeThread->decodeImage(mFormattedImage, image_priority, discard, mNeedsAux,
@@ -1719,13 +1768,13 @@ bool LLTextureFetchWorker::doWork(S32 param)
mFormattedImage = NULL;
++mRetryAttempt;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = INIT;
+ setState(INIT);
return false;
}
else
{
// llwarns << "UNABLE TO LOAD TEXTURE: " << mID << " RETRIES: " << mRetryAttempt << llendl;
- mState = DONE; // failed
+ setState(DONE); // failed
}
}
else
@@ -1734,7 +1783,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
LL_DEBUGS("Texture") << mID << ": Decoded. Discard: " << mDecodedDiscard
<< " Raw Image: " << llformat("%dx%d",mRawImage->getWidth(),mRawImage->getHeight()) << LL_ENDL;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
- mState = WRITE_TO_CACHE;
+ setState(WRITE_TO_CACHE);
}
// fall through
}
@@ -1750,7 +1799,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
// If we're in a local cache or we didn't actually receive any new data,
// or we failed to load anything, skip
- mState = DONE;
+ setState(DONE);
return false;
}
S32 datasize = mFormattedImage->getDataSize();
@@ -1769,7 +1818,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it
U32 cache_priority = mWorkPriority;
mWritten = FALSE;
- mState = WAIT_ON_WRITE;
+ setState(WAIT_ON_WRITE);
++mCacheWriteCount;
CacheWriteResponder* responder = new CacheWriteResponder(mFetcher, mID);
mCacheWriteHandle = mFetcher->mTextureCache->writeToCache(mID, cache_priority,
@@ -1782,7 +1831,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (writeToCacheComplete())
{
- mState = DONE;
+ setState(DONE);
// fall through
}
else
@@ -1803,7 +1852,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mDecodedDiscard >= 0 && mDesiredDiscard < mDecodedDiscard)
{
// More data was requested, return to INIT
- mState = INIT;
+ setState(INIT);
+ LL_DEBUGS("Texture") << mID << " more data requested, returning to INIT: "
+ << " mDecodedDiscard " << mDecodedDiscard << ">= 0 && mDesiredDiscard " << mDesiredDiscard
+ << "<" << " mDecodedDiscard " << mDecodedDiscard << llendl;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false;
}
@@ -1843,10 +1895,10 @@ void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpRe
bool partial = false;
LLCore::HttpStatus status(response->getStatus());
- lldebugs << "HTTP COMPLETE: " << mID
- << " status: " << status.toHex()
- << " '" << status.toString() << "'"
- << llendl;
+ LL_DEBUGS("Texture") << "HTTP COMPLETE: " << mID
+ << " status: " << status.toHex()
+ << " '" << status.toString() << "'"
+ << llendl;
// unsigned int offset(0), length(0), full_length(0);
// response->getRange(&offset, &length, &full_length);
// llwarns << "HTTP COMPLETE: " << mID << " handle: " << handle
@@ -2401,7 +2453,7 @@ LLTextureFetch::~LLTextureFetch()
// ~LLQueuedThread() called here
}
-bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
+bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
S32 w, S32 h, S32 c, S32 desired_discard, bool needs_aux, bool can_use_http)
{
if(mFetcherLocked)
@@ -2430,6 +2482,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con
std::string exten = gDirUtilp->getExtension(url);
if (!url.empty() && (!exten.empty() && LLImageBase::getCodecFromExtension(exten) != IMG_CODEC_J2C))
{
+ LL_DEBUGS("Texture") << "full request for " << id << " exten is not J2C: " << exten << llendl;
// Only do partial requests for J2C at the moment
desired_size = MAX_IMAGE_DATA_SIZE;
desired_discard = 0;
@@ -2472,7 +2525,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con
worker->setCanUseHTTP(can_use_http) ;
if (!worker->haveWork())
{
- worker->mState = LLTextureFetchWorker::INIT;
+ worker->setState(LLTextureFetchWorker::INIT);
worker->unlockWorkMutex(); // -Mw
worker->addWork(0, LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority);
@@ -2484,7 +2537,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con
}
else
{
- worker = new LLTextureFetchWorker(this, url, id, host, priority, desired_discard, desired_size);
+ worker = new LLTextureFetchWorker(this, f_type, url, id, host, priority, desired_discard, desired_size);
lockQueue(); // +Mfq
mRequestMap[id] = worker;
unlockQueue(); // -Mfq
@@ -2496,7 +2549,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con
worker->unlockWorkMutex(); // -Mw
}
-// llinfos << "REQUESTED: " << id << " Discard: " << desired_discard << llendl;
+ LL_DEBUGS("Texture") << "REQUESTED: " << id << " Discard: " << desired_discard << " size " << desired_size << llendl;
return true;
}
@@ -3165,6 +3218,30 @@ bool LLTextureFetchWorker::insertPacket(S32 index, U8* data, S32 size)
return true;
}
+void LLTextureFetchWorker::setState(e_state new_state)
+{
+ static const char* e_state_name[] =
+ {
+ "INVALID",
+ "INIT",
+ "LOAD_FROM_TEXTURE_CACHE",
+ "CACHE_POST",
+ "LOAD_FROM_NETWORK",
+ "LOAD_FROM_SIMULATOR",
+ "WAIT_HTTP_RESOURCE",
+ "WAIT_HTTP_RESOURCE2",
+ "SEND_HTTP_REQ",
+ "WAIT_HTTP_REQ",
+ "DECODE_IMAGE",
+ "DECODE_IMAGE_UPDATE",
+ "WRITE_TO_CACHE",
+ "WAIT_ON_WRITE",
+ "DONE"
+ };
+ LL_DEBUGS("Texture") << "id: " << mID << " FTType: " << mFTType << " disc: " << mDesiredDiscard << " sz: " << mDesiredSize << " state: " << e_state_name[mState] << " => " << e_state_name[new_state] << llendl;
+ mState = new_state;
+}
+
// Threads: T*
bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8 codec, U16 packets, U32 totalbytes,
U16 data_size, U8* data)
@@ -3221,7 +3298,7 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8
llassert_always(data_size == FIRST_PACKET_SIZE || data_size == worker->mFileSize);
res = worker->insertPacket(0, data, data_size);
worker->setPriority(LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority);
- worker->mState = LLTextureFetchWorker::LOAD_FROM_SIMULATOR;
+ worker->setState(LLTextureFetchWorker::LOAD_FROM_SIMULATOR);
worker->unlockWorkMutex(); // -Mw
return res;
}
@@ -3271,7 +3348,7 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1
(worker->mState == LLTextureFetchWorker::LOAD_FROM_NETWORK))
{
worker->setPriority(LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority);
- worker->mState = LLTextureFetchWorker::LOAD_FROM_SIMULATOR;
+ worker->setState(LLTextureFetchWorker::LOAD_FROM_SIMULATOR);
}
else
{
@@ -3534,7 +3611,7 @@ void LLTextureFetch::releaseHttpWaiters()
break;
}
- worker->mState = LLTextureFetchWorker::SEND_HTTP_REQ;
+ worker->setState(LLTextureFetchWorker::SEND_HTTP_REQ);
worker->setPriority(LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority);
worker->unlockWorkMutex(); // -Mw
diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h
index 5ea3c14e1a..902a3d7a25 100644..100755
--- a/indra/newview/lltexturefetch.h
+++ b/indra/newview/lltexturefetch.h
@@ -44,8 +44,8 @@
#include "httpoptions.h"
#include "httpheaders.h"
#include "httphandler.h"
+#include "llviewertexture.h"
-class LLViewerTexture;
class LLTextureFetchWorker;
class LLImageDecodeThread;
class LLHost;
@@ -77,7 +77,7 @@ public:
void shutDownImageDecodeThread();
// Threads: T* (but Tmain mostly)
- bool createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
+ bool createRequest(FTType f_type, const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
S32 w, S32 h, S32 c, S32 discard, bool needs_aux, bool can_use_http);
// Requests that a fetch operation be deleted from the queue.
diff --git a/indra/newview/lltextureinfo.cpp b/indra/newview/lltextureinfo.cpp
index adfdbc997e..adfdbc997e 100644..100755
--- a/indra/newview/lltextureinfo.cpp
+++ b/indra/newview/lltextureinfo.cpp
diff --git a/indra/newview/lltextureinfo.h b/indra/newview/lltextureinfo.h
index 2ccbcc5fd2..2ccbcc5fd2 100644..100755
--- a/indra/newview/lltextureinfo.h
+++ b/indra/newview/lltextureinfo.h
diff --git a/indra/newview/lltextureinfodetails.cpp b/indra/newview/lltextureinfodetails.cpp
index 0d750db3bf..0d750db3bf 100644..100755
--- a/indra/newview/lltextureinfodetails.cpp
+++ b/indra/newview/lltextureinfodetails.cpp
diff --git a/indra/newview/lltextureinfodetails.h b/indra/newview/lltextureinfodetails.h
index 4a3cd29084..4a3cd29084 100644..100755
--- a/indra/newview/lltextureinfodetails.h
+++ b/indra/newview/lltextureinfodetails.h
diff --git a/indra/newview/lltexturestats.cpp b/indra/newview/lltexturestats.cpp
index f820ae65df..f820ae65df 100644..100755
--- a/indra/newview/lltexturestats.cpp
+++ b/indra/newview/lltexturestats.cpp
diff --git a/indra/newview/lltexturestats.h b/indra/newview/lltexturestats.h
index 09bab41fc3..09bab41fc3 100644..100755
--- a/indra/newview/lltexturestats.h
+++ b/indra/newview/lltexturestats.h
diff --git a/indra/newview/lltexturestatsuploader.cpp b/indra/newview/lltexturestatsuploader.cpp
index 23ba09cb91..23ba09cb91 100644..100755
--- a/indra/newview/lltexturestatsuploader.cpp
+++ b/indra/newview/lltexturestatsuploader.cpp
diff --git a/indra/newview/lltexturestatsuploader.h b/indra/newview/lltexturestatsuploader.h
index 6b02aeb845..6b02aeb845 100644..100755
--- a/indra/newview/lltexturestatsuploader.h
+++ b/indra/newview/lltexturestatsuploader.h
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 16c42dbd43..e80136b286 100644..100755
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -40,7 +40,7 @@
#include "lltooltip.h"
#include "llappviewer.h"
#include "llselectmgr.h"
-#include "lltexlayer.h"
+#include "llviewertexlayer.h"
#include "lltexturecache.h"
#include "lltexturefetch.h"
#include "llviewercontrol.h"
@@ -170,7 +170,7 @@ void LLTextureBar::draw()
{
color = LLColor4::green4;
}
- else if (mImagep->getBoostLevel() > LLViewerTexture::BOOST_NONE)
+ else if (mImagep->getBoostLevel() > LLGLTexture::BOOST_NONE)
{
color = LLColor4::magenta;
}
@@ -420,14 +420,14 @@ void LLAvatarTexBar::draw()
LLColor4 color;
U32 line_num = 1;
- for (LLVOAvatarDefines::LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
- const LLVOAvatarDefines::EBakedTextureIndex baked_index = baked_iter->first;
- const LLTexLayerSet *layerset = avatarp->debugGetLayerSet(baked_index);
+ const LLAvatarAppearanceDefines::EBakedTextureIndex baked_index = baked_iter->first;
+ const LLViewerTexLayerSet *layerset = avatarp->debugGetLayerSet(baked_index);
if (!layerset) continue;
- const LLTexLayerSetBuffer *layerset_buffer = layerset->getComposite();
+ const LLViewerTexLayerSetBuffer *layerset_buffer = layerset->getViewerComposite();
if (!layerset_buffer) continue;
LLColor4 text_color = LLColor4::white;
diff --git a/indra/newview/lltextureview.h b/indra/newview/lltextureview.h
index 900b4e17d8..900b4e17d8 100644..100755
--- a/indra/newview/lltextureview.h
+++ b/indra/newview/lltextureview.h
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 9dfb29b905..9dfb29b905 100644..100755
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h
index ea62f758f8..ea62f758f8 100644..100755
--- a/indra/newview/lltoast.h
+++ b/indra/newview/lltoast.h
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index 3f75f8da5e..3f75f8da5e 100644..100755
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h
index d1be5e018e..d1be5e018e 100644..100755
--- a/indra/newview/lltoastalertpanel.h
+++ b/indra/newview/lltoastalertpanel.h
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index 4dc0d424ac..beb45e8179 100644..100755
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -33,6 +33,7 @@
#include "llbutton.h"
#include "lliconctrl.h"
#include "llinventoryfunctions.h"
+#include "llinventoryicon.h"
#include "llnotifications.h"
#include "llviewertexteditor.h"
diff --git a/indra/newview/lltoastgroupnotifypanel.h b/indra/newview/lltoastgroupnotifypanel.h
index dfdc6ae559..dfdc6ae559 100644..100755
--- a/indra/newview/lltoastgroupnotifypanel.h
+++ b/indra/newview/lltoastgroupnotifypanel.h
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index 75e6e3d13a..75e6e3d13a 100644..100755
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h
index 3eb11fb3bc..3eb11fb3bc 100644..100755
--- a/indra/newview/lltoastimpanel.h
+++ b/indra/newview/lltoastimpanel.h
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 4ef5ad845c..8bfde2bcf1 100644..100755
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -207,8 +207,6 @@ void LLToastNotifyPanel::adjustPanelForScriptNotice(S32 button_panel_width, S32
void LLToastNotifyPanel::adjustPanelForTipNotice()
{
- LLRect info_rect = mInfoPanel->getRect();
- LLRect this_rect = getRect();
//we don't need display ControlPanel for tips because they doesn't contain any buttons.
mControlPanel->setVisible(FALSE);
reshape(getRect().getWidth(), mInfoPanel->getRect().getHeight());
diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h
index d02171b512..d02171b512 100644..100755
--- a/indra/newview/lltoastnotifypanel.h
+++ b/indra/newview/lltoastnotifypanel.h
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index a30f841980..a30f841980 100644..100755
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
diff --git a/indra/newview/lltoastpanel.h b/indra/newview/lltoastpanel.h
index e4ab95007e..e4ab95007e 100644..100755
--- a/indra/newview/lltoastpanel.h
+++ b/indra/newview/lltoastpanel.h
diff --git a/indra/newview/lltoastscriptquestion.cpp b/indra/newview/lltoastscriptquestion.cpp
index 91ba8c0247..91ba8c0247 100644..100755
--- a/indra/newview/lltoastscriptquestion.cpp
+++ b/indra/newview/lltoastscriptquestion.cpp
diff --git a/indra/newview/lltoastscriptquestion.h b/indra/newview/lltoastscriptquestion.h
index 3a557f60f6..3a557f60f6 100644..100755
--- a/indra/newview/lltoastscriptquestion.h
+++ b/indra/newview/lltoastscriptquestion.h
diff --git a/indra/newview/lltoastscripttextbox.cpp b/indra/newview/lltoastscripttextbox.cpp
index 45fbabad59..45fbabad59 100644..100755
--- a/indra/newview/lltoastscripttextbox.cpp
+++ b/indra/newview/lltoastscripttextbox.cpp
diff --git a/indra/newview/lltoastscripttextbox.h b/indra/newview/lltoastscripttextbox.h
index 7d33446248..7d33446248 100644..100755
--- a/indra/newview/lltoastscripttextbox.h
+++ b/indra/newview/lltoastscripttextbox.h
diff --git a/indra/newview/lltool.cpp b/indra/newview/lltool.cpp
index 2d8ce95347..2d8ce95347 100644..100755
--- a/indra/newview/lltool.cpp
+++ b/indra/newview/lltool.cpp
diff --git a/indra/newview/lltool.h b/indra/newview/lltool.h
index ecc435d844..ecc435d844 100644..100755
--- a/indra/newview/lltool.h
+++ b/indra/newview/lltool.h
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index b2318f9158..b2318f9158 100644..100755
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h
index 7125dd9990..7125dd9990 100644..100755
--- a/indra/newview/lltoolbarview.h
+++ b/indra/newview/lltoolbarview.h
diff --git a/indra/newview/lltoolbrush.cpp b/indra/newview/lltoolbrush.cpp
index aba43a9715..08d82ea9cb 100644..100755
--- a/indra/newview/lltoolbrush.cpp
+++ b/indra/newview/lltoolbrush.cpp
@@ -657,7 +657,7 @@ bool LLToolBrushLand::canTerraform(LLViewerRegion* regionp) const
{
if (!regionp) return false;
if (regionp->canManageEstate()) return true;
- return !(regionp->getRegionFlags() & REGION_FLAGS_BLOCK_TERRAFORM);
+ return !regionp->getRegionFlag(REGION_FLAGS_BLOCK_TERRAFORM);
}
// static
diff --git a/indra/newview/lltoolbrush.h b/indra/newview/lltoolbrush.h
index 1c7f198900..1c7f198900 100644..100755
--- a/indra/newview/lltoolbrush.h
+++ b/indra/newview/lltoolbrush.h
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp
index 923fbecb1a..5270c3d33f 100644..100755
--- a/indra/newview/lltoolcomp.cpp
+++ b/indra/newview/lltoolcomp.cpp
@@ -471,7 +471,7 @@ BOOL LLToolCompCreate::handleMouseDown(S32 x, S32 y, MASK mask)
mObjectPlacedOnMouseDown = TRUE;
- return TRUE;
+ return handled;
}
void LLToolCompCreate::pickCallback(const LLPickInfo& pick_info)
diff --git a/indra/newview/lltoolcomp.h b/indra/newview/lltoolcomp.h
index bbb5ed5797..bbb5ed5797 100644..100755
--- a/indra/newview/lltoolcomp.h
+++ b/indra/newview/lltoolcomp.h
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 94c97158a8..e085834326 100644..100755
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1247,7 +1247,7 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target,
if (!item || !item->isFinished()) return;
//if (regionp
- // && (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX))
+ // && (regionp->getRegionFlag(REGION_FLAGS_SANDBOX)))
//{
// LLFirstUse::useSandbox();
//}
@@ -1741,7 +1741,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv(
{
if(mSource == SOURCE_LIBRARY)
{
- LLPointer<LLInventoryCallback> cb = new RezAttachmentCallback(0);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, (LLViewerJointAttachment*)0));
copy_inventory_item(
gAgent.getID(),
item->getPermissions().getOwner(),
@@ -2094,7 +2094,7 @@ EAcceptance LLToolDragAndDrop::dad3dActivateGesture(
{
// create item based on that one, and put it on if that
// was a success.
- LLPointer<LLInventoryCallback> cb = new ActivateGestureCallback();
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(activate_gesture_cb);
copy_inventory_item(
gAgent.getID(),
item->getPermissions().getOwner(),
diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h
index f17300a76a..f17300a76a 100644..100755
--- a/indra/newview/lltooldraganddrop.h
+++ b/indra/newview/lltooldraganddrop.h
diff --git a/indra/newview/lltoolface.cpp b/indra/newview/lltoolface.cpp
index a00ac10698..a00ac10698 100644..100755
--- a/indra/newview/lltoolface.cpp
+++ b/indra/newview/lltoolface.cpp
diff --git a/indra/newview/lltoolface.h b/indra/newview/lltoolface.h
index 7eb13b0fbc..7eb13b0fbc 100644..100755
--- a/indra/newview/lltoolface.h
+++ b/indra/newview/lltoolface.h
diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp
index a754d8ee7e..857b0f0714 100644..100755
--- a/indra/newview/lltoolfocus.cpp
+++ b/indra/newview/lltoolfocus.cpp
@@ -314,8 +314,6 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
S32 dx = gViewerWindow->getCurrentMouseDX();
S32 dy = gViewerWindow->getCurrentMouseDY();
- BOOL moved_outside_slop = FALSE;
-
if (hasMouseCapture() && mValidClickPoint)
{
mAccumX += llabs(dx);
@@ -323,19 +321,11 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
if (mAccumX >= SLOP_RANGE)
{
- if (!mOutsideSlopX)
- {
- moved_outside_slop = TRUE;
- }
mOutsideSlopX = TRUE;
}
if (mAccumY >= SLOP_RANGE)
{
- if (!mOutsideSlopY)
- {
- moved_outside_slop = TRUE;
- }
mOutsideSlopY = TRUE;
}
}
diff --git a/indra/newview/lltoolfocus.h b/indra/newview/lltoolfocus.h
index b1ac42e33f..b1ac42e33f 100644..100755
--- a/indra/newview/lltoolfocus.h
+++ b/indra/newview/lltoolfocus.h
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index 9907da0f0e..9907da0f0e 100644..100755
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
diff --git a/indra/newview/lltoolgrab.h b/indra/newview/lltoolgrab.h
index 06a3b662c8..06a3b662c8 100644..100755
--- a/indra/newview/lltoolgrab.h
+++ b/indra/newview/lltoolgrab.h
diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp
index 857d105361..c1735adc9c 100644..100755
--- a/indra/newview/lltoolgun.cpp
+++ b/indra/newview/lltoolgun.cpp
@@ -42,7 +42,7 @@
#include "llhudmanager.h"
#include "lltoolmgr.h"
#include "lltoolgrab.h"
-
+#include "lluiimage.h"
// Linden library includes
#include "llwindow.h" // setMouseClipping()
diff --git a/indra/newview/lltoolgun.h b/indra/newview/lltoolgun.h
index 8ae926b741..8ae926b741 100644..100755
--- a/indra/newview/lltoolgun.h
+++ b/indra/newview/lltoolgun.h
diff --git a/indra/newview/lltoolindividual.cpp b/indra/newview/lltoolindividual.cpp
index 885c1442a0..885c1442a0 100644..100755
--- a/indra/newview/lltoolindividual.cpp
+++ b/indra/newview/lltoolindividual.cpp
diff --git a/indra/newview/lltoolindividual.h b/indra/newview/lltoolindividual.h
index 961a6a4d93..961a6a4d93 100644..100755
--- a/indra/newview/lltoolindividual.h
+++ b/indra/newview/lltoolindividual.h
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index a135ba70f5..a135ba70f5 100644..100755
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
diff --git a/indra/newview/lltoolmgr.h b/indra/newview/lltoolmgr.h
index e7d1c56c83..e7d1c56c83 100644..100755
--- a/indra/newview/lltoolmgr.h
+++ b/indra/newview/lltoolmgr.h
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 0d5daf129f..148e5a015b 100644..100755
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -34,6 +34,7 @@
#include "llaudioengine.h"
#include "llviewercontrol.h"
#include "llfontgl.h"
+#include "llwearable.h"
#include "sound_ids.h"
#include "v3math.h"
#include "v3color.h"
diff --git a/indra/newview/lltoolmorph.h b/indra/newview/lltoolmorph.h
index a6889be151..a6889be151 100644..100755
--- a/indra/newview/lltoolmorph.h
+++ b/indra/newview/lltoolmorph.h
diff --git a/indra/newview/lltoolobjpicker.cpp b/indra/newview/lltoolobjpicker.cpp
index b65c4c1ec8..b65c4c1ec8 100644..100755
--- a/indra/newview/lltoolobjpicker.cpp
+++ b/indra/newview/lltoolobjpicker.cpp
diff --git a/indra/newview/lltoolobjpicker.h b/indra/newview/lltoolobjpicker.h
index 0c37be1f92..0c37be1f92 100644..100755
--- a/indra/newview/lltoolobjpicker.h
+++ b/indra/newview/lltoolobjpicker.h
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index f24891baf6..fc9a316759 100644..100755
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -791,14 +791,10 @@ BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)
LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
LLUUID owner;
- S32 width = 0;
- S32 height = 0;
if ( hover_parcel )
{
owner = hover_parcel->getOwnerID();
- width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth());
- height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight());
}
// Line: "Land"
@@ -1593,9 +1589,6 @@ BOOL LLToolPie::handleRightClickPick()
// didn't click in any UI object, so must have clicked in the world
LLViewerObject *object = mPick.getObject();
- LLViewerObject *parent = NULL;
- if(object)
- parent = object->getRootEdit();
// Can't ignore children here.
LLToolSelect::handleObjectSelection(mPick, FALSE, TRUE);
diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h
index 68fe8bc4a5..68fe8bc4a5 100644..100755
--- a/indra/newview/lltoolpie.h
+++ b/indra/newview/lltoolpie.h
diff --git a/indra/newview/lltoolpipette.cpp b/indra/newview/lltoolpipette.cpp
index ff3dad2675..ff3dad2675 100644..100755
--- a/indra/newview/lltoolpipette.cpp
+++ b/indra/newview/lltoolpipette.cpp
diff --git a/indra/newview/lltoolpipette.h b/indra/newview/lltoolpipette.h
index 8a83bf31af..8a83bf31af 100644..100755
--- a/indra/newview/lltoolpipette.h
+++ b/indra/newview/lltoolpipette.h
diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp
index 93ba3b2558..641fbc5042 100644..100755
--- a/indra/newview/lltoolplacer.cpp
+++ b/indra/newview/lltoolplacer.cpp
@@ -182,7 +182,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics )
return FALSE;
}
- if (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX)
+ if (regionp->getRegionFlag(REGION_FLAGS_SANDBOX))
{
//LLFirstUse::useSandbox();
}
@@ -485,7 +485,7 @@ BOOL LLToolPlacer::addDuplicate(S32 x, S32 y)
FALSE); // select copy
if (regionp
- && (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX))
+ && (regionp->getRegionFlag(REGION_FLAGS_SANDBOX)))
{
//LLFirstUse::useSandbox();
}
diff --git a/indra/newview/lltoolplacer.h b/indra/newview/lltoolplacer.h
index ad59cb0daa..ad59cb0daa 100644..100755
--- a/indra/newview/lltoolplacer.h
+++ b/indra/newview/lltoolplacer.h
diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp
index 7c604a04bf..7c604a04bf 100644..100755
--- a/indra/newview/lltoolselect.cpp
+++ b/indra/newview/lltoolselect.cpp
diff --git a/indra/newview/lltoolselect.h b/indra/newview/lltoolselect.h
index baa27f6071..baa27f6071 100644..100755
--- a/indra/newview/lltoolselect.h
+++ b/indra/newview/lltoolselect.h
diff --git a/indra/newview/lltoolselectland.cpp b/indra/newview/lltoolselectland.cpp
index a48388c591..a48388c591 100644..100755
--- a/indra/newview/lltoolselectland.cpp
+++ b/indra/newview/lltoolselectland.cpp
diff --git a/indra/newview/lltoolselectland.h b/indra/newview/lltoolselectland.h
index b368a4b153..b368a4b153 100644..100755
--- a/indra/newview/lltoolselectland.h
+++ b/indra/newview/lltoolselectland.h
diff --git a/indra/newview/lltoolselectrect.cpp b/indra/newview/lltoolselectrect.cpp
index a3f4e5a18c..a3f4e5a18c 100644..100755
--- a/indra/newview/lltoolselectrect.cpp
+++ b/indra/newview/lltoolselectrect.cpp
diff --git a/indra/newview/lltoolselectrect.h b/indra/newview/lltoolselectrect.h
index 5fdf622b49..5fdf622b49 100644..100755
--- a/indra/newview/lltoolselectrect.h
+++ b/indra/newview/lltoolselectrect.h
diff --git a/indra/newview/lltoolview.cpp b/indra/newview/lltoolview.cpp
index 8c40ff3cb3..8c40ff3cb3 100644..100755
--- a/indra/newview/lltoolview.cpp
+++ b/indra/newview/lltoolview.cpp
diff --git a/indra/newview/lltoolview.h b/indra/newview/lltoolview.h
index 3b5fb55cce..3b5fb55cce 100644..100755
--- a/indra/newview/lltoolview.h
+++ b/indra/newview/lltoolview.h
diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp
index cbd16e873d..cbd16e873d 100644..100755
--- a/indra/newview/lltracker.cpp
+++ b/indra/newview/lltracker.cpp
diff --git a/indra/newview/lltracker.h b/indra/newview/lltracker.h
index 8e916af315..8e916af315 100644..100755
--- a/indra/newview/lltracker.h
+++ b/indra/newview/lltracker.h
diff --git a/indra/newview/lltransientdockablefloater.cpp b/indra/newview/lltransientdockablefloater.cpp
index c108f1dfdc..c108f1dfdc 100644..100755
--- a/indra/newview/lltransientdockablefloater.cpp
+++ b/indra/newview/lltransientdockablefloater.cpp
diff --git a/indra/newview/lltransientdockablefloater.h b/indra/newview/lltransientdockablefloater.h
index 5fb79597f4..5fb79597f4 100644..100755
--- a/indra/newview/lltransientdockablefloater.h
+++ b/indra/newview/lltransientdockablefloater.h
diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp
index 3d68c10489..3d68c10489 100644..100755
--- a/indra/newview/lltransientfloatermgr.cpp
+++ b/indra/newview/lltransientfloatermgr.cpp
diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h
index b4611c8c87..b4611c8c87 100644..100755
--- a/indra/newview/lltransientfloatermgr.h
+++ b/indra/newview/lltransientfloatermgr.h
diff --git a/indra/newview/lluiconstants.h b/indra/newview/lluiconstants.h
index 1479e58c43..1479e58c43 100644..100755
--- a/indra/newview/lluiconstants.h
+++ b/indra/newview/lluiconstants.h
diff --git a/indra/newview/lluilistener.cpp b/indra/newview/lluilistener.cpp
index 6b2cd71d40..6b2cd71d40 100644..100755
--- a/indra/newview/lluilistener.cpp
+++ b/indra/newview/lluilistener.cpp
diff --git a/indra/newview/lluilistener.h b/indra/newview/lluilistener.h
index 08724024dc..08724024dc 100644..100755
--- a/indra/newview/lluilistener.h
+++ b/indra/newview/lluilistener.h
diff --git a/indra/newview/lluploaddialog.cpp b/indra/newview/lluploaddialog.cpp
index e59064c074..e59064c074 100644..100755
--- a/indra/newview/lluploaddialog.cpp
+++ b/indra/newview/lluploaddialog.cpp
diff --git a/indra/newview/lluploaddialog.h b/indra/newview/lluploaddialog.h
index 3aa9583315..3aa9583315 100644..100755
--- a/indra/newview/lluploaddialog.h
+++ b/indra/newview/lluploaddialog.h
diff --git a/indra/newview/lluploadfloaterobservers.cpp b/indra/newview/lluploadfloaterobservers.cpp
index 5a6a17fbca..1d777b3f7f 100644..100755
--- a/indra/newview/lluploadfloaterobservers.cpp
+++ b/indra/newview/lluploadfloaterobservers.cpp
@@ -33,9 +33,10 @@ LLUploadModelPremissionsResponder::LLUploadModelPremissionsResponder(const LLHan
{
}
-void LLUploadModelPremissionsResponder::error(U32 status, const std::string& reason)
+void LLUploadModelPremissionsResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- llwarns << "LLUploadModelPremissionsResponder::error("<< status << ": " << reason << ")" << llendl;
+ llwarns << "LLUploadModelPremissionsResponder error [status:"
+ << status << "]: " << content << llendl;
LLUploadPermissionsObserver* observer = mObserverHandle.get();
diff --git a/indra/newview/lluploadfloaterobservers.h b/indra/newview/lluploadfloaterobservers.h
index 79aad282d7..b43ddb44d9 100644..100755
--- a/indra/newview/lluploadfloaterobservers.h
+++ b/indra/newview/lluploadfloaterobservers.h
@@ -86,7 +86,7 @@ public:
LLUploadModelPremissionsResponder(const LLHandle<LLUploadPermissionsObserver>& observer);
- void error(U32 status, const std::string& reason);
+ void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
void result(const LLSD& content);
diff --git a/indra/newview/llurl.cpp b/indra/newview/llurl.cpp
index aa90d16c67..aa90d16c67 100644..100755
--- a/indra/newview/llurl.cpp
+++ b/indra/newview/llurl.cpp
diff --git a/indra/newview/llurl.h b/indra/newview/llurl.h
index 01ab3bdfc2..01ab3bdfc2 100644..100755
--- a/indra/newview/llurl.h
+++ b/indra/newview/llurl.h
diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp
index 00b15a5f26..00b15a5f26 100644..100755
--- a/indra/newview/llurldispatcher.cpp
+++ b/indra/newview/llurldispatcher.cpp
diff --git a/indra/newview/llurldispatcher.h b/indra/newview/llurldispatcher.h
index 6309a97af5..6309a97af5 100644..100755
--- a/indra/newview/llurldispatcher.h
+++ b/indra/newview/llurldispatcher.h
diff --git a/indra/newview/llurldispatcherlistener.cpp b/indra/newview/llurldispatcherlistener.cpp
index c7b9afafef..c7b9afafef 100644..100755
--- a/indra/newview/llurldispatcherlistener.cpp
+++ b/indra/newview/llurldispatcherlistener.cpp
diff --git a/indra/newview/llurldispatcherlistener.h b/indra/newview/llurldispatcherlistener.h
index b09594bb39..b09594bb39 100644..100755
--- a/indra/newview/llurldispatcherlistener.h
+++ b/indra/newview/llurldispatcherlistener.h
diff --git a/indra/newview/llurlhistory.cpp b/indra/newview/llurlhistory.cpp
index edec30f8c4..dd17068be5 100644..100755
--- a/indra/newview/llurlhistory.cpp
+++ b/indra/newview/llurlhistory.cpp
@@ -112,8 +112,6 @@ void LLURLHistory::addURL(const std::string& collection, const std::string& url)
// static
void LLURLHistory::removeURL(const std::string& collection, const std::string& url)
{
- LLSD::array_iterator iter = sHistorySD[collection].beginArray();
- LLSD::array_iterator end = sHistorySD[collection].endArray();
for(int index = 0; index < sHistorySD[collection].size(); index++)
{
if(sHistorySD[collection].get(index).asString() == url)
diff --git a/indra/newview/llurlhistory.h b/indra/newview/llurlhistory.h
index 3cce4cbe1d..3cce4cbe1d 100644..100755
--- a/indra/newview/llurlhistory.h
+++ b/indra/newview/llurlhistory.h
diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp
index cad5769042..cad5769042 100644..100755
--- a/indra/newview/llurllineeditorctrl.cpp
+++ b/indra/newview/llurllineeditorctrl.cpp
diff --git a/indra/newview/llurllineeditorctrl.h b/indra/newview/llurllineeditorctrl.h
index b9540dd571..b9540dd571 100644..100755
--- a/indra/newview/llurllineeditorctrl.h
+++ b/indra/newview/llurllineeditorctrl.h
diff --git a/indra/newview/llurlwhitelist.cpp b/indra/newview/llurlwhitelist.cpp
index 72029203d9..72029203d9 100644..100755
--- a/indra/newview/llurlwhitelist.cpp
+++ b/indra/newview/llurlwhitelist.cpp
diff --git a/indra/newview/llurlwhitelist.h b/indra/newview/llurlwhitelist.h
index b0969051a7..b0969051a7 100644..100755
--- a/indra/newview/llurlwhitelist.h
+++ b/indra/newview/llurlwhitelist.h
diff --git a/indra/newview/llvectorperfoptions.cpp b/indra/newview/llvectorperfoptions.cpp
index b80058d98c..b80058d98c 100644..100755
--- a/indra/newview/llvectorperfoptions.cpp
+++ b/indra/newview/llvectorperfoptions.cpp
diff --git a/indra/newview/llvectorperfoptions.h b/indra/newview/llvectorperfoptions.h
index e7a5748256..e7a5748256 100644..100755
--- a/indra/newview/llvectorperfoptions.h
+++ b/indra/newview/llvectorperfoptions.h
diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp
index 673d0c24cf..6a8fad0134 100644..100755
--- a/indra/newview/llversioninfo.cpp
+++ b/indra/newview/llversioninfo.cpp
@@ -26,73 +26,76 @@
*/
#include "llviewerprecompiledheaders.h"
+#include <iostream>
+#include <sstream>
#include "llversioninfo.h"
-#include "llversionviewer.h"
+#if ! defined(LL_VIEWER_CHANNEL) \
+ || ! defined(LL_VIEWER_VERSION_MAJOR) \
+ || ! defined(LL_VIEWER_VERSION_MINOR) \
+ || ! defined(LL_VIEWER_VERSION_PATCH) \
+ || ! defined(LL_VIEWER_VERSION_BUILD)
+ #error "Channel or Version information is undefined"
+#endif
+
+const char * const LL_CHANNEL = LL_VIEWER_CHANNEL;
//
-// Set the version numbers in indra/llcommon/llversionviewer.h
+// Set the version numbers in indra/VIEWER_VERSION
//
//static
S32 LLVersionInfo::getMajor()
{
- return LL_VERSION_MAJOR;
+ return LL_VIEWER_VERSION_MAJOR;
}
//static
S32 LLVersionInfo::getMinor()
{
- return LL_VERSION_MINOR;
+ return LL_VIEWER_VERSION_MINOR;
}
//static
S32 LLVersionInfo::getPatch()
{
- return LL_VERSION_PATCH;
+ return LL_VIEWER_VERSION_PATCH;
}
//static
S32 LLVersionInfo::getBuild()
{
- return LL_VERSION_BUILD;
+ return LL_VIEWER_VERSION_BUILD;
}
//static
const std::string &LLVersionInfo::getVersion()
{
static std::string version("");
-
if (version.empty())
{
- // cache the version string
std::ostringstream stream;
- stream << LL_VERSION_MAJOR << "."
- << LL_VERSION_MINOR << "."
- << LL_VERSION_PATCH << "."
- << LL_VERSION_BUILD;
+ stream << LLVersionInfo::getShortVersion() << "." << LLVersionInfo::getBuild();
+ // cache the version string
version = stream.str();
}
-
return version;
}
//static
const std::string &LLVersionInfo::getShortVersion()
{
- static std::string version("");
-
- if (version.empty())
+ static std::string short_version("");
+ if(short_version.empty())
{
// cache the version string
std::ostringstream stream;
- stream << LL_VERSION_MAJOR << "."
- << LL_VERSION_MINOR << "."
- << LL_VERSION_PATCH;
- version = stream.str();
+ stream << LL_VIEWER_VERSION_MAJOR << "."
+ << LL_VIEWER_VERSION_MINOR << "."
+ << LL_VIEWER_VERSION_PATCH;
+ short_version = stream.str();
}
-
- return version;
+ return short_version;
}
namespace
@@ -100,7 +103,7 @@ namespace
/// Storage of the channel name the viewer is using.
// The channel name is set by hardcoded constant,
// or by calling LLVersionInfo::resetChannel()
- std::string sWorkingChannelName(LL_CHANNEL);
+ std::string sWorkingChannelName(LL_VIEWER_CHANNEL);
// Storage for the "version and channel" string.
// This will get reset too.
@@ -113,11 +116,7 @@ const std::string &LLVersionInfo::getChannelAndVersion()
if (sVersionChannel.empty())
{
// cache the version string
- std::ostringstream stream;
- stream << LLVersionInfo::getChannel()
- << " "
- << LLVersionInfo::getVersion();
- sVersionChannel = stream.str();
+ sVersionChannel = LLVersionInfo::getChannel() + " " + LLVersionInfo::getVersion();
}
return sVersionChannel;
diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h
index 6f64544f3b..077105cae8 100644..100755
--- a/indra/newview/llversioninfo.h
+++ b/indra/newview/llversioninfo.h
@@ -29,6 +29,7 @@
#define LL_LLVERSIONINFO_H
#include <string>
+#include "stdtypes.h"
///
/// This API provides version information for the viewer. This
diff --git a/indra/newview/llviewchildren.cpp b/indra/newview/llviewchildren.cpp
index 5c5bbdc8f5..5c5bbdc8f5 100644..100755
--- a/indra/newview/llviewchildren.cpp
+++ b/indra/newview/llviewchildren.cpp
diff --git a/indra/newview/llviewchildren.h b/indra/newview/llviewchildren.h
index 4cd8209259..4cd8209259 100644..100755
--- a/indra/newview/llviewchildren.h
+++ b/indra/newview/llviewchildren.h
diff --git a/indra/newview/llviewerassetstats.cpp b/indra/newview/llviewerassetstats.cpp
index 4c59fd0371..aaa81c57d4 100644..100755
--- a/indra/newview/llviewerassetstats.cpp
+++ b/indra/newview/llviewerassetstats.cpp
@@ -160,9 +160,7 @@ LLViewerAssetStats::LLViewerAssetStats()
LLViewerAssetStats::LLViewerAssetStats(const LLViewerAssetStats & src)
: mRegionHandle(src.mRegionHandle),
- mResetTimestamp(src.mResetTimestamp),
- mPhaseStats(src.mPhaseStats),
- mAvatarRezStates(src.mAvatarRezStates)
+ mResetTimestamp(src.mResetTimestamp)
{
const PerRegionContainer::const_iterator it_end(src.mRegionStats.end());
for (PerRegionContainer::const_iterator it(src.mRegionStats.begin()); it_end != it; ++it)
@@ -258,17 +256,6 @@ LLViewerAssetStats::recordFPS(F32 fps)
mCurRegionStats->mFPS.record(fps);
}
-void
-LLViewerAssetStats::recordAvatarStats()
-{
- std::vector<S32> rez_counts;
- LLVOAvatar::getNearbyRezzedStats(rez_counts);
- mAvatarRezStates = rez_counts;
- mPhaseStats.clear();
- mPhaseStats["cloud"] = LLViewerStats::PhaseMap::getPhaseStats("cloud");
- mPhaseStats["cloud-or-gray"] = LLViewerStats::PhaseMap::getPhaseStats("cloud-or-gray");
-}
-
LLSD
LLViewerAssetStats::asLLSD(bool compact_output)
{
@@ -299,11 +286,6 @@ LLViewerAssetStats::asLLSD(bool compact_output)
static const LLSD::String max_tag("max");
static const LLSD::String mean_tag("mean");
- // Avatar sub-tags
- static const LLSD::String avatar_tag("avatar");
- static const LLSD::String avatar_nearby_tag("nearby");
- static const LLSD::String avatar_phase_stats_tag("phase_stats");
-
const duration_t now = LLViewerAssetStatsFF::get_timestamp();
mCurRegionStats->accumulateTime(now);
@@ -362,16 +344,6 @@ LLViewerAssetStats::asLLSD(bool compact_output)
LLSD ret = LLSD::emptyMap();
ret["regions"] = regions;
ret["duration"] = LLSD::Real((now - mResetTimestamp) * 1.0e-6);
- LLSD avatar_info;
- avatar_info[avatar_nearby_tag] = LLSD::emptyArray();
- for (S32 rez_stat=0; rez_stat < mAvatarRezStates.size(); ++rez_stat)
- {
- std::string rez_status_name = LLVOAvatar::rezStatusToString(rez_stat);
- avatar_info[avatar_nearby_tag][rez_status_name] = mAvatarRezStates[rez_stat];
- }
- avatar_info[avatar_phase_stats_tag]["cloud"] = mPhaseStats["cloud"].getData();
- avatar_info[avatar_phase_stats_tag]["cloud-or-gray"] = mPhaseStats["cloud-or-gray"].getData();
- ret[avatar_tag] = avatar_info;
return ret;
}
@@ -470,15 +442,6 @@ record_fps_main(F32 fps)
gViewerAssetStatsMain->recordFPS(fps);
}
-void
-record_avatar_stats()
-{
- if (! gViewerAssetStatsMain)
- return;
-
- gViewerAssetStatsMain->recordAvatarStats();
-}
-
// 'thread1' - should be for TextureFetch thread
void
diff --git a/indra/newview/llviewerassetstats.h b/indra/newview/llviewerassetstats.h
index 8319752230..e4581d2120 100644..100755
--- a/indra/newview/llviewerassetstats.h
+++ b/indra/newview/llviewerassetstats.h
@@ -256,10 +256,6 @@ protected:
// Time of last reset
duration_t mResetTimestamp;
-
- // Nearby avatar stats
- std::vector<S32> mAvatarRezStates;
- LLViewerStats::phase_stats_t mPhaseStats;
};
@@ -318,8 +314,6 @@ void record_response_main(LLViewerAssetType::EType at, bool with_http, bool is_t
void record_fps_main(F32 fps);
-void record_avatar_stats();
-
/**
* Region context, event and duration loggers for Thread 1.
*/
diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp
index d042f62830..d042f62830 100644..100755
--- a/indra/newview/llviewerassetstorage.cpp
+++ b/indra/newview/llviewerassetstorage.cpp
diff --git a/indra/newview/llviewerassetstorage.h b/indra/newview/llviewerassetstorage.h
index ca9b9943fa..ca9b9943fa 100644..100755
--- a/indra/newview/llviewerassetstorage.h
+++ b/indra/newview/llviewerassetstorage.h
diff --git a/indra/newview/llviewerassettype.cpp b/indra/newview/llviewerassettype.cpp
index 08ba5a5f25..08ba5a5f25 100644..100755
--- a/indra/newview/llviewerassettype.cpp
+++ b/indra/newview/llviewerassettype.cpp
diff --git a/indra/newview/llviewerassettype.h b/indra/newview/llviewerassettype.h
index ec8b822917..ec8b822917 100644..100755
--- a/indra/newview/llviewerassettype.h
+++ b/indra/newview/llviewerassettype.h
diff --git a/indra/newview/llviewerattachmenu.cpp b/indra/newview/llviewerattachmenu.cpp
index db7dc3fea6..3975292ed3 100644..100755
--- a/indra/newview/llviewerattachmenu.cpp
+++ b/indra/newview/llviewerattachmenu.cpp
@@ -121,7 +121,7 @@ void LLViewerAttachMenu::attachObjects(const uuid_vec_t& items, const std::strin
else if(item && item->isFinished())
{
// must be in library. copy it to our inventory and put it on.
- LLPointer<LLInventoryCallback> cb = new RezAttachmentCallback(attachmentp);
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(rez_attachment_cb, _1, attachmentp));
copy_inventory_item(gAgent.getID(),
item->getPermissions().getOwner(),
item->getUUID(),
diff --git a/indra/newview/llviewerattachmenu.h b/indra/newview/llviewerattachmenu.h
index 064c69ef4d..064c69ef4d 100644..100755
--- a/indra/newview/llviewerattachmenu.h
+++ b/indra/newview/llviewerattachmenu.h
diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp
index 564bf7997a..094694dc06 100644..100755
--- a/indra/newview/llvieweraudio.cpp
+++ b/indra/newview/llvieweraudio.cpp
@@ -44,6 +44,8 @@
#include "llparcel.h"
#include "llviewermessage.h"
+#include "llstreamingaudio.h"
+
/////////////////////////////////////////////////////////
LLViewerAudio::LLViewerAudio() :
@@ -102,6 +104,11 @@ void LLViewerAudio::startInternetStreamWithAutoFade(std::string streamURI)
else
{
mFadeState = FADE_IN;
+
+ LLStreamingAudioInterface *stream = gAudiop->getStreamingAudioImpl();
+ if(stream && stream->supportsAdjustableBufferSizes())
+ stream->setBufferSizes(gSavedSettings.getU32("FMODExStreamBufferSize"),gSavedSettings.getU32("FMODExDecodeBufferSize"));
+
gAudiop->startInternetStream(mNextStreamURI);
startFading();
registerIdleListener();
@@ -157,6 +164,11 @@ bool LLViewerAudio::onIdleUpdate()
if (!mNextStreamURI.empty())
{
mFadeState = FADE_IN;
+
+ LLStreamingAudioInterface *stream = gAudiop->getStreamingAudioImpl();
+ if(stream && stream->supportsAdjustableBufferSizes())
+ stream->setBufferSizes(gSavedSettings.getU32("FMODExStreamBufferSize"),gSavedSettings.getU32("FMODExDecodeBufferSize"));
+
gAudiop->startInternetStream(mNextStreamURI);
startFading();
}
@@ -386,7 +398,12 @@ void audio_update_volume(bool force_update)
gAudiop->setMasterGain ( master_volume );
gAudiop->setDopplerFactor(gSavedSettings.getF32("AudioLevelDoppler"));
- gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
+
+ if(!LLViewerCamera::getInstance()->cameraUnderWater())
+ gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
+ else
+ gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelUnderwaterRolloff"));
+
gAudiop->setMuted(mute_audio || progress_view_visible);
//Play any deferred sounds when unmuted
@@ -473,44 +490,22 @@ void audio_update_listener()
void audio_update_wind(bool force_update)
{
#ifdef kAUDIO_ENABLE_WIND
- //
- // Extract height above water to modulate filter by whether above/below water
- //
+
LLViewerRegion* region = gAgent.getRegion();
if (region)
{
- static F32 last_camera_water_height = -1000.f;
- LLVector3 camera_pos = gAgentCamera.getCameraPositionAgent();
- F32 camera_water_height = camera_pos.mV[VZ] - region->getWaterHeight();
-
- //
- // Don't update rolloff factor unless water surface has been crossed
- //
- if (force_update || (last_camera_water_height * camera_water_height) < 0.f)
- {
- static LLUICachedControl<F32> rolloff("AudioLevelRolloff", 1.0f);
- if (camera_water_height < 0.f)
- {
- gAudiop->setRolloffFactor(rolloff * LL_ROLLOFF_MULTIPLIER_UNDER_WATER);
- }
- else
- {
- gAudiop->setRolloffFactor(rolloff);
- }
- }
-
- // Scale down the contribution of weather-simulation wind to the
- // ambient wind noise. Wind velocity averages 3.5 m/s, with gusts to 7 m/s
- // whereas steady-state avatar walk velocity is only 3.2 m/s.
- // Without this the world feels desolate on first login when you are
- // standing still.
- static LLUICachedControl<F32> wind_level("AudioLevelWind", 0.5f);
- LLVector3 scaled_wind_vec = gWindVec * wind_level;
-
- // Mix in the avatar's motion, subtract because when you walk north,
- // the apparent wind moves south.
- LLVector3 final_wind_vec = scaled_wind_vec - gAgent.getVelocity();
-
+ // Scale down the contribution of weather-simulation wind to the
+ // ambient wind noise. Wind velocity averages 3.5 m/s, with gusts to 7 m/s
+ // whereas steady-state avatar walk velocity is only 3.2 m/s.
+ // Without this the world feels desolate on first login when you are
+ // standing still.
+ static LLUICachedControl<F32> wind_level("AudioLevelWind", 0.5f);
+ LLVector3 scaled_wind_vec = gWindVec * wind_level;
+
+ // Mix in the avatar's motion, subtract because when you walk north,
+ // the apparent wind moves south.
+ LLVector3 final_wind_vec = scaled_wind_vec - gAgent.getVelocity();
+
// rotate the wind vector to be listener (agent) relative
gRelativeWindVec = gAgent.getFrameAgent().rotateToLocal( final_wind_vec );
@@ -543,8 +538,7 @@ void audio_update_wind(bool force_update)
gAudiop->mMaxWindGain = llmax(gAudiop->mMaxWindGain - volume_delta, 0.f);
}
- last_camera_water_height = camera_water_height;
- gAudiop->updateWind(gRelativeWindVec, camera_water_height);
+ gAudiop->updateWind(gRelativeWindVec, gAgentCamera.getCameraPositionAgent()[VZ] - gAgent.getRegion()->getWaterHeight());
}
#endif
}
diff --git a/indra/newview/llvieweraudio.h b/indra/newview/llvieweraudio.h
index 8c302c6549..8c302c6549 100644..100755
--- a/indra/newview/llvieweraudio.h
+++ b/indra/newview/llvieweraudio.h
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp
index a437a8b3b5..b5aa0ac92a 100644..100755
--- a/indra/newview/llviewercamera.cpp
+++ b/indra/newview/llviewercamera.cpp
@@ -136,9 +136,6 @@ void LLViewerCamera::updateCameraLocation(const LLVector3 &center,
mLastPointOfInterest = point_of_interest;
- // constrain to max distance from avatar
- LLVector3 camera_offset = center - gAgent.getPositionAgent();
-
LLViewerRegion * regp = gAgent.getRegion();
F32 water_height = (NULL != regp) ? regp->getWaterHeight() : 0.f;
@@ -318,7 +315,7 @@ void LLViewerCamera::setPerspective(BOOL for_selection,
{
F32 fov_y, aspect;
fov_y = RAD_TO_DEG * getView();
- BOOL z_default_near, z_default_far = FALSE;
+ BOOL z_default_far = FALSE;
if (z_far <= 0)
{
z_default_far = TRUE;
@@ -326,7 +323,6 @@ void LLViewerCamera::setPerspective(BOOL for_selection,
}
if (z_near <= 0)
{
- z_default_near = TRUE;
z_near = getNear();
}
aspect = getAspect();
diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h
index b857c7fe89..b857c7fe89 100644..100755
--- a/indra/newview/llviewercamera.h
+++ b/indra/newview/llviewercamera.h
diff --git a/indra/newview/llviewerchat.cpp b/indra/newview/llviewerchat.cpp
index 93687dbd5f..93687dbd5f 100644..100755
--- a/indra/newview/llviewerchat.cpp
+++ b/indra/newview/llviewerchat.cpp
diff --git a/indra/newview/llviewerchat.h b/indra/newview/llviewerchat.h
index c05caf0a95..c05caf0a95 100644..100755
--- a/indra/newview/llviewerchat.h
+++ b/indra/newview/llviewerchat.h
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 051f5f4485..a62f73deef 100644..100755
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -655,6 +655,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
+ gSavedSettings.getControl("AudioLevelUnderwaterRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h
index d7191f5c8d..d7191f5c8d 100644..100755
--- a/indra/newview/llviewercontrol.h
+++ b/indra/newview/llviewercontrol.h
diff --git a/indra/newview/llviewercontrollistener.cpp b/indra/newview/llviewercontrollistener.cpp
index 361b96221c..361b96221c 100644..100755
--- a/indra/newview/llviewercontrollistener.cpp
+++ b/indra/newview/llviewercontrollistener.cpp
diff --git a/indra/newview/llviewercontrollistener.h b/indra/newview/llviewercontrollistener.h
index 2e72046924..2e72046924 100644..100755
--- a/indra/newview/llviewercontrollistener.h
+++ b/indra/newview/llviewercontrollistener.h
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 40577118ba..cf59e67955 100644..100755
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -1424,7 +1424,7 @@ void render_ui_2d()
gGL.pushMatrix();
S32 half_width = (gViewerWindow->getWorldViewWidthScaled() / 2);
S32 half_height = (gViewerWindow->getWorldViewHeightScaled() / 2);
- gGL.scalef(LLUI::sGLScaleFactor.mV[0], LLUI::sGLScaleFactor.mV[1], 1.f);
+ gGL.scalef(LLUI::getScaleFactor().mV[0], LLUI::getScaleFactor().mV[1], 1.f);
gGL.translatef((F32)half_width, (F32)half_height, 0.f);
F32 zoom = gAgentCamera.mHUDCurZoom;
gGL.scalef(zoom,zoom,1.f);
@@ -1462,10 +1462,10 @@ void render_ui_2d()
LLUI::sDirtyRect = last_rect;
last_rect = t_rect;
- last_rect.mLeft = LLRect::tCoordType(last_rect.mLeft / LLUI::sGLScaleFactor.mV[0]);
- last_rect.mRight = LLRect::tCoordType(last_rect.mRight / LLUI::sGLScaleFactor.mV[0]);
- last_rect.mTop = LLRect::tCoordType(last_rect.mTop / LLUI::sGLScaleFactor.mV[1]);
- last_rect.mBottom = LLRect::tCoordType(last_rect.mBottom / LLUI::sGLScaleFactor.mV[1]);
+ last_rect.mLeft = LLRect::tCoordType(last_rect.mLeft / LLUI::getScaleFactor().mV[0]);
+ last_rect.mRight = LLRect::tCoordType(last_rect.mRight / LLUI::getScaleFactor().mV[0]);
+ last_rect.mTop = LLRect::tCoordType(last_rect.mTop / LLUI::getScaleFactor().mV[1]);
+ last_rect.mBottom = LLRect::tCoordType(last_rect.mBottom / LLUI::getScaleFactor().mV[1]);
LLRect clip_rect(last_rect);
diff --git a/indra/newview/llviewerdisplay.h b/indra/newview/llviewerdisplay.h
index f6467d7f93..f6467d7f93 100644..100755
--- a/indra/newview/llviewerdisplay.h
+++ b/indra/newview/llviewerdisplay.h
diff --git a/indra/newview/llviewerdisplayname.cpp b/indra/newview/llviewerdisplayname.cpp
index 6bd5631df6..f81206ffec 100644..100755
--- a/indra/newview/llviewerdisplayname.cpp
+++ b/indra/newview/llviewerdisplayname.cpp
@@ -60,8 +60,10 @@ class LLSetDisplayNameResponder : public LLHTTPClient::Responder
{
public:
// only care about errors
- /*virtual*/ void error(U32 status, const std::string& reason)
+ /*virtual*/ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
+ llwarns << "LLSetDisplayNameResponder error [status:"
+ << status << "]: " << content << llendl;
LLViewerDisplayName::sSetDisplayNameSignal(false, "", LLSD());
LLViewerDisplayName::sSetDisplayNameSignal.disconnect_all_slots();
}
diff --git a/indra/newview/llviewerdisplayname.h b/indra/newview/llviewerdisplayname.h
index 16d59ae43b..16d59ae43b 100644..100755
--- a/indra/newview/llviewerdisplayname.h
+++ b/indra/newview/llviewerdisplayname.h
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index c6b28b9e5e..c6b28b9e5e 100644..100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
diff --git a/indra/newview/llviewerfloaterreg.h b/indra/newview/llviewerfloaterreg.h
index 8a827a003e..8a827a003e 100644..100755
--- a/indra/newview/llviewerfloaterreg.h
+++ b/indra/newview/llviewerfloaterreg.h
diff --git a/indra/newview/llviewerfoldertype.h b/indra/newview/llviewerfoldertype.h
index 13d5a8fbbd..13d5a8fbbd 100644..100755
--- a/indra/newview/llviewerfoldertype.h
+++ b/indra/newview/llviewerfoldertype.h
diff --git a/indra/newview/llviewergenericmessage.cpp b/indra/newview/llviewergenericmessage.cpp
index f8a2be14d4..f8a2be14d4 100644..100755
--- a/indra/newview/llviewergenericmessage.cpp
+++ b/indra/newview/llviewergenericmessage.cpp
diff --git a/indra/newview/llviewergenericmessage.h b/indra/newview/llviewergenericmessage.h
index 9d451ec0bc..9d451ec0bc 100644..100755
--- a/indra/newview/llviewergenericmessage.h
+++ b/indra/newview/llviewergenericmessage.h
diff --git a/indra/newview/llviewergesture.cpp b/indra/newview/llviewergesture.cpp
index 3f35a5001d..3f35a5001d 100644..100755
--- a/indra/newview/llviewergesture.cpp
+++ b/indra/newview/llviewergesture.cpp
diff --git a/indra/newview/llviewergesture.h b/indra/newview/llviewergesture.h
index 8dba10226b..8dba10226b 100644..100755
--- a/indra/newview/llviewergesture.h
+++ b/indra/newview/llviewergesture.h
diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp
index 04c2e27c9d..04c2e27c9d 100644..100755
--- a/indra/newview/llviewerhelp.cpp
+++ b/indra/newview/llviewerhelp.cpp
diff --git a/indra/newview/llviewerhelp.h b/indra/newview/llviewerhelp.h
index a983012e2e..a983012e2e 100644..100755
--- a/indra/newview/llviewerhelp.h
+++ b/indra/newview/llviewerhelp.h
diff --git a/indra/newview/llviewerhelputil.cpp b/indra/newview/llviewerhelputil.cpp
index ef4b955a5e..ef4b955a5e 100644..100755
--- a/indra/newview/llviewerhelputil.cpp
+++ b/indra/newview/llviewerhelputil.cpp
diff --git a/indra/newview/llviewerhelputil.h b/indra/newview/llviewerhelputil.h
index d8f08f3f04..d8f08f3f04 100644..100755
--- a/indra/newview/llviewerhelputil.h
+++ b/indra/newview/llviewerhelputil.h
diff --git a/indra/newview/llviewerhome.cpp b/indra/newview/llviewerhome.cpp
index e4e60b981c..e4e60b981c 100644..100755
--- a/indra/newview/llviewerhome.cpp
+++ b/indra/newview/llviewerhome.cpp
diff --git a/indra/newview/llviewerhome.h b/indra/newview/llviewerhome.h
index 8e0cdc85ec..8e0cdc85ec 100644..100755
--- a/indra/newview/llviewerhome.h
+++ b/indra/newview/llviewerhome.h
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index a187318eb7..fff9821e86 100644..100755
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -64,6 +64,11 @@
#include "llavatarnamecache.h"
#include "llavataractions.h"
#include "lllogininstance.h"
+#include "llfavoritesbar.h"
+
+// Two do-nothing ops for use in callbacks.
+void no_op_inventory_func(const LLUUID&) {}
+void no_op() {}
///----------------------------------------------------------------------------
/// Helper class to store special inventory item names and their localized values.
@@ -588,7 +593,7 @@ void LLViewerInventoryCategory::copyViewerCategory(const LLViewerInventoryCatego
{
copyCategory(other);
mOwnerID = other->mOwnerID;
- mVersion = other->mVersion;
+ setVersion(other->getVersion());
mDescendentCount = other->mDescendentCount;
mDescendentsRequested = other->mDescendentsRequested;
}
@@ -656,9 +661,19 @@ void LLViewerInventoryCategory::removeFromServer( void )
gAgent.sendReliableMessage();
}
+S32 LLViewerInventoryCategory::getVersion() const
+{
+ return mVersion;
+}
+
+void LLViewerInventoryCategory::setVersion(S32 version)
+{
+ mVersion = version;
+}
+
bool LLViewerInventoryCategory::fetch()
{
- if((VERSION_UNKNOWN == mVersion)
+ if((VERSION_UNKNOWN == getVersion())
&& mDescendentsRequested.hasExpired()) //Expired check prevents multiple downloads.
{
LL_DEBUGS("InventoryFetch") << "Fetching category children: " << mName << ", UUID: " << mUUID << LL_ENDL;
@@ -949,46 +964,7 @@ void LLInventoryCallbackManager::fire(U32 callback_id, const LLUUID& item_id)
}
}
-void WearOnAvatarCallback::fire(const LLUUID& inv_item)
-{
- if (inv_item.isNull())
- return;
-
- LLViewerInventoryItem *item = gInventory.getItem(inv_item);
- if (item)
- {
- LLAppearanceMgr::instance().wearItemOnAvatar(inv_item, true, mReplace);
- }
-}
-
-void ModifiedCOFCallback::fire(const LLUUID& inv_item)
-{
- LLAppearanceMgr::instance().updateAppearanceFromCOF();
-
- // Start editing the item if previously requested.
- gAgentWearables.editWearableIfRequested(inv_item);
-
- // TODO: camera mode may not be changed if a debug setting is tweaked
- if( gAgentCamera.cameraCustomizeAvatar() )
- {
- // If we're in appearance editing mode, the current tab may need to be refreshed
- LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
- if (panel)
- {
- panel->showDefaultSubpart();
- }
- }
-}
-
-RezAttachmentCallback::RezAttachmentCallback(LLViewerJointAttachment *attachmentp)
-{
- mAttach = attachmentp;
-}
-RezAttachmentCallback::~RezAttachmentCallback()
-{
-}
-
-void RezAttachmentCallback::fire(const LLUUID& inv_item)
+void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp)
{
if (inv_item.isNull())
return;
@@ -996,11 +972,11 @@ void RezAttachmentCallback::fire(const LLUUID& inv_item)
LLViewerInventoryItem *item = gInventory.getItem(inv_item);
if (item)
{
- rez_attachment(item, mAttach);
+ rez_attachment(item, attachmentp);
}
}
-void ActivateGestureCallback::fire(const LLUUID& inv_item)
+void activate_gesture_cb(const LLUUID& inv_item)
{
if (inv_item.isNull())
return;
@@ -1013,7 +989,7 @@ void ActivateGestureCallback::fire(const LLUUID& inv_item)
LLGestureMgr::instance().activateGesture(inv_item);
}
-void CreateGestureCallback::fire(const LLUUID& inv_item)
+void create_gesture_cb(const LLUUID& inv_item)
{
if (inv_item.isNull())
return;
@@ -1031,7 +1007,6 @@ void CreateGestureCallback::fire(const LLUUID& inv_item)
}
-
LLInventoryCallbackManager gInventoryCallbacks;
void create_inventory_item(const LLUUID& agent_id, const LLUUID& session_id,
@@ -1157,6 +1132,11 @@ void link_inventory_item(
}
}
+#if 1 // debugging stuff
+ LLViewerInventoryCategory* cat = gInventory.getCategory(parent_id);
+ lldebugs << "cat: " << cat << llendl;
+
+#endif
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_LinkInventoryItem);
msg->nextBlock(_PREHASH_AgentData);
@@ -1283,7 +1263,7 @@ void create_new_item(const std::string& name,
if (inv_type == LLInventoryType::IT_GESTURE)
{
- LLPointer<LLInventoryCallback> cb = new CreateGestureCallback();
+ LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(create_gesture_cb);
create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
NOT_WEARABLE, next_owner_perm, cb);
@@ -1444,6 +1424,28 @@ const std::string& LLViewerInventoryItem::getName() const
return LLInventoryItem::getName();
}
+S32 LLViewerInventoryItem::getSortField() const
+{
+ return LLFavoritesOrderStorage::instance().getSortIndex(mUUID);
+}
+
+//void LLViewerInventoryItem::setSortField(S32 sortField)
+//{
+// LLFavoritesOrderStorage::instance().setSortIndex(mUUID, sortField);
+// getSLURL();
+//}
+
+void LLViewerInventoryItem::getSLURL()
+{
+ LLFavoritesOrderStorage::instance().getSLURL(mAssetUUID);
+}
+
+const LLPermissions& LLViewerInventoryItem::getPermissions() const
+{
+ // Use the actual permissions of the symlink, not its parent.
+ return LLInventoryItem::getPermissions();
+}
+
const LLUUID& LLViewerInventoryItem::getCreatorUUID() const
{
if (const LLViewerInventoryItem *linked_item = getLinkedItem())
@@ -1514,6 +1516,17 @@ LLWearableType::EType LLViewerInventoryItem::getWearableType() const
return LLWearableType::EType(getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK);
}
+
+time_t LLViewerInventoryItem::getCreationDate() const
+{
+ return LLInventoryItem::getCreationDate();
+}
+
+U32 LLViewerInventoryItem::getCRC32() const
+{
+ return LLInventoryItem::getCRC32();
+}
+
// *TODO: mantipov: should be removed with LMSortPrefix patch in llinventorymodel.cpp, EXT-3985
static char getSeparator() { return '@'; }
BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName)
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index 3cf03c3bc5..61b1b8d846 100644..100755
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -35,6 +35,7 @@
#include <boost/signals2.hpp> // boost::signals2::trackable
class LLInventoryPanel;
+class LLFolderView;
class LLFolderBridge;
class LLViewerInventoryCategory;
@@ -60,6 +61,10 @@ public:
virtual const LLUUID& getAssetUUID() const;
virtual const LLUUID& getProtectedAssetUUID() const; // returns LLUUID::null if current agent does not have permission to expose this asset's UUID to the user
virtual const std::string& getName() const;
+ virtual S32 getSortField() const;
+ //virtual void setSortField(S32 sortField);
+ virtual void getSLURL(); //Caches SLURL for landmark. //*TODO: Find a better way to do it and remove this method from here.
+ virtual const LLPermissions& getPermissions() const;
virtual const bool getIsFullPerm() const; // 'fullperm' in the popular sense: modify-ok & copy-ok & transfer-ok, no special god rules applied
virtual const LLUUID& getCreatorUUID() const;
virtual const std::string& getDescription() const;
@@ -68,11 +73,8 @@ public:
virtual bool isWearableType() const;
virtual LLWearableType::EType getWearableType() const;
virtual U32 getFlags() const;
-
- using LLInventoryItem::getPermissions;
- using LLInventoryItem::getCreationDate;
- using LLInventoryItem::setCreationDate;
- using LLInventoryItem::getCRC32;
+ virtual time_t getCreationDate() const;
+ virtual U32 getCRC32() const; // really more of a checksum.
static BOOL extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName);
@@ -204,13 +206,13 @@ public:
// Version handling
enum { VERSION_UNKNOWN = -1, VERSION_INITIAL = 1 };
- S32 getVersion() const { return mVersion; }
- void setVersion(S32 version) { mVersion = version; }
+ S32 getVersion() const;
+ void setVersion(S32 version);
// Returns true if a fetch was issued.
bool fetch();
- // used to help make cacheing more robust - for example, if
+ // used to help make caching more robust - for example, if
// someone is getting 4 packets but logs out after 3. the viewer
// may never know the cache is wrong.
enum { DESCENDENT_COUNT_UNKNOWN = -1 };
@@ -218,7 +220,7 @@ public:
void setDescendentCount(S32 descendents) { mDescendentCount = descendents; }
// file handling on the viewer. These are not meant for anything
- // other than cacheing.
+ // other than caching.
bool exportFileLocal(LLFILE* fp) const;
bool importFileLocal(LLFILE* fp);
void determineFolderType();
@@ -241,47 +243,60 @@ public:
virtual void fire(const LLUUID& inv_item) = 0;
};
-class WearOnAvatarCallback : public LLInventoryCallback
+class LLViewerJointAttachment;
+
+void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp);
+
+void activate_gesture_cb(const LLUUID& inv_item);
+
+void create_gesture_cb(const LLUUID& inv_item);
+
+class AddFavoriteLandmarkCallback : public LLInventoryCallback
{
public:
- WearOnAvatarCallback(bool do_replace = false) : mReplace(do_replace) {}
-
+ AddFavoriteLandmarkCallback() : mTargetLandmarkId(LLUUID::null) {}
+ void setTargetLandmarkId(const LLUUID& target_uuid) { mTargetLandmarkId = target_uuid; }
+
+private:
void fire(const LLUUID& inv_item);
-protected:
- bool mReplace;
+ LLUUID mTargetLandmarkId;
};
-class ModifiedCOFCallback : public LLInventoryCallback
-{
- void fire(const LLUUID& inv_item);
-};
+typedef boost::function<void(const LLUUID&)> inventory_func_type;
+void no_op_inventory_func(const LLUUID&); // A do-nothing inventory_func
-class LLViewerJointAttachment;
+typedef boost::function<void()> nullary_func_type;
+void no_op(); // A do-nothing nullary func.
-class RezAttachmentCallback : public LLInventoryCallback
+// Shim between inventory callback and boost function/callable
+class LLBoostFuncInventoryCallback: public LLInventoryCallback
{
public:
- RezAttachmentCallback(LLViewerJointAttachment *attachmentp);
- void fire(const LLUUID& inv_item);
-protected:
- ~RezAttachmentCallback();
+ LLBoostFuncInventoryCallback(inventory_func_type fire_func,
+ nullary_func_type destroy_func = no_op):
+ mFireFunc(fire_func),
+ mDestroyFunc(destroy_func)
+ {
+ }
-private:
- LLViewerJointAttachment* mAttach;
-};
+ // virtual
+ void fire(const LLUUID& item_id)
+ {
+ mFireFunc(item_id);
+ }
-class ActivateGestureCallback : public LLInventoryCallback
-{
-public:
- void fire(const LLUUID& inv_item);
-};
+ // virtual
+ ~LLBoostFuncInventoryCallback()
+ {
+ mDestroyFunc();
+ }
+
-class CreateGestureCallback : public LLInventoryCallback
-{
-public:
- void fire(const LLUUID& inv_item);
+private:
+ inventory_func_type mFireFunc;
+ nullary_func_type mDestroyFunc;
};
// misc functions
diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp
index a907f102f8..e46299f9d2 100644..100755
--- a/indra/newview/llviewerjoint.cpp
+++ b/indra/newview/llviewerjoint.cpp
@@ -35,50 +35,26 @@
#include "llrender.h"
#include "llmath.h"
#include "llglheaders.h"
-#include "llrendersphere.h"
#include "llvoavatar.h"
#include "pipeline.h"
-#define DEFAULT_LOD 0.0f
-
-const S32 MIN_PIXEL_AREA_3PASS_HAIR = 64*64;
-
-//-----------------------------------------------------------------------------
-// Static Data
-//-----------------------------------------------------------------------------
-BOOL LLViewerJoint::sDisableLOD = FALSE;
+static const S32 MIN_PIXEL_AREA_3PASS_HAIR = 64*64;
//-----------------------------------------------------------------------------
// LLViewerJoint()
-// Class Constructor
+// Class Constructors
//-----------------------------------------------------------------------------
-LLViewerJoint::LLViewerJoint()
- : LLJoint()
-{
- init();
-}
+LLViewerJoint::LLViewerJoint() :
+ LLAvatarJoint()
+{ }
+LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) :
+ LLAvatarJoint(name, parent)
+{ }
-//-----------------------------------------------------------------------------
-// LLViewerJoint()
-// Class Constructor
-//-----------------------------------------------------------------------------
-LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent)
- : LLJoint(name, parent)
-{
- init();
-}
-
-
-void LLViewerJoint::init()
-{
- mValid = FALSE;
- mComponents = SC_JOINT | SC_BONE | SC_AXES;
- mMinPixelArea = DEFAULT_LOD;
- mPickName = PN_DEFAULT;
- mVisible = TRUE;
- mMeshID = 0;
-}
+LLViewerJoint::LLViewerJoint(S32 joint_num) :
+ LLAvatarJoint(joint_num)
+{ }
//-----------------------------------------------------------------------------
@@ -89,154 +65,6 @@ LLViewerJoint::~LLViewerJoint()
{
}
-
-//--------------------------------------------------------------------
-// setValid()
-//--------------------------------------------------------------------
-void LLViewerJoint::setValid( BOOL valid, BOOL recursive )
-{
- //----------------------------------------------------------------
- // set visibility for this joint
- //----------------------------------------------------------------
- mValid = valid;
-
- //----------------------------------------------------------------
- // set visibility for children
- //----------------------------------------------------------------
- if (recursive)
- {
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->setValid(valid, TRUE);
- }
- }
-
-}
-
-//--------------------------------------------------------------------
-// renderSkeleton()
-// DEBUG (UNUSED)
-//--------------------------------------------------------------------
-// void LLViewerJoint::renderSkeleton(BOOL recursive)
-// {
-// F32 nc = 0.57735f;
-
-// //----------------------------------------------------------------
-// // push matrix stack
-// //----------------------------------------------------------------
-// gGL.pushMatrix();
-
-// //----------------------------------------------------------------
-// // render the bone to my parent
-// //----------------------------------------------------------------
-// if (mComponents & SC_BONE)
-// {
-// drawBone();
-// }
-
-// //----------------------------------------------------------------
-// // offset to joint position and
-// // rotate to our orientation
-// //----------------------------------------------------------------
-// gGL.loadIdentity();
-// gGL.multMatrix( &getWorldMatrix().mMatrix[0][0] );
-
-// //----------------------------------------------------------------
-// // render joint axes
-// //----------------------------------------------------------------
-// if (mComponents & SC_AXES)
-// {
-// gGL.begin(LLRender::LINES);
-// gGL.color3f( 1.0f, 0.0f, 0.0f );
-// gGL.vertex3f( 0.0f, 0.0f, 0.0f );
-// gGL.vertex3f( 0.1f, 0.0f, 0.0f );
-
-// gGL.color3f( 0.0f, 1.0f, 0.0f );
-// gGL.vertex3f( 0.0f, 0.0f, 0.0f );
-// gGL.vertex3f( 0.0f, 0.1f, 0.0f );
-
-// gGL.color3f( 0.0f, 0.0f, 1.0f );
-// gGL.vertex3f( 0.0f, 0.0f, 0.0f );
-// gGL.vertex3f( 0.0f, 0.0f, 0.1f );
-// gGL.end();
-// }
-
-// //----------------------------------------------------------------
-// // render the joint graphic
-// //----------------------------------------------------------------
-// if (mComponents & SC_JOINT)
-// {
-// gGL.color3f( 1.0f, 1.0f, 0.0f );
-
-// gGL.begin(LLRender::TRIANGLES);
-
-// // joint top half
-// glNormal3f(nc, nc, nc);
-// gGL.vertex3f(0.0f, 0.0f, 0.05f);
-// gGL.vertex3f(0.05f, 0.0f, 0.0f);
-// gGL.vertex3f(0.0f, 0.05f, 0.0f);
-
-// glNormal3f(-nc, nc, nc);
-// gGL.vertex3f(0.0f, 0.0f, 0.05f);
-// gGL.vertex3f(0.0f, 0.05f, 0.0f);
-// gGL.vertex3f(-0.05f, 0.0f, 0.0f);
-
-// glNormal3f(-nc, -nc, nc);
-// gGL.vertex3f(0.0f, 0.0f, 0.05f);
-// gGL.vertex3f(-0.05f, 0.0f, 0.0f);
-// gGL.vertex3f(0.0f, -0.05f, 0.0f);
-
-// glNormal3f(nc, -nc, nc);
-// gGL.vertex3f(0.0f, 0.0f, 0.05f);
-// gGL.vertex3f(0.0f, -0.05f, 0.0f);
-// gGL.vertex3f(0.05f, 0.0f, 0.0f);
-
-// // joint bottom half
-// glNormal3f(nc, nc, -nc);
-// gGL.vertex3f(0.0f, 0.0f, -0.05f);
-// gGL.vertex3f(0.0f, 0.05f, 0.0f);
-// gGL.vertex3f(0.05f, 0.0f, 0.0f);
-
-// glNormal3f(-nc, nc, -nc);
-// gGL.vertex3f(0.0f, 0.0f, -0.05f);
-// gGL.vertex3f(-0.05f, 0.0f, 0.0f);
-// gGL.vertex3f(0.0f, 0.05f, 0.0f);
-
-// glNormal3f(-nc, -nc, -nc);
-// gGL.vertex3f(0.0f, 0.0f, -0.05f);
-// gGL.vertex3f(0.0f, -0.05f, 0.0f);
-// gGL.vertex3f(-0.05f, 0.0f, 0.0f);
-
-// glNormal3f(nc, -nc, -nc);
-// gGL.vertex3f(0.0f, 0.0f, -0.05f);
-// gGL.vertex3f(0.05f, 0.0f, 0.0f);
-// gGL.vertex3f(0.0f, -0.05f, 0.0f);
-
-// gGL.end();
-// }
-
-// //----------------------------------------------------------------
-// // render children
-// //----------------------------------------------------------------
-// if (recursive)
-// {
-// for (child_list_t::iterator iter = mChildren.begin();
-// iter != mChildren.end(); ++iter)
-// {
-// LLViewerJoint* joint = (LLViewerJoint*)(*iter);
-// joint->renderSkeleton();
-// }
-// }
-
-// //----------------------------------------------------------------
-// // pop matrix stack
-// //----------------------------------------------------------------
-// gGL.popMatrix();
-// }
-
-
//--------------------------------------------------------------------
// render()
//--------------------------------------------------------------------
@@ -317,13 +145,13 @@ U32 LLViewerJoint::render( F32 pixelArea, BOOL first_pass, BOOL is_dummy )
for (child_list_t::iterator iter = mChildren.begin();
iter != mChildren.end(); ++iter)
{
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
+ LLAvatarJoint* joint = dynamic_cast<LLAvatarJoint*>(*iter);
F32 jointLOD = joint->getLOD();
if (pixelArea >= jointLOD || sDisableLOD)
{
triangle_count += joint->render( pixelArea, TRUE, is_dummy );
- if (jointLOD != DEFAULT_LOD)
+ if (jointLOD != DEFAULT_AVATAR_JOINT_LOD)
{
break;
}
@@ -333,72 +161,6 @@ U32 LLViewerJoint::render( F32 pixelArea, BOOL first_pass, BOOL is_dummy )
return triangle_count;
}
-
-//--------------------------------------------------------------------
-// drawBone()
-// DEBUG (UNUSED)
-//--------------------------------------------------------------------
-// void LLViewerJoint::drawBone()
-// {
-// if ( mParent == NULL )
-// return;
-
-// F32 boneSize = 0.02f;
-
-// // rotate to point to child (bone direction)
-// gGL.pushMatrix();
-
-// LLVector3 boneX = getPosition();
-// F32 length = boneX.normVec();
-
-// LLVector3 boneZ(1.0f, 0.0f, 1.0f);
-
-// LLVector3 boneY = boneZ % boneX;
-// boneY.normVec();
-
-// boneZ = boneX % boneY;
-
-// LLMatrix4 rotateMat;
-// rotateMat.setFwdRow( boneX );
-// rotateMat.setLeftRow( boneY );
-// rotateMat.setUpRow( boneZ );
-// gGL.multMatrix( &rotateMat.mMatrix[0][0] );
-
-// // render the bone
-// gGL.color3f( 0.5f, 0.5f, 0.0f );
-
-// gGL.begin(LLRender::TRIANGLES);
-
-// gGL.vertex3f( length, 0.0f, 0.0f);
-// gGL.vertex3f( 0.0f, boneSize, 0.0f);
-// gGL.vertex3f( 0.0f, 0.0f, boneSize);
-
-// gGL.vertex3f( length, 0.0f, 0.0f);
-// gGL.vertex3f( 0.0f, 0.0f, -boneSize);
-// gGL.vertex3f( 0.0f, boneSize, 0.0f);
-
-// gGL.vertex3f( length, 0.0f, 0.0f);
-// gGL.vertex3f( 0.0f, -boneSize, 0.0f);
-// gGL.vertex3f( 0.0f, 0.0f, -boneSize);
-
-// gGL.vertex3f( length, 0.0f, 0.0f);
-// gGL.vertex3f( 0.0f, 0.0f, boneSize);
-// gGL.vertex3f( 0.0f, -boneSize, 0.0f);
-
-// gGL.end();
-
-// // restore matrix
-// gGL.popMatrix();
-// }
-
-//--------------------------------------------------------------------
-// isTransparent()
-//--------------------------------------------------------------------
-BOOL LLViewerJoint::isTransparent()
-{
- return FALSE;
-}
-
//--------------------------------------------------------------------
// drawShape()
//--------------------------------------------------------------------
@@ -407,213 +169,4 @@ U32 LLViewerJoint::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy )
return 0;
}
-//--------------------------------------------------------------------
-// setSkeletonComponents()
-//--------------------------------------------------------------------
-void LLViewerJoint::setSkeletonComponents( U32 comp, BOOL recursive )
-{
- mComponents = comp;
- if (recursive)
- {
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->setSkeletonComponents(comp, recursive);
- }
- }
-}
-
-void LLViewerJoint::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area)
-{
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->updateFaceSizes(num_vertices, num_indices, pixel_area);
- }
-}
-
-void LLViewerJoint::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind, bool terse_update)
-{
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->updateFaceData(face, pixel_area, damp_wind, terse_update);
- }
-}
-
-void LLViewerJoint::updateJointGeometry()
-{
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->updateJointGeometry();
- }
-}
-
-
-BOOL LLViewerJoint::updateLOD(F32 pixel_area, BOOL activate)
-{
- BOOL lod_changed = FALSE;
- BOOL found_lod = FALSE;
-
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- F32 jointLOD = joint->getLOD();
-
- if (found_lod || jointLOD == DEFAULT_LOD)
- {
- // we've already found a joint to enable, so enable the rest as alternatives
- lod_changed |= joint->updateLOD(pixel_area, TRUE);
- }
- else
- {
- if (pixel_area >= jointLOD || sDisableLOD)
- {
- lod_changed |= joint->updateLOD(pixel_area, TRUE);
- found_lod = TRUE;
- }
- else
- {
- lod_changed |= joint->updateLOD(pixel_area, FALSE);
- }
- }
- }
- return lod_changed;
-}
-
-void LLViewerJoint::dump()
-{
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->dump();
- }
-}
-
-void LLViewerJoint::setVisible(BOOL visible, BOOL recursive)
-{
- mVisible = visible;
-
- if (recursive)
- {
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end(); ++iter)
- {
- LLViewerJoint* joint = (LLViewerJoint*)(*iter);
- joint->setVisible(visible, recursive);
- }
- }
-}
-
-
-void LLViewerJoint::setMeshesToChildren()
-{
- removeAllChildren();
- for (std::vector<LLViewerJointMesh*>::iterator iter = mMeshParts.begin();
- iter != mMeshParts.end(); iter++)
- {
- addChild((LLViewerJointMesh *) *iter);
- }
-}
-//-----------------------------------------------------------------------------
-// LLViewerJointCollisionVolume()
-//-----------------------------------------------------------------------------
-
-LLViewerJointCollisionVolume::LLViewerJointCollisionVolume()
-{
- mUpdateXform = FALSE;
-}
-
-LLViewerJointCollisionVolume::LLViewerJointCollisionVolume(const std::string &name, LLJoint *parent) : LLViewerJoint(name, parent)
-{
-
-}
-
-void LLViewerJointCollisionVolume::renderCollision()
-{
- updateWorldMatrix();
-
- gGL.pushMatrix();
- gGL.multMatrix( &mXform.getWorldMatrix().mMatrix[0][0] );
-
- gGL.diffuseColor3f( 0.f, 0.f, 1.f );
-
- gGL.begin(LLRender::LINES);
-
- LLVector3 v[] =
- {
- LLVector3(1,0,0),
- LLVector3(-1,0,0),
- LLVector3(0,1,0),
- LLVector3(0,-1,0),
-
- LLVector3(0,0,-1),
- LLVector3(0,0,1),
- };
-
- //sides
- gGL.vertex3fv(v[0].mV);
- gGL.vertex3fv(v[2].mV);
-
- gGL.vertex3fv(v[0].mV);
- gGL.vertex3fv(v[3].mV);
-
- gGL.vertex3fv(v[1].mV);
- gGL.vertex3fv(v[2].mV);
-
- gGL.vertex3fv(v[1].mV);
- gGL.vertex3fv(v[3].mV);
-
-
- //top
- gGL.vertex3fv(v[0].mV);
- gGL.vertex3fv(v[4].mV);
-
- gGL.vertex3fv(v[1].mV);
- gGL.vertex3fv(v[4].mV);
-
- gGL.vertex3fv(v[2].mV);
- gGL.vertex3fv(v[4].mV);
-
- gGL.vertex3fv(v[3].mV);
- gGL.vertex3fv(v[4].mV);
-
-
- //bottom
- gGL.vertex3fv(v[0].mV);
- gGL.vertex3fv(v[5].mV);
-
- gGL.vertex3fv(v[1].mV);
- gGL.vertex3fv(v[5].mV);
-
- gGL.vertex3fv(v[2].mV);
- gGL.vertex3fv(v[5].mV);
-
- gGL.vertex3fv(v[3].mV);
- gGL.vertex3fv(v[5].mV);
-
- gGL.end();
-
- gGL.popMatrix();
-}
-
-LLVector3 LLViewerJointCollisionVolume::getVolumePos(LLVector3 &offset)
-{
- mUpdateXform = TRUE;
-
- LLVector3 result = offset;
- result.scaleVec(getScale());
- result.rotVec(getWorldRotation());
- result += getWorldPosition();
-
- return result;
-}
-
// End
diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h
index 76e3833acb..fd262b6e80 100644..100755
--- a/indra/newview/llviewerjoint.h
+++ b/indra/newview/llviewerjoint.h
@@ -30,7 +30,8 @@
//-----------------------------------------------------------------------------
// Header Files
//-----------------------------------------------------------------------------
-#include "lljoint.h"
+#include "llavatarjoint.h"
+#include "lljointpickname.h"
class LLFace;
class LLViewerJointMesh;
@@ -39,124 +40,25 @@ class LLViewerJointMesh;
// class LLViewerJoint
//-----------------------------------------------------------------------------
class LLViewerJoint :
- public LLJoint
+ public virtual LLAvatarJoint
{
public:
LLViewerJoint();
+ LLViewerJoint(S32 joint_num);
+ // *TODO: Only used for LLVOAvatarSelf::mScreenp. *DOES NOT INITIALIZE mResetAfterRestoreOldXform*
LLViewerJoint(const std::string &name, LLJoint *parent = NULL);
virtual ~LLViewerJoint();
- // Gets the validity of this joint
- BOOL getValid() { return mValid; }
-
- // Sets the validity of this joint
- virtual void setValid( BOOL valid, BOOL recursive=FALSE );
-
- // Primarily for debugging and character setup
- // Derived classes may add text/graphic output.
- // Draw skeleton graphic for debugging and character setup
- void renderSkeleton(BOOL recursive=TRUE); // debug only (unused)
-
- // Draws a bone graphic to the parent joint.
- // Derived classes may add text/graphic output.
- // Called by renderSkeleton().
- void drawBone(); // debug only (unused)
-
// Render character hierarchy.
// Traverses the entire joint hierarchy, setting up
// transforms and calling the drawShape().
// Derived classes may add text/graphic output.
virtual U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE ); // Returns triangle count
- // Returns true if this object is transparent.
- // This is used to determine in which order to draw objects.
- virtual BOOL isTransparent();
-
- // Returns true if this object should inherit scale modifiers from its immediate parent
- virtual BOOL inheritScale() { return FALSE; }
-
// Draws the shape attached to a joint.
// Called by render().
virtual U32 drawShape( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE );
virtual void drawNormals() {}
-
- enum Components
- {
- SC_BONE = 1,
- SC_JOINT = 2,
- SC_AXES = 4
- };
-
- // Selects which skeleton components to draw
- void setSkeletonComponents( U32 comp, BOOL recursive = TRUE );
-
- // Returns which skeleton components are enables for drawing
- U32 getSkeletonComponents() { return mComponents; }
-
- // Sets the level of detail for this node as a minimum
- // pixel area threshold. If the current pixel area for this
- // object is less than the specified threshold, the node is
- // not traversed. In addition, if a value is specified (not
- // default of 0.0), and the pixel area is larger than the
- // specified minimum, the node is rendered, but no other siblings
- // of this node under the same parent will be.
- F32 getLOD() { return mMinPixelArea; }
- void setLOD( F32 pixelArea ) { mMinPixelArea = pixelArea; }
-
- // Sets the OpenGL selection stack name that is pushed and popped
- // with this joint state. The default value indicates that no name
- // should be pushed/popped.
- enum PickName
- {
- PN_DEFAULT = -1,
- PN_0 = 0,
- PN_1 = 1,
- PN_2 = 2,
- PN_3 = 3,
- PN_4 = 4,
- PN_5 = 5
- };
- void setPickName(PickName name) { mPickName = name; }
- PickName getPickName() { return mPickName; }
-
- virtual void updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area);
- virtual void updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind = FALSE, bool terse_update = false);
- virtual BOOL updateLOD(F32 pixel_area, BOOL activate);
- virtual void updateJointGeometry();
- virtual void dump();
-
- void setVisible( BOOL visible, BOOL recursive );
-
- // Takes meshes in mMeshParts and sets each one as a child joint
- void setMeshesToChildren();
-
-public:
- static BOOL sDisableLOD;
- std::vector<LLViewerJointMesh*> mMeshParts;
- void setMeshID( S32 id ) {mMeshID = id;}
-
-protected:
- void init();
-
- BOOL mValid;
- U32 mComponents;
- F32 mMinPixelArea;
- PickName mPickName;
- BOOL mVisible;
- S32 mMeshID;
-};
-
-class LLViewerJointCollisionVolume : public LLViewerJoint
-{
-public:
- LLViewerJointCollisionVolume();
- LLViewerJointCollisionVolume(const std::string &name, LLJoint *parent = NULL);
- virtual ~LLViewerJointCollisionVolume() {};
-
- virtual BOOL inheritScale() { return TRUE; }
-
- void renderCollision();
- LLVector3 getVolumePos(LLVector3 &offset);
};
#endif // LL_LLVIEWERJOINT_H
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index 3a04bbed4f..3a04bbed4f 100644..100755
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index 9addafaee1..9addafaee1 100644..100755
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp
index 5d1aa870a3..64454a03d1 100644..100755
--- a/indra/newview/llviewerjointmesh.cpp
+++ b/indra/newview/llviewerjointmesh.cpp
@@ -42,7 +42,7 @@
#include "llface.h"
#include "llgldbg.h"
#include "llglheaders.h"
-#include "lltexlayer.h"
+#include "llviewertexlayer.h"
#include "llviewercamera.h"
#include "llviewercontrol.h"
#include "llviewertexturelist.h"
@@ -67,101 +67,20 @@ static const U32 sRenderMask = LLVertexBuffer::MAP_VERTEX |
LLVertexBuffer::MAP_NORMAL |
LLVertexBuffer::MAP_TEXCOORD0;
-
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// LLViewerJointMesh::LLSkinJoint
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// LLSkinJoint
-//-----------------------------------------------------------------------------
-LLSkinJoint::LLSkinJoint()
-{
- mJoint = NULL;
-}
-
-//-----------------------------------------------------------------------------
-// ~LLSkinJoint
-//-----------------------------------------------------------------------------
-LLSkinJoint::~LLSkinJoint()
-{
- mJoint = NULL;
-}
-
-
-//-----------------------------------------------------------------------------
-// LLSkinJoint::setupSkinJoint()
-//-----------------------------------------------------------------------------
-BOOL LLSkinJoint::setupSkinJoint( LLViewerJoint *joint)
-{
- // find the named joint
- mJoint = joint;
- if ( !mJoint )
- {
- llinfos << "Can't find joint" << llendl;
- }
-
- // compute the inverse root skin matrix
- mRootToJointSkinOffset.clearVec();
-
- LLVector3 rootSkinOffset;
- while (joint)
- {
- rootSkinOffset += joint->getSkinOffset();
- joint = (LLViewerJoint*)joint->getParent();
- }
-
- mRootToJointSkinOffset = -rootSkinOffset;
- mRootToParentJointSkinOffset = mRootToJointSkinOffset;
- mRootToParentJointSkinOffset += mJoint->getSkinOffset();
-
- return TRUE;
-}
-
-
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// LLViewerJointMesh
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
-BOOL LLViewerJointMesh::sPipelineRender = FALSE;
-EAvatarRenderPass LLViewerJointMesh::sRenderPass = AVATAR_RENDER_PASS_SINGLE;
-U32 LLViewerJointMesh::sClothingMaskImageName = 0;
-LLColor4 LLViewerJointMesh::sClothingInnerColor;
//-----------------------------------------------------------------------------
// LLViewerJointMesh()
//-----------------------------------------------------------------------------
LLViewerJointMesh::LLViewerJointMesh()
:
- mTexture( NULL ),
- mLayerSet( NULL ),
- mTestImageName( 0 ),
- mFaceIndexCount(0),
- mIsTransparent(FALSE)
+ LLAvatarJointMesh()
{
-
- mColor[0] = 1.0f;
- mColor[1] = 1.0f;
- mColor[2] = 1.0f;
- mColor[3] = 1.0f;
- mShiny = 0.0f;
- mCullBackFaces = TRUE;
-
- mMesh = NULL;
-
- mNumSkinJoints = 0;
- mSkinJoints = NULL;
-
- mFace = NULL;
-
- mMeshID = 0;
- mUpdateXform = FALSE;
-
- mValid = FALSE;
}
@@ -171,199 +90,6 @@ LLViewerJointMesh::LLViewerJointMesh()
//-----------------------------------------------------------------------------
LLViewerJointMesh::~LLViewerJointMesh()
{
- mMesh = NULL;
- mTexture = NULL;
- freeSkinData();
-}
-
-
-//-----------------------------------------------------------------------------
-// LLViewerJointMesh::allocateSkinData()
-//-----------------------------------------------------------------------------
-BOOL LLViewerJointMesh::allocateSkinData( U32 numSkinJoints )
-{
- mSkinJoints = new LLSkinJoint[ numSkinJoints ];
- mNumSkinJoints = numSkinJoints;
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLViewerJointMesh::freeSkinData()
-//-----------------------------------------------------------------------------
-void LLViewerJointMesh::freeSkinData()
-{
- mNumSkinJoints = 0;
- delete [] mSkinJoints;
- mSkinJoints = NULL;
-}
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::getColor()
-//--------------------------------------------------------------------
-void LLViewerJointMesh::getColor( F32 *red, F32 *green, F32 *blue, F32 *alpha )
-{
- *red = mColor[0];
- *green = mColor[1];
- *blue = mColor[2];
- *alpha = mColor[3];
-}
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::setColor()
-//--------------------------------------------------------------------
-void LLViewerJointMesh::setColor( F32 red, F32 green, F32 blue, F32 alpha )
-{
- mColor[0] = red;
- mColor[1] = green;
- mColor[2] = blue;
- mColor[3] = alpha;
-}
-
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::getTexture()
-//--------------------------------------------------------------------
-//LLViewerTexture *LLViewerJointMesh::getTexture()
-//{
-// return mTexture;
-//}
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::setTexture()
-//--------------------------------------------------------------------
-void LLViewerJointMesh::setTexture( LLViewerTexture *texture )
-{
- mTexture = texture;
-
- // texture and dynamic_texture are mutually exclusive
- if( texture )
- {
- mLayerSet = NULL;
- //texture->bindTexture(0);
- //texture->setClamp(TRUE, TRUE);
- }
-}
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::setLayerSet()
-// Sets the shape texture (takes precedence over normal texture)
-//--------------------------------------------------------------------
-void LLViewerJointMesh::setLayerSet( LLTexLayerSet* layer_set )
-{
- mLayerSet = layer_set;
-
- // texture and dynamic_texture are mutually exclusive
- if( layer_set )
- {
- mTexture = NULL;
- }
-}
-
-
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::getMesh()
-//--------------------------------------------------------------------
-LLPolyMesh *LLViewerJointMesh::getMesh()
-{
- return mMesh;
-}
-
-//-----------------------------------------------------------------------------
-// LLViewerJointMesh::setMesh()
-//-----------------------------------------------------------------------------
-void LLViewerJointMesh::setMesh( LLPolyMesh *mesh )
-{
- // set the mesh pointer
- mMesh = mesh;
-
- // release any existing skin joints
- freeSkinData();
-
- if ( mMesh == NULL )
- {
- return;
- }
-
- // acquire the transform from the mesh object
- setPosition( mMesh->getPosition() );
- setRotation( mMesh->getRotation() );
- setScale( mMesh->getScale() );
-
- // create skin joints if necessary
- if ( mMesh->hasWeights() && !mMesh->isLOD())
- {
- U32 numJointNames = mMesh->getNumJointNames();
-
- allocateSkinData( numJointNames );
- std::string *jointNames = mMesh->getJointNames();
-
- U32 jn;
- for (jn = 0; jn < numJointNames; jn++)
- {
- //llinfos << "Setting up joint " << jointNames[jn] << llendl;
- LLViewerJoint* joint = (LLViewerJoint*)(getRoot()->findJoint(jointNames[jn]) );
- mSkinJoints[jn].setupSkinJoint( joint );
- }
- }
-
- // setup joint array
- if (!mMesh->isLOD())
- {
- setupJoint((LLViewerJoint*)getRoot());
- }
-
-// llinfos << "joint render entries: " << mMesh->mJointRenderData.count() << llendl;
-}
-
-//-----------------------------------------------------------------------------
-// setupJoint()
-//-----------------------------------------------------------------------------
-void LLViewerJointMesh::setupJoint(LLViewerJoint* current_joint)
-{
-// llinfos << "Mesh: " << getName() << llendl;
-
-// S32 joint_count = 0;
- U32 sj;
- for (sj=0; sj<mNumSkinJoints; sj++)
- {
- LLSkinJoint &js = mSkinJoints[sj];
-
- if (js.mJoint != current_joint)
- {
- continue;
- }
-
- // we've found a skinjoint for this joint..
-
- // is the last joint in the array our parent?
- if(mMesh->mJointRenderData.count() && mMesh->mJointRenderData[mMesh->mJointRenderData.count() - 1]->mWorldMatrix == &current_joint->getParent()->getWorldMatrix())
- {
- // ...then just add ourselves
- LLViewerJoint* jointp = js.mJoint;
- mMesh->mJointRenderData.put(new LLJointRenderData(&jointp->getWorldMatrix(), &js));
-// llinfos << "joint " << joint_count << js.mJoint->getName() << llendl;
-// joint_count++;
- }
- // otherwise add our parent and ourselves
- else
- {
- mMesh->mJointRenderData.put(new LLJointRenderData(&current_joint->getParent()->getWorldMatrix(), NULL));
-// llinfos << "joint " << joint_count << current_joint->getParent()->getName() << llendl;
-// joint_count++;
- mMesh->mJointRenderData.put(new LLJointRenderData(&current_joint->getWorldMatrix(), &js));
-// llinfos << "joint " << joint_count << current_joint->getName() << llendl;
-// joint_count++;
- }
- }
-
- // depth-first traversal
- for (LLJoint::child_list_t::iterator iter = current_joint->mChildren.begin();
- iter != current_joint->mChildren.end(); ++iter)
- {
- LLViewerJoint* child_joint = (LLViewerJoint*)(*iter);
- setupJoint(child_joint);
- }
}
const S32 NUM_AXES = 3;
@@ -475,21 +201,6 @@ void LLViewerJointMesh::uploadJointMatrices()
}
//--------------------------------------------------------------------
-// LLViewerJointMesh::drawBone()
-//--------------------------------------------------------------------
-void LLViewerJointMesh::drawBone()
-{
-}
-
-//--------------------------------------------------------------------
-// LLViewerJointMesh::isTransparent()
-//--------------------------------------------------------------------
-BOOL LLViewerJointMesh::isTransparent()
-{
- return mIsTransparent;
-}
-
-//--------------------------------------------------------------------
// DrawElementsBLEND and utility code
//--------------------------------------------------------------------
@@ -544,6 +255,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy)
llassert( !(mTexture.notNull() && mLayerSet) ); // mutually exclusive
LLTexUnit::eTextureAddressMode old_mode = LLTexUnit::TAM_WRAP;
+ LLViewerTexLayerSet *layerset = dynamic_cast<LLViewerTexLayerSet*>(mLayerSet);
if (mTestImageName)
{
gGL.getTexUnit(diffuse_channel)->bindManual(LLTexUnit::TT_TEXTURE, mTestImageName);
@@ -558,11 +270,11 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy)
gGL.getTexUnit(diffuse_channel)->setTextureColorBlend(LLTexUnit::TBO_LERP_TEX_ALPHA, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR);
}
}
- else if( !is_dummy && mLayerSet )
+ else if( !is_dummy && layerset )
{
- if( mLayerSet->hasComposite() )
+ if( layerset->hasComposite() )
{
- gGL.getTexUnit(diffuse_channel)->bind(mLayerSet->getComposite());
+ gGL.getTexUnit(diffuse_channel)->bind(layerset->getViewerComposite());
}
else
{
diff --git a/indra/newview/llviewerjointmesh.h b/indra/newview/llviewerjointmesh.h
index dd5dae1dc1..0db2836e15 100644..100755
--- a/indra/newview/llviewerjointmesh.h
+++ b/indra/newview/llviewerjointmesh.h
@@ -1,6 +1,6 @@
/**
* @file llviewerjointmesh.h
- * @brief Implementation of LLViewerJointMesh class
+ * @brief Declaration of LLViewerJointMesh class
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
@@ -29,64 +29,20 @@
#include "llviewerjoint.h"
#include "llviewertexture.h"
+#include "llavatarjointmesh.h"
#include "llpolymesh.h"
#include "v4color.h"
class LLDrawable;
class LLFace;
class LLCharacter;
-class LLTexLayerSet;
-
-typedef enum e_avatar_render_pass
-{
- AVATAR_RENDER_PASS_SINGLE,
- AVATAR_RENDER_PASS_CLOTHING_INNER,
- AVATAR_RENDER_PASS_CLOTHING_OUTER
-} EAvatarRenderPass;
-
-class LLSkinJoint
-{
-public:
- LLSkinJoint();
- ~LLSkinJoint();
- BOOL setupSkinJoint( LLViewerJoint *joint);
-
- LLViewerJoint *mJoint;
- LLVector3 mRootToJointSkinOffset;
- LLVector3 mRootToParentJointSkinOffset;
-};
+class LLViewerTexLayerSet;
//-----------------------------------------------------------------------------
// class LLViewerJointMesh
//-----------------------------------------------------------------------------
-class LLViewerJointMesh : public LLViewerJoint
+class LLViewerJointMesh : public LLAvatarJointMesh, public LLViewerJoint
{
- friend class LLVOAvatar;
-protected:
- LLColor4 mColor; // color value
-// LLColor4 mSpecular; // specular color (always white for now)
- F32 mShiny; // shiny value
- LLPointer<LLViewerTexture> mTexture; // ptr to a global texture
- LLTexLayerSet* mLayerSet; // ptr to a layer set owned by the avatar
- U32 mTestImageName; // handle to a temporary texture for previewing uploads
- LLPolyMesh* mMesh; // ptr to a global polymesh
- BOOL mCullBackFaces; // true by default
- LLFace* mFace; // ptr to a face w/ AGP copy of mesh
-
- U32 mFaceIndexCount;
- BOOL mIsTransparent;
-
- U32 mNumSkinJoints;
- LLSkinJoint* mSkinJoints;
- S32 mMeshID;
-
-public:
- static BOOL sPipelineRender;
- //RN: this is here for testing purposes
- static U32 sClothingMaskImageName;
- static EAvatarRenderPass sRenderPass;
- static LLColor4 sClothingInnerColor;
-
public:
// Constructor
LLViewerJointMesh();
@@ -94,67 +50,28 @@ public:
// Destructor
virtual ~LLViewerJointMesh();
- // Gets the shape color
- void getColor( F32 *red, F32 *green, F32 *blue, F32 *alpha );
-
- // Sets the shape color
- void setColor( F32 red, F32 green, F32 blue, F32 alpha );
-
- // Sets the shininess
- void setSpecular( const LLColor4& color, F32 shiny ) { /*mSpecular = color;*/ mShiny = shiny; };
-
- // Sets the shape texture
- void setTexture( LLViewerTexture *texture );
-
- void setTestTexture( U32 name ) { mTestImageName = name; }
-
- // Sets layer set responsible for a dynamic shape texture (takes precedence over normal texture)
- void setLayerSet( LLTexLayerSet* layer_set );
-
- // Gets the poly mesh
- LLPolyMesh *getMesh();
-
- // Sets the poly mesh
- void setMesh( LLPolyMesh *mesh );
-
- // Sets up joint matrix data for rendering
- void setupJoint(LLViewerJoint* current_joint);
-
// Render time method to upload batches of joint matrices
void uploadJointMatrices();
- // Sets ID for picking
- void setMeshID( S32 id ) {mMeshID = id;}
-
- // Gets ID for picking
- S32 getMeshID() { return mMeshID; }
-
// overloaded from base class
- /*virtual*/ void drawBone();
- /*virtual*/ BOOL isTransparent();
/*virtual*/ U32 drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy );
+ // necessary because MS's compiler warns on function inheritance via dominance in the diamond inheritance here.
+ // warns even though LLViewerJoint holds the only non virtual implementation.
+ /*virtual*/ U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE ) { return LLViewerJoint::render(pixelArea,first_pass,is_dummy);}
+
/*virtual*/ void updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area);
/*virtual*/ void updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind = FALSE, bool terse_update = false);
/*virtual*/ BOOL updateLOD(F32 pixel_area, BOOL activate);
/*virtual*/ void updateJointGeometry();
/*virtual*/ void dump();
- void setIsTransparent(BOOL is_transparent) { mIsTransparent = is_transparent; }
-
/*virtual*/ BOOL isAnimatable() const { return FALSE; }
private:
//copy mesh into given face's vertex buffer, applying current animation pose
static void updateGeometry(LLFace* face, LLPolyMesh* mesh);
-
-private:
- // Allocate skin data
- BOOL allocateSkinData( U32 numSkinJoints );
-
- // Free skin data
- void freeSkinData();
};
#endif // LL_LLVIEWERJOINTMESH_H
diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp
index f6e840adcd..f6e840adcd 100644..100755
--- a/indra/newview/llviewerjoystick.cpp
+++ b/indra/newview/llviewerjoystick.cpp
diff --git a/indra/newview/llviewerjoystick.h b/indra/newview/llviewerjoystick.h
index 80c758a5af..80c758a5af 100644..100755
--- a/indra/newview/llviewerjoystick.h
+++ b/indra/newview/llviewerjoystick.h
diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp
index 4ecdc31e21..4ecdc31e21 100644..100755
--- a/indra/newview/llviewerkeyboard.cpp
+++ b/indra/newview/llviewerkeyboard.cpp
diff --git a/indra/newview/llviewerkeyboard.h b/indra/newview/llviewerkeyboard.h
index ca73212ed1..ca73212ed1 100644..100755
--- a/indra/newview/llviewerkeyboard.h
+++ b/indra/newview/llviewerkeyboard.h
diff --git a/indra/newview/llviewerlayer.cpp b/indra/newview/llviewerlayer.cpp
index 1a07251e92..1a07251e92 100644..100755
--- a/indra/newview/llviewerlayer.cpp
+++ b/indra/newview/llviewerlayer.cpp
diff --git a/indra/newview/llviewerlayer.h b/indra/newview/llviewerlayer.h
index f9ec9c0c83..f9ec9c0c83 100644..100755
--- a/indra/newview/llviewerlayer.h
+++ b/indra/newview/llviewerlayer.h
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 2df028de69..2df028de69 100644..100755
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index fff5b3fc08..fff5b3fc08 100644..100755
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
diff --git a/indra/newview/llviewermedia_streamingaudio.cpp b/indra/newview/llviewermedia_streamingaudio.cpp
index e2a74e8e3c..e2a74e8e3c 100644..100755
--- a/indra/newview/llviewermedia_streamingaudio.cpp
+++ b/indra/newview/llviewermedia_streamingaudio.cpp
diff --git a/indra/newview/llviewermedia_streamingaudio.h b/indra/newview/llviewermedia_streamingaudio.h
index 1e7f771e17..1e7f771e17 100644..100755
--- a/indra/newview/llviewermedia_streamingaudio.h
+++ b/indra/newview/llviewermedia_streamingaudio.h
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index 4543a1ba9a..297906803b 100644..100755
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -406,11 +406,9 @@ void LLViewerMediaFocus::update()
LLViewerObject *viewer_object = getFocusedObject();
S32 face = mFocusedObjectFace;
LLVector3 normal = mFocusedObjectNormal;
- bool focus = true;
if(!media_impl || !viewer_object)
{
- focus = false;
media_impl = getHoverMediaImpl();
viewer_object = getHoverObject();
face = mHoverObjectFace;
diff --git a/indra/newview/llviewermediafocus.h b/indra/newview/llviewermediafocus.h
index f03dd8751e..f03dd8751e 100644..100755
--- a/indra/newview/llviewermediafocus.h
+++ b/indra/newview/llviewermediafocus.h
diff --git a/indra/newview/llviewermediaobserver.h b/indra/newview/llviewermediaobserver.h
index 5dab7e399e..5dab7e399e 100644..100755
--- a/indra/newview/llviewermediaobserver.h
+++ b/indra/newview/llviewermediaobserver.h
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 66db0ac8f3..beca08203f 100644..100755
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -125,7 +125,7 @@
#include "llpathfindingmanager.h"
#include "boost/unordered_map.hpp"
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
typedef LLPointer<LLViewerObject> LLViewerObjectPtr;
@@ -1577,11 +1577,26 @@ class LLAdvancedEnableGrabBakedTexture : public view_listener_t
///////////////////////
+class LLAdvancedEnableAppearanceToXML : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ return gSavedSettings.getBOOL("DebugAvatarAppearanceMessage");
+ }
+};
+
class LLAdvancedAppearanceToXML : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLVOAvatar::dumpArchetypeXML(NULL);
+ std::string emptyname;
+ LLVOAvatar* avatar =
+ find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
+ if (!avatar)
+ {
+ avatar = gAgentAvatarp;
+ }
+ avatar->dumpArchetypeXML(emptyname);
return true;
}
};
@@ -2827,7 +2842,7 @@ class LLSelfRemoveAllAttachments : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLAgentWearables::userRemoveAllAttachments();
+ LLAppearanceMgr::instance().removeAllAttachmentsFromAvatar();
return true;
}
};
@@ -6437,23 +6452,21 @@ class LLAttachmentDetachFromPoint : public view_listener_t
{
bool handleEvent(const LLSD& user_data)
{
+ uuid_vec_t ids_to_remove;
const LLViewerJointAttachment *attachment = get_if_there(gAgentAvatarp->mAttachmentPoints, user_data.asInteger(), (LLViewerJointAttachment*)NULL);
if (attachment->getNumObjects() > 0)
{
- gMessageSystem->newMessage("ObjectDetach");
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
-
for (LLViewerJointAttachment::attachedobjs_vec_t::const_iterator iter = attachment->mAttachedObjects.begin();
iter != attachment->mAttachedObjects.end();
iter++)
{
LLViewerObject *attached_object = (*iter);
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
- gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, attached_object->getLocalID());
+ ids_to_remove.push_back(attached_object->getAttachmentItemID());
}
- gMessageSystem->sendReliable( gAgent.getRegionHost() );
+ }
+ if (!ids_to_remove.empty())
+ {
+ LLAppearanceMgr::instance().removeItemsFromAvatar(ids_to_remove);
}
return true;
}
@@ -6526,17 +6539,8 @@ class LLAttachmentDetach : public view_listener_t
return true;
}
- // The sendDetach() method works on the list of selected
- // objects. Thus we need to clear the list, make sure it only
- // contains the object the user clicked, send the message,
- // then clear the list.
- // We use deselectAll to update the simulator's notion of what's
- // selected, and removeAll just to change things locally.
- //RN: I thought it was more useful to detach everything that was selected
- if (LLSelectMgr::getInstance()->getSelection()->isAttachment())
- {
- LLSelectMgr::getInstance()->sendDetach();
- }
+ LLAppearanceMgr::instance().removeItemFromAvatar(object->getAttachmentItemID());
+
return true;
}
};
@@ -7391,7 +7395,7 @@ void handle_grab_baked_texture(void* data)
if(folder_id.notNull())
{
std::string name;
- name = "Baked " + LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_tex_index)->mNameCapitalized + " Texture";
+ name = "Baked " + LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_tex_index)->mNameCapitalized + " Texture";
LLUUID item_id;
item_id.generate();
@@ -7650,6 +7654,10 @@ void handle_rebake_textures(void*)
// Slam pending upload count to "unstick" things
bool slam_for_debug = true;
gAgentAvatarp->forceBakeAllTextures(slam_for_debug);
+ if (gAgent.getRegion() && gAgent.getRegion()->getCentralBakeVersion())
+ {
+ LLAppearanceMgr::instance().requestServerAppearanceUpdate();
+ }
}
void toggle_visibility(void* user_data)
@@ -7932,7 +7940,7 @@ class LLEditTakeOff : public view_listener_t
{
std::string clothing = userdata.asString();
if (clothing == "all")
- LLWearableBridge::removeAllClothesFromAvatar();
+ LLAppearanceMgr::instance().removeAllClothesFromAvatar();
else
{
LLWearableType::EType type = LLWearableType::typeNameToType(clothing);
@@ -7942,8 +7950,8 @@ class LLEditTakeOff : public view_listener_t
{
// MULTI-WEARABLES: assuming user wanted to remove top shirt.
U32 wearable_index = gAgentWearables.getWearableCount(type) - 1;
- LLViewerInventoryItem *item = dynamic_cast<LLViewerInventoryItem*>(gAgentWearables.getWearableInventoryItem(type,wearable_index));
- LLWearableBridge::removeItemFromAvatar(item);
+ LLUUID item_id = gAgentWearables.getWearableItemID(type,wearable_index);
+ LLAppearanceMgr::instance().removeItemFromAvatar(item_id);
}
}
@@ -8283,8 +8291,6 @@ void initialize_menus()
view_listener_t::addEnable(new LLUploadCostCalculator(), "Upload.CalculateCosts");
-
- commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
enable.add("Conversation.IsConversationLoggingAllowed", boost::bind(&LLFloaterIMContainer::isConversationLoggingAllowed));
// Agent
@@ -8503,6 +8509,7 @@ void initialize_menus()
// Advanced > Character > Character Tests
view_listener_t::addMenu(new LLAdvancedAppearanceToXML(), "Advanced.AppearanceToXML");
+ view_listener_t::addMenu(new LLAdvancedEnableAppearanceToXML(), "Advanced.EnableAppearanceToXML");
view_listener_t::addMenu(new LLAdvancedToggleCharacterGeometry(), "Advanced.ToggleCharacterGeometry");
view_listener_t::addMenu(new LLAdvancedTestMale(), "Advanced.TestMale");
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index 01534503f3..143420e227 100644..100755
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -138,6 +138,11 @@ bool handle_go_to();
// Export to XML or Collada
void handle_export_selected( void * );
+// Convert strings to internal types
+U32 render_type_from_string(std::string render_type);
+U32 feature_from_string(std::string feature);
+U32 info_display_from_string(std::string info_display);
+
class LLViewerMenuHolderGL : public LLMenuHolderGL
{
public:
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index be78603e2d..be78603e2d 100644..100755
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h
index 3136358b83..3136358b83 100644..100755
--- a/indra/newview/llviewermenufile.h
+++ b/indra/newview/llviewermenufile.h
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 35839aeca0..acb384834e 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -163,7 +163,11 @@ const std::string SCRIPT_QUESTIONS[SCRIPT_PERMISSION_EOF] =
"ChangePermissions",
"TrackYourCamera",
"ControlYourCamera",
- "TeleportYourAgent"
+ "TeleportYourAgent",
+ "JoinAnExperience",
+ "SilentlyManageEstateAccess",
+ "OverrideYourAnimations",
+ "ScriptReturnObjects"
};
const BOOL SCRIPT_QUESTION_IS_CAUTION[SCRIPT_PERMISSION_EOF] =
@@ -179,7 +183,11 @@ const BOOL SCRIPT_QUESTION_IS_CAUTION[SCRIPT_PERMISSION_EOF] =
FALSE, // ChangePermissions
FALSE, // TrackYourCamera,
FALSE, // ControlYourCamera
- FALSE // TeleportYourAgent
+ FALSE, // TeleportYourAgent
+ FALSE, // JoinAnExperience
+ FALSE, // SilentlyManageEstateAccess
+ FALSE, // OverrideYourAnimations
+ FALSE, // ScriptReturnObjects
};
bool friendship_offer_callback(const LLSD& notification, const LLSD& response)
@@ -633,7 +641,6 @@ void send_sound_trigger(const LLUUID& sound_id, F32 gain)
bool join_group_response(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- BOOL delete_context_data = TRUE;
bool accept_invite = false;
LLUUID group_id = notification["payload"]["group_id"].asUUID();
@@ -662,7 +669,6 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
}
else
{
- delete_context_data = FALSE;
LLSD args;
args["NAME"] = name;
LLNotificationsUtil::add("JoinedTooManyGroupsMember", args, notification["payload"]);
@@ -675,7 +681,6 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
// sure the user is sure they want to join.
if (fee > 0)
{
- delete_context_data = FALSE;
LLSD args;
args["COST"] = llformat("%d", fee);
// Set the fee for next time to 0, so that we don't keep
@@ -3456,7 +3461,6 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
LLColor4 color(1.0f, 1.0f, 1.0f, 1.0f);
LLUUID from_id;
LLUUID owner_id;
- BOOL is_owned_by_me = FALSE;
LLViewerObject* chatter;
msg->getString("ChatData", "FromName", from_name);
@@ -3541,13 +3545,11 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
gAgent.heardChat(chat.mFromID);
}
}
-
- is_owned_by_me = chatter->permYouOwner();
}
if (is_audible)
{
- BOOL visible_in_chat_bubble = FALSE;
+ //BOOL visible_in_chat_bubble = FALSE;
color.setVec(1.f,1.f,1.f,1.f);
msg->getStringFast(_PREHASH_ChatData, _PREHASH_Message, mesg);
@@ -3630,7 +3632,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
if (!is_muted && !is_do_not_disturb)
{
- visible_in_chat_bubble = gSavedSettings.getBOOL("UseChatBubbles");
+ //visible_in_chat_bubble = gSavedSettings.getBOOL("UseChatBubbles");
std::string formated_msg = "";
LLViewerChat::formatChatMsg(chat, formated_msg);
LLChat chat_bubble = chat;
@@ -4970,9 +4972,19 @@ void process_sim_stats(LLMessageSystem *msg, void **user_data)
// Various hacks that aren't statistics, but are being handled here.
//
U32 max_tasks_per_region;
- U32 region_flags;
+ U64 region_flags;
msg->getU32("Region", "ObjectCapacity", max_tasks_per_region);
- msg->getU32("Region", "RegionFlags", region_flags);
+
+ if (msg->has(_PREHASH_RegionInfo))
+ {
+ msg->getU64("RegionInfo", "RegionFlagsExtended", region_flags);
+ }
+ else
+ {
+ U32 flags = 0;
+ msg->getU32("Region", "RegionFlags", flags);
+ region_flags = flags;
+ }
LLViewerRegion* regionp = gAgent.getRegion();
if (regionp)
@@ -6290,6 +6302,19 @@ void notify_cautioned_script_question(const LLSD& notification, const LLSD& resp
}
}
+void script_question_mute(const LLUUID& item_id, const std::string& object_name);
+
+bool unknown_script_question_cb(const LLSD& notification, const LLSD& response)
+{
+ // Only care if they muted the object here.
+ if ( response["Mute"] ) // mute
+ {
+ LLUUID task_id = notification["payload"]["task_id"].asUUID();
+ script_question_mute(task_id,notification["payload"]["object_name"].asString());
+ }
+ return false;
+}
+
bool script_question_cb(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
@@ -6340,34 +6365,42 @@ bool script_question_cb(const LLSD& notification, const LLSD& response)
if ( response["Mute"] ) // mute
{
- LLMuteList::getInstance()->add(LLMute(item_id, notification["payload"]["object_name"].asString(), LLMute::OBJECT));
-
- // purge the message queue of any previously queued requests from the same source. DEV-4879
- class OfferMatcher : public LLNotificationsUI::LLScreenChannel::Matcher
- {
- public:
- OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {}
- bool matches(const LLNotificationPtr notification) const
- {
- if (notification->getName() == "ScriptQuestionCaution"
- || notification->getName() == "ScriptQuestion")
- {
- return (notification->getPayload()["item_id"].asUUID() == blocked_id);
- }
- return false;
- }
- private:
- const LLUUID& blocked_id;
- };
-
- LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
- gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(item_id));
+ script_question_mute(task_id,notification["payload"]["object_name"].asString());
}
return false;
}
+
+void script_question_mute(const LLUUID& task_id, const std::string& object_name)
+{
+ LLMuteList::getInstance()->add(LLMute(task_id, object_name, LLMute::OBJECT));
+
+ // purge the message queue of any previously queued requests from the same source. DEV-4879
+ class OfferMatcher : public LLNotificationsUI::LLScreenChannel::Matcher
+ {
+ public:
+ OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {}
+ bool matches(const LLNotificationPtr notification) const
+ {
+ if (notification->getName() == "ScriptQuestionCaution"
+ || notification->getName() == "ScriptQuestion"
+ || notification->getName() == "UnknownScriptQuestion")
+ {
+ return (notification->getPayload()["task_id"].asUUID() == blocked_id);
+ }
+ return false;
+ }
+ private:
+ const LLUUID& blocked_id;
+ };
+
+ LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
+ gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(task_id));
+}
+
static LLNotificationFunctorRegistration script_question_cb_reg_1("ScriptQuestion", script_question_cb);
static LLNotificationFunctorRegistration script_question_cb_reg_2("ScriptQuestionCaution", script_question_cb);
+static LLNotificationFunctorRegistration unknown_script_question_cb_reg("UnknownScriptQuestion", unknown_script_question_cb);
void process_script_question(LLMessageSystem *msg, void **user_data)
{
@@ -6432,7 +6465,7 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
LLSD args;
args["OBJECTNAME"] = object_name;
args["NAME"] = LLCacheName::cleanFullName(owner_name);
-
+ S32 known_questions = 0;
BOOL has_not_only_debit = questions ^ LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_DEBIT];
// check the received permission flags against each permission
for (S32 i = 0; i < SCRIPT_PERMISSION_EOF; i++)
@@ -6440,7 +6473,7 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
if (questions & LSCRIPTRunTimePermissionBits[i])
{
count++;
-
+ known_questions |= LSCRIPTRunTimePermissionBits[i];
// check whether permission question should cause special caution dialog
caution |= (SCRIPT_QUESTION_IS_CAUTION[i]);
@@ -6450,32 +6483,46 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
script_question += " " + LLTrans::getString(SCRIPT_QUESTIONS[i]) + "\n";
}
}
+
args["QUESTIONS"] = script_question;
- LLSD payload;
- payload["task_id"] = taskid;
- payload["item_id"] = itemid;
- payload["sender"] = sender.getIPandPort();
- payload["questions"] = questions;
- payload["object_name"] = object_name;
- payload["owner_name"] = owner_name;
-
- // check whether cautions are even enabled or not
- if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
+ if (known_questions != questions)
+ { // This is in addition to the normal dialog.
+ LLSD payload;
+ payload["task_id"] = taskid;
+ payload["item_id"] = itemid;
+ payload["object_name"] = object_name;
+
+ args["DOWNLOADURL"] = LLTrans::getString("ViewerDownloadURL");
+ LLNotificationsUtil::add("UnknownScriptQuestion",args,payload);
+ }
+
+ if (known_questions)
{
- if (caution)
+ LLSD payload;
+ payload["task_id"] = taskid;
+ payload["item_id"] = itemid;
+ payload["sender"] = sender.getIPandPort();
+ payload["questions"] = known_questions;
+ payload["object_name"] = object_name;
+ payload["owner_name"] = owner_name;
+
+ // check whether cautions are even enabled or not
+ if (gSavedSettings.getBOOL("PermissionsCautionEnabled"))
{
- args["FOOTERTEXT"] = (count > 1) ? LLTrans::getString("AdditionalPermissionsRequestHeader") + "\n\n" + script_question : "";
+ if (caution)
+ {
+ args["FOOTERTEXT"] = (count > 1) ? LLTrans::getString("AdditionalPermissionsRequestHeader") + "\n\n" + script_question : "";
+ }
+ // display the caution permissions prompt
+ LLNotificationsUtil::add(caution ? "ScriptQuestionCaution" : "ScriptQuestion", args, payload);
+ }
+ else
+ {
+ // fall back to default behavior if cautions are entirely disabled
+ LLNotificationsUtil::add("ScriptQuestion", args, payload);
}
- // display the caution permissions prompt
- LLNotificationsUtil::add(caution ? "ScriptQuestionCaution" : "ScriptQuestion", args, payload);
- }
- else
- {
- // fall back to default behavior if cautions are entirely disabled
- LLNotificationsUtil::add("ScriptQuestion", args, payload);
}
-
}
}
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index 3237f3fbdd..3237f3fbdd 100644..100755
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
diff --git a/indra/newview/llviewernetwork.cpp b/indra/newview/llviewernetwork.cpp
index 97f4c3e5fe..97f4c3e5fe 100644..100755
--- a/indra/newview/llviewernetwork.cpp
+++ b/indra/newview/llviewernetwork.cpp
diff --git a/indra/newview/llviewernetwork.h b/indra/newview/llviewernetwork.h
index 3f56103b2e..3f56103b2e 100644..100755
--- a/indra/newview/llviewernetwork.h
+++ b/indra/newview/llviewernetwork.h
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index b1a60197a2..064e96e394 100644..100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2135,7 +2135,8 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (mDrawable->isState(LLDrawable::FORCE_INVISIBLE) && !mOrphaned)
{
// lldebugs << "Clearing force invisible: " << mID << ":" << getPCodeString() << ":" << getPositionAgent() << llendl;
- mDrawable->setState(LLDrawable::CLEAR_INVISIBLE);
+ mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
+ gPipeline.markRebuild( mDrawable, LLDrawable::REBUILD_ALL, TRUE );
}
}
@@ -2697,24 +2698,33 @@ void LLViewerObject::processTaskInvFile(void** user_data, S32 error_code, LLExtS
if(ft && (0 == error_code) &&
(object = gObjectList.findObject(ft->mTaskID)))
{
- object->loadTaskInvFile(ft->mFilename);
+ if (object->loadTaskInvFile(ft->mFilename))
+ {
- LLInventoryObject::object_list_t::iterator it = object->mInventory->begin();
- LLInventoryObject::object_list_t::iterator end = object->mInventory->end();
- std::list<LLUUID>& pending_lst = object->mPendingInventoryItemsIDs;
+ LLInventoryObject::object_list_t::iterator it = object->mInventory->begin();
+ LLInventoryObject::object_list_t::iterator end = object->mInventory->end();
+ std::list<LLUUID>& pending_lst = object->mPendingInventoryItemsIDs;
- for (; it != end && pending_lst.size(); ++it)
- {
- LLViewerInventoryItem* item = dynamic_cast<LLViewerInventoryItem*>(it->get());
- if(item && item->getType() != LLAssetType::AT_CATEGORY)
+ for (; it != end && pending_lst.size(); ++it)
{
- std::list<LLUUID>::iterator id_it = std::find(pending_lst.begin(), pending_lst.begin(), item->getAssetUUID());
- if (id_it != pending_lst.end())
+ LLViewerInventoryItem* item = dynamic_cast<LLViewerInventoryItem*>(it->get());
+ if(item && item->getType() != LLAssetType::AT_CATEGORY)
{
- pending_lst.erase(id_it);
+ std::list<LLUUID>::iterator id_it = std::find(pending_lst.begin(), pending_lst.begin(), item->getAssetUUID());
+ if (id_it != pending_lst.end())
+ {
+ pending_lst.erase(id_it);
+ }
}
}
}
+ else
+ {
+ // MAINT-2597 - crash when trying to edit a no-mod object
+ // Somehow get an contents inventory response, but with an invalid stream (possibly 0 size?)
+ // Stated repro was specific to no-mod objects so failing without user interaction should be safe.
+ llwarns << "Trying to load invalid task inventory file. Ignoring file contents." << llendl;
+ }
}
else
{
@@ -2726,7 +2736,7 @@ void LLViewerObject::processTaskInvFile(void** user_data, S32 error_code, LLExtS
delete ft;
}
-void LLViewerObject::loadTaskInvFile(const std::string& filename)
+BOOL LLViewerObject::loadTaskInvFile(const std::string& filename)
{
std::string filename_and_local_path = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, filename);
llifstream ifs(filename_and_local_path);
@@ -2773,8 +2783,11 @@ void LLViewerObject::loadTaskInvFile(const std::string& filename)
{
llwarns << "unable to load task inventory: " << filename_and_local_path
<< llendl;
+ return FALSE;
}
doInventoryCallback();
+
+ return TRUE;
}
void LLViewerObject::doInventoryCallback()
@@ -3266,14 +3279,14 @@ void LLViewerObject::boostTexturePriority(BOOL boost_children /* = TRUE */)
S32 tex_count = getNumTEs();
for (i = 0; i < tex_count; i++)
{
- getTEImage(i)->setBoostLevel(LLViewerTexture::BOOST_SELECTED);
+ getTEImage(i)->setBoostLevel(LLGLTexture::BOOST_SELECTED);
}
if (isSculpted() && !isMesh())
{
LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT);
LLUUID sculpt_id = sculpt_params->getSculptTexture();
- LLViewerTextureManager::getFetchedTexture(sculpt_id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLViewerTexture::BOOST_SELECTED);
+ LLViewerTextureManager::getFetchedTexture(sculpt_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLGLTexture::BOOST_SELECTED);
}
if (boost_children)
@@ -4016,7 +4029,7 @@ void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry)
// if (mDrawable.notNull() && mDrawable->isVisible())
// {
const LLUUID& image_id = getTE(te)->getID();
- mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
// }
}
@@ -4034,15 +4047,15 @@ void LLViewerObject::setTEImage(const U8 te, LLViewerTexture *imagep)
}
}
-
-S32 LLViewerObject::setTETextureCore(const U8 te, const LLUUID& uuid, LLHost host)
+S32 LLViewerObject::setTETextureCore(const U8 te, LLViewerTexture *image)
{
+ const LLUUID& uuid = image->getID();
S32 retval = 0;
if (uuid != getTE(te)->getID() ||
uuid == LLUUID::null)
{
retval = LLPrimitive::setTETexture(te, uuid);
- mTEImages[te] = LLViewerTextureManager::getFetchedTexture(uuid, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
+ mTEImages[te] = image;
setChanged(TEXTURE);
if (mDrawable.notNull())
{
@@ -4065,7 +4078,9 @@ void LLViewerObject::changeTEImage(S32 index, LLViewerTexture* new_image)
S32 LLViewerObject::setTETexture(const U8 te, const LLUUID& uuid)
{
// Invalid host == get from the agent's sim
- return setTETextureCore(te, uuid, LLHost::invalid);
+ LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(
+ uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost::invalid);
+ return setTETextureCore(te,image);
}
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index 97cf0a4850..316dbce7d0 100644..100755
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -301,7 +301,7 @@ public:
/*virtual*/ void setNumTEs(const U8 num_tes);
/*virtual*/ void setTE(const U8 te, const LLTextureEntry &texture_entry);
/*virtual*/ S32 setTETexture(const U8 te, const LLUUID &uuid);
- S32 setTETextureCore(const U8 te, const LLUUID& uuid, LLHost host);
+ S32 setTETextureCore(const U8 te, LLViewerTexture *image);
/*virtual*/ S32 setTEColor(const U8 te, const LLColor3 &color);
/*virtual*/ S32 setTEColor(const U8 te, const LLColor4 &color);
/*virtual*/ S32 setTEScale(const U8 te, const F32 s, const F32 t);
@@ -656,7 +656,7 @@ protected:
//
static void processTaskInvFile(void** user_data, S32 error_code, LLExtStat ext_status);
- void loadTaskInvFile(const std::string& filename);
+ BOOL loadTaskInvFile(const std::string& filename);
void doInventoryCallback();
BOOL isOnMap();
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 4049e31472..caacf26cb3 100644..100755
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -284,7 +284,6 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
LLFastTimer t(FTM_PROCESS_OBJECTS);
- LLVector3d camera_global = gAgentCamera.getCameraPositionGlobal();
LLViewerObject *objectp;
S32 num_objects;
U32 local_id;
@@ -303,6 +302,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
//llinfos << "TEST: !cached && !compressed && update_type != OUT_FULL" << llendl;
gTerseObjectUpdates += num_objects;
+ /*
S32 size;
if (mesgsys->getReceiveCompressedSize())
{
@@ -312,10 +312,12 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
size = mesgsys->getReceiveSize();
}
- //llinfos << "Received terse " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ llinfos << "Received terse " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ */
}
else
{
+ /*
S32 size;
if (mesgsys->getReceiveCompressedSize())
{
@@ -326,7 +328,8 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
size = mesgsys->getReceiveSize();
}
- // llinfos << "Received " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ llinfos << "Received " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ */
gFullObjectUpdates += num_objects;
}
@@ -688,12 +691,12 @@ public:
}
}
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
llwarns
<< "Transport error requesting object cost "
- << "HTTP status: " << statusNum << ", reason: "
- << reason << "." << llendl;
+ << "[status: " << statusNum << "]: "
+ << content << llendl;
// TODO*: Error message to user
// For now just clear the request from the pending list
@@ -777,12 +780,12 @@ public:
}
}
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
llwarns
<< "Transport error requesting object physics flags "
- << "HTTP status: " << statusNum << ", reason: "
- << reason << "." << llendl;
+ << "[status: " << statusNum << "]: "
+ << content << llendl;
// TODO*: Error message to user
// For now just clear the request from the pending list
@@ -2062,8 +2065,9 @@ void LLViewerObjectList::findOrphans(LLViewerObject* objectp, U32 ip, U32 port)
if (childp->mDrawable.notNull())
{
// Make the drawable visible again and set the drawable parent
- childp->mDrawable->setState(LLDrawable::CLEAR_INVISIBLE);
+ childp->mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
childp->setDrawableParent(objectp->mDrawable); // LLViewerObjectList::findOrphans()
+ gPipeline.markRebuild( childp->mDrawable, LLDrawable::REBUILD_ALL, TRUE );
}
// Make certain particles, icon and HUD aren't hidden
diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h
index 449a4633ff..449a4633ff 100644..100755
--- a/indra/newview/llviewerobjectlist.h
+++ b/indra/newview/llviewerobjectlist.h
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index 90fbc41daa..386b2fd400 100644..100755
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -85,7 +85,6 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
}
// we're in a parcel
- bool new_parcel = false;
S32 parcelid = parcel->getLocalID();
LLUUID regionid = gAgent.getRegion()->getRegionID();
@@ -94,7 +93,6 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL;
sMediaParcelLocalID = parcelid;
sMediaRegionID = regionid;
- new_parcel = true;
}
std::string mediaUrl = std::string ( parcel->getMediaURL () );
diff --git a/indra/newview/llviewerparcelmedia.h b/indra/newview/llviewerparcelmedia.h
index 534f65b419..534f65b419 100644..100755
--- a/indra/newview/llviewerparcelmedia.h
+++ b/indra/newview/llviewerparcelmedia.h
diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp
index 57ee583eae..57ee583eae 100644..100755
--- a/indra/newview/llviewerparcelmediaautoplay.cpp
+++ b/indra/newview/llviewerparcelmediaautoplay.cpp
diff --git a/indra/newview/llviewerparcelmediaautoplay.h b/indra/newview/llviewerparcelmediaautoplay.h
index a052362829..a052362829 100644..100755
--- a/indra/newview/llviewerparcelmediaautoplay.h
+++ b/indra/newview/llviewerparcelmediaautoplay.h
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 77e382b8c7..4cdb568d17 100644..100755
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -696,8 +696,8 @@ bool LLViewerParcelMgr::allowAgentScripts(const LLViewerRegion* region, const LL
// This mirrors the traditional menu bar parcel icon code, but is not
// technically correct.
return region
- && !(region->getRegionFlags() & REGION_FLAGS_SKIP_SCRIPTS)
- && !(region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)
+ && !region->getRegionFlag(REGION_FLAGS_SKIP_SCRIPTS)
+ && !region->getRegionFlag(REGION_FLAGS_ESTATE_SKIP_SCRIPTS)
&& parcel
&& parcel->getAllowOtherScripts();
}
@@ -2057,7 +2057,7 @@ void LLViewerParcelMgr::startReleaseLand()
return;
}
/*
- if ((region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if (region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL)
&& !gAgent.isGodlike())
{
LLSD args;
@@ -2302,7 +2302,7 @@ void LLViewerParcelMgr::startDeedLandToGroup()
/*
if(!gAgent.isGodlike())
{
- if((region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)
+ if(region->getRegionFlag(REGION_FLAGS_BLOCK_LAND_RESELL)
&& (mCurrentParcel->getOwnerID() != region->getOwner()))
{
LLSD args;
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h
index 6183b7e90e..6183b7e90e 100644..100755
--- a/indra/newview/llviewerparcelmgr.h
+++ b/indra/newview/llviewerparcelmgr.h
diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp
index a1c12c5cd6..a1c12c5cd6 100644..100755
--- a/indra/newview/llviewerparceloverlay.cpp
+++ b/indra/newview/llviewerparceloverlay.cpp
diff --git a/indra/newview/llviewerparceloverlay.h b/indra/newview/llviewerparceloverlay.h
index 7445d5bf1d..7445d5bf1d 100644..100755
--- a/indra/newview/llviewerparceloverlay.h
+++ b/indra/newview/llviewerparceloverlay.h
diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index 6bd9f66b9c..6bd9f66b9c 100644..100755
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
diff --git a/indra/newview/llviewerpartsim.h b/indra/newview/llviewerpartsim.h
index c91fcf0691..c91fcf0691 100644..100755
--- a/indra/newview/llviewerpartsim.h
+++ b/indra/newview/llviewerpartsim.h
diff --git a/indra/newview/llviewerpartsource.cpp b/indra/newview/llviewerpartsource.cpp
index b311f659fb..b311f659fb 100644..100755
--- a/indra/newview/llviewerpartsource.cpp
+++ b/indra/newview/llviewerpartsource.cpp
diff --git a/indra/newview/llviewerpartsource.h b/indra/newview/llviewerpartsource.h
index 28702d36a2..28702d36a2 100644..100755
--- a/indra/newview/llviewerpartsource.h
+++ b/indra/newview/llviewerpartsource.h
diff --git a/indra/newview/llviewerprecompiledheaders.cpp b/indra/newview/llviewerprecompiledheaders.cpp
index 307e903726..307e903726 100644..100755
--- a/indra/newview/llviewerprecompiledheaders.cpp
+++ b/indra/newview/llviewerprecompiledheaders.cpp
diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h
index 0316f79973..a565005f30 100644..100755
--- a/indra/newview/llviewerprecompiledheaders.h
+++ b/indra/newview/llviewerprecompiledheaders.h
@@ -33,8 +33,6 @@
// in viewer.
// It is used to precompile headers for improved build speed.
-#include <boost/coroutine/coroutine.hpp>
-
#include "linden_common.h"
// Work around stupid Microsoft STL warning
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index e4234a538d..b8b53aa6e4 100644..100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -142,7 +142,8 @@ public:
LLUUID mCacheID;
CapabilityMap mCapabilities;
-
+ CapabilityMap mSecondCapabilitiesTracker;
+
LLEventPoll* mEventPoll;
S32 mSeedCapMaxAttempts;
@@ -209,9 +210,9 @@ public:
virtual ~BaseCapabilitiesComplete()
{ }
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL;
+ LL_WARNS2("AppInit", "Capabilities") << "[status:" << statusNum << ":] " << content << LL_ENDL;
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
if (regionp)
{
@@ -219,7 +220,7 @@ public:
}
}
- void result(const LLSD& content)
+ void result(const LLSD& content)
{
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
if(!regionp) //region was removed
@@ -237,6 +238,7 @@ public:
for(iter = content.beginMap(); iter != content.endMap(); ++iter)
{
regionp->setCapability(iter->first, iter->second);
+
LL_DEBUGS2("AppInit", "Capabilities") << "got capability for "
<< iter->first << LL_ENDL;
@@ -265,6 +267,62 @@ private:
S32 mID;
};
+class BaseCapabilitiesCompleteTracker : public LLHTTPClient::Responder
+{
+ LOG_CLASS(BaseCapabilitiesCompleteTracker);
+public:
+ BaseCapabilitiesCompleteTracker( U64 region_handle)
+ : mRegionHandle(region_handle)
+ { }
+
+ virtual ~BaseCapabilitiesCompleteTracker()
+ { }
+
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
+ {
+ llwarns << "BaseCapabilitiesCompleteTracker error [status:"
+ << statusNum << "]: " << content << llendl;
+ }
+
+ void result(const LLSD& content)
+ {
+ LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
+ if( !regionp )
+ {
+ return ;
+ }
+ LLSD::map_const_iterator iter;
+ for(iter = content.beginMap(); iter != content.endMap(); ++iter)
+ {
+ regionp->setCapabilityDebug(iter->first, iter->second);
+ //llinfos<<"BaseCapabilitiesCompleteTracker New Caps "<<iter->first<<" "<< iter->second<<llendl;
+ }
+
+ if ( regionp->getRegionImpl()->mCapabilities.size() != regionp->getRegionImpl()->mSecondCapabilitiesTracker.size() )
+ {
+ llinfos<<"BaseCapabilitiesCompleteTracker "<<"Sim sent duplicate seed caps that differs in size - most likely content."<<llendl;
+ //todo#add cap debug versus original check?
+ /*CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin();
+ while (iter!=regionp->getRegionImpl()->mCapabilities.end() )
+ {
+ llinfos<<"BaseCapabilitiesCompleteTracker Original "<<iter->first<<" "<< iter->second<<llendl;
+ ++iter;
+ }
+ */
+ regionp->getRegionImplNC()->mSecondCapabilitiesTracker.clear();
+ }
+
+ }
+
+ static BaseCapabilitiesCompleteTracker* build( U64 region_handle )
+ {
+ return new BaseCapabilitiesCompleteTracker( region_handle );
+ }
+
+private:
+ U64 mRegionHandle;
+};
+
LLViewerRegion::LLViewerRegion(const U64 &handle,
const LLHost &host,
@@ -278,9 +336,11 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
mZoning(""),
mIsEstateManager(FALSE),
mRegionFlags( REGION_FLAGS_DEFAULT ),
+ mRegionProtocols( 0 ),
mSimAccess( SIM_ACCESS_MIN ),
mBillableFactor(1.0),
mMaxTasks(DEFAULT_MAX_REGION_WIDE_PRIM_COUNT),
+ mCentralBakeVersion(0),
mClassID(0),
mCPURatio(0),
mColoName("unknown"),
@@ -453,18 +513,6 @@ void LLViewerRegion::sendReliableMessage()
gMessageSystem->sendReliable(mImpl->mHost);
}
-void LLViewerRegion::setFlags(BOOL b, U32 flags)
-{
- if (b)
- {
- mRegionFlags |= flags;
- }
- else
- {
- mRegionFlags &= ~flags;
- }
-}
-
void LLViewerRegion::setWaterHeight(F32 water_level)
{
mImpl->mLandp->setWaterHeight(water_level);
@@ -477,10 +525,10 @@ F32 LLViewerRegion::getWaterHeight() const
BOOL LLViewerRegion::isVoiceEnabled() const
{
- return (getRegionFlags() & REGION_FLAGS_ALLOW_VOICE);
+ return getRegionFlag(REGION_FLAGS_ALLOW_VOICE);
}
-void LLViewerRegion::setRegionFlags(U32 flags)
+void LLViewerRegion::setRegionFlags(U64 flags)
{
mRegionFlags = flags;
}
@@ -573,7 +621,7 @@ std::string LLViewerRegion::getLocalizedSimProductName() const
}
// static
-std::string LLViewerRegion::regionFlagsToString(U32 flags)
+std::string LLViewerRegion::regionFlagsToString(U64 flags)
{
std::string result;
@@ -1388,7 +1436,8 @@ void LLViewerRegion::unpackRegionHandshake()
{
LLMessageSystem *msg = gMessageSystem;
- U32 region_flags;
+ U64 region_flags = 0;
+ U64 region_protocols = 0;
U8 sim_access;
std::string sim_name;
LLUUID sim_owner;
@@ -1397,7 +1446,6 @@ void LLViewerRegion::unpackRegionHandshake()
F32 billable_factor;
LLUUID cache_id;
- msg->getU32 ("RegionInfo", "RegionFlags", region_flags);
msg->getU8 ("RegionInfo", "SimAccess", sim_access);
msg->getString ("RegionInfo", "SimName", sim_name);
msg->getUUID ("RegionInfo", "SimOwner", sim_owner);
@@ -1406,7 +1454,20 @@ void LLViewerRegion::unpackRegionHandshake()
msg->getF32 ("RegionInfo", "BillableFactor", billable_factor);
msg->getUUID ("RegionInfo", "CacheID", cache_id );
+ if (msg->has(_PREHASH_RegionInfo4))
+ {
+ msg->getU64Fast(_PREHASH_RegionInfo4, _PREHASH_RegionFlagsExtended, region_flags);
+ msg->getU64Fast(_PREHASH_RegionInfo4, _PREHASH_RegionProtocols, region_protocols);
+ }
+ else
+ {
+ U32 flags = 0;
+ msg->getU32Fast(_PREHASH_RegionInfo, _PREHASH_RegionFlags, flags);
+ region_flags = flags;
+ }
+
setRegionFlags(region_flags);
+ setRegionProtocols(region_protocols);
setSimAccess(sim_access);
setRegionNameAndZone(sim_name);
setOwner(sim_owner);
@@ -1445,6 +1506,8 @@ void LLViewerRegion::unpackRegionHandshake()
mProductName = productName;
}
+
+ mCentralBakeVersion = region_protocols & 1; // was (S32)gSavedSettings.getBOOL("UseServerTextureBaking");
LLVLComposition *compp = getComposition();
if (compp)
{
@@ -1524,11 +1587,12 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("EventQueueGet");
if (gSavedSettings.getBOOL("UseHTTPInventory"))
- {
+ {
capabilityNames.append("FetchLib2");
capabilityNames.append("FetchLibDescendents2");
capabilityNames.append("FetchInventory2");
capabilityNames.append("FetchInventoryDescendents2");
+ capabilityNames.append("IncrementCOFVersion");
}
capabilityNames.append("GetDisplayNames");
@@ -1542,7 +1606,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("LandResources");
capabilityNames.append("MapLayer");
capabilityNames.append("MapLayerGod");
- capabilityNames.append("MeshUploadFlag");
+ capabilityNames.append("MeshUploadFlag");
capabilityNames.append("NavMeshGenerationStatus");
capabilityNames.append("NewFileAgentInventory");
capabilityNames.append("ObjectMedia");
@@ -1571,6 +1635,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("UntrustedSimulatorMessage");
capabilityNames.append("UpdateAgentInformation");
capabilityNames.append("UpdateAgentLanguage");
+ capabilityNames.append("UpdateAvatarAppearance");
capabilityNames.append("UpdateGestureAgentInventory");
capabilityNames.append("UpdateGestureTaskInventory");
capabilityNames.append("UpdateNotecardAgentInventory");
@@ -1581,7 +1646,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("ViewerMetrics");
capabilityNames.append("ViewerStartAuction");
capabilityNames.append("ViewerStats");
-
+
// Please add new capabilities alphabetically to reduce
// merge conflicts.
}
@@ -1589,8 +1654,14 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
void LLViewerRegion::setSeedCapability(const std::string& url)
{
if (getCapability("Seed") == url)
- {
- // llwarns << "Ignoring duplicate seed capability" << llendl;
+ {
+ //llwarns << "Ignoring duplicate seed capability" << llendl;
+ //Instead of just returning we build up a second set of seed caps and compare them
+ //to the "original" seed cap received and determine why there is problem!
+ LLSD capabilityNames = LLSD::emptyArray();
+ mImpl->buildCapabilityNames( capabilityNames );
+ LLHTTPClient::post( url, capabilityNames, BaseCapabilitiesCompleteTracker::build(getHandle() ),
+ LLSD(), CAP_REQUEST_TIMEOUT );
return;
}
@@ -1663,9 +1734,9 @@ public:
{ }
- void error(U32 statusNum, const std::string& reason)
+ void errorWithContent(U32 statusNum, const std::string& reason, const LLSD& content)
{
- LL_WARNS2("AppInit", "SimulatorFeatures") << statusNum << ": " << reason << LL_ENDL;
+ LL_WARNS2("AppInit", "SimulatorFeatures") << "[status:" << statusNum << "]: " << content << LL_ENDL;
retry();
}
@@ -1726,6 +1797,11 @@ void LLViewerRegion::setCapability(const std::string& name, const std::string& u
}
}
+void LLViewerRegion::setCapabilityDebug(const std::string& name, const std::string& url)
+{
+ mImpl->mSecondCapabilitiesTracker[name] = url;
+}
+
bool LLViewerRegion::isSpecialCapabilityName(const std::string &name)
{
return name == "EventQueueGet" || name == "UntrustedSimulatorMessage";
@@ -1733,6 +1809,11 @@ bool LLViewerRegion::isSpecialCapabilityName(const std::string &name)
std::string LLViewerRegion::getCapability(const std::string& name) const
{
+ if (!capabilitiesReceived() && (name!=std::string("Seed")) && (name!=std::string("ObjectMedia")))
+ {
+ llwarns << "getCapability called before caps received" << llendl;
+ }
+
CapabilityMap::const_iterator iter = mImpl->mCapabilities.find(name);
if(iter == mImpl->mCapabilities.end())
{
@@ -1792,7 +1873,7 @@ LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type)
// the viewer can not yet distinquish between normal- and estate-owned objects
// so we collapse these two bits and enable the UI if either are set
-const U32 ALLOW_RETURN_ENCROACHING_OBJECT = REGION_FLAGS_ALLOW_RETURN_ENCROACHING_OBJECT
+const U64 ALLOW_RETURN_ENCROACHING_OBJECT = REGION_FLAGS_ALLOW_RETURN_ENCROACHING_OBJECT
| REGION_FLAGS_ALLOW_RETURN_ENCROACHING_ESTATE_OBJECT;
bool LLViewerRegion::objectIsReturnable(const LLVector3& pos, const std::vector<LLBBox>& boxes) const
@@ -1800,7 +1881,7 @@ bool LLViewerRegion::objectIsReturnable(const LLVector3& pos, const std::vector<
return (mParcelOverlay != NULL)
&& (mParcelOverlay->isOwnedSelf(pos)
|| mParcelOverlay->isOwnedGroup(pos)
- || ((mRegionFlags & ALLOW_RETURN_ENCROACHING_OBJECT)
+ || (getRegionFlag(ALLOW_RETURN_ENCROACHING_OBJECT)
&& mParcelOverlay->encroachesOwned(boxes)) );
}
diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h
index c9fffaf30e..b5fe4677b7 100644..100755
--- a/indra/newview/llviewerregion.h
+++ b/indra/newview/llviewerregion.h
@@ -109,13 +109,13 @@ public:
//void setAgentOffset(const LLVector3d &offset);
void updateRenderMatrix();
- void setAllowDamage(BOOL b) { setFlags(b, REGION_FLAGS_ALLOW_DAMAGE); }
- void setAllowLandmark(BOOL b) { setFlags(b, REGION_FLAGS_ALLOW_LANDMARK); }
- void setAllowSetHome(BOOL b) { setFlags(b, REGION_FLAGS_ALLOW_SET_HOME); }
- void setResetHomeOnTeleport(BOOL b) { setFlags(b, REGION_FLAGS_RESET_HOME_ON_TELEPORT); }
- void setSunFixed(BOOL b) { setFlags(b, REGION_FLAGS_SUN_FIXED); }
- void setBlockFly(BOOL b) { setFlags(b, REGION_FLAGS_BLOCK_FLY); }
- void setAllowDirectTeleport(BOOL b) { setFlags(b, REGION_FLAGS_ALLOW_DIRECT_TELEPORT); }
+ void setAllowDamage(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DAMAGE, b); }
+ void setAllowLandmark(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_LANDMARK, b); }
+ void setAllowSetHome(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_SET_HOME, b); }
+ void setResetHomeOnTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_RESET_HOME_ON_TELEPORT, b); }
+ void setSunFixed(BOOL b) { setRegionFlag(REGION_FLAGS_SUN_FIXED, b); }
+ void setBlockFly(BOOL b) { setRegionFlag(REGION_FLAGS_BLOCK_FLY, b); }
+ void setAllowDirectTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT, b); }
inline BOOL getAllowDamage() const;
@@ -156,8 +156,15 @@ public:
LLViewerParcelOverlay *getParcelOverlay() const
{ return mParcelOverlay; }
- void setRegionFlags(U32 flags);
- U32 getRegionFlags() const { return mRegionFlags; }
+ inline void setRegionFlag(U64 flag, BOOL on);
+ inline BOOL getRegionFlag(U64 flag) const;
+ void setRegionFlags(U64 flags);
+ U64 getRegionFlags() const { return mRegionFlags; }
+
+ inline void setRegionProtocol(U64 protocol, BOOL on);
+ BOOL getRegionProtocol(U64 protocol) const;
+ void setRegionProtocols(U64 protocols) { mRegionProtocols = protocols; }
+ U64 getRegionProtocols() const { return mRegionProtocols; }
void setTimeDilation(F32 time_dilation);
F32 getTimeDilation() const { return mTimeDilation; }
@@ -195,7 +202,7 @@ public:
std::string getLocalizedSimProductName() const;
// Returns "Sandbox", "Expensive", etc.
- static std::string regionFlagsToString(U32 flags);
+ static std::string regionFlagsToString(U64 flags);
// Returns translated version of "Mature", "PG", "Adult", etc.
static std::string accessToString(U8 sim_access);
@@ -234,6 +241,7 @@ public:
void failedSeedCapability();
S32 getNumSeedCapRetries();
void setCapability(const std::string& name, const std::string& url);
+ void setCapabilityDebug(const std::string& name, const std::string& url);
// implements LLCapabilityProvider
virtual std::string getCapability(const std::string& name) const;
@@ -278,6 +286,8 @@ public:
F32 getLandHeightRegion(const LLVector3& region_pos);
+ U8 getCentralBakeVersion() { return mCentralBakeVersion; }
+
void getInfo(LLSD& info);
bool meshRezEnabled() const;
@@ -330,7 +340,9 @@ public:
void getNeighboringRegions( std::vector<LLViewerRegion*>& uniqueRegions );
void getNeighboringRegionsStatus( std::vector<S32>& regions );
-
+ const LLViewerRegionImpl * getRegionImpl() const { return mImpl; }
+ LLViewerRegionImpl * getRegionImplNC() { return mImpl; }
+
public:
struct CompareDistance
{
@@ -345,7 +357,6 @@ public:
protected:
void disconnectAllNeighbors();
void initStats();
- void setFlags(BOOL b, U32 flags);
public:
LLWind mWind;
@@ -390,11 +401,13 @@ private:
U32 mPingDelay;
F32 mDeltaTime; // Time since last measurement of lastPackets, Bits, etc
- U32 mRegionFlags; // includes damage flags
+ U64 mRegionFlags; // includes damage flags
+ U64 mRegionProtocols; // protocols supported by this region
U8 mSimAccess;
F32 mBillableFactor;
U32 mMaxTasks; // max prim count
F32 mCameraDistanceSquared; // updated once per frame
+ U8 mCentralBakeVersion;
// Information for Homestead / CR-53
S32 mClassID;
@@ -423,6 +436,40 @@ private:
LLSD mSimulatorFeatures;
};
+inline BOOL LLViewerRegion::getRegionProtocol(U64 protocol) const
+{
+ return ((mRegionProtocols & protocol) != 0);
+}
+
+inline void LLViewerRegion::setRegionProtocol(U64 protocol, BOOL on)
+{
+ if (on)
+ {
+ mRegionProtocols |= protocol;
+ }
+ else
+ {
+ mRegionProtocols &= ~protocol;
+ }
+}
+
+inline BOOL LLViewerRegion::getRegionFlag(U64 flag) const
+{
+ return ((mRegionFlags & flag) != 0);
+}
+
+inline void LLViewerRegion::setRegionFlag(U64 flag, BOOL on)
+{
+ if (on)
+ {
+ mRegionFlags |= flag;
+ }
+ else
+ {
+ mRegionFlags &= ~flag;
+ }
+}
+
inline BOOL LLViewerRegion::getAllowDamage() const
{
return ((mRegionFlags & REGION_FLAGS_ALLOW_DAMAGE) !=0);
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index ba9818946c..ba9818946c 100644..100755
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h
index d6dd645e8c..e3d28f2f5c 100644..100755
--- a/indra/newview/llviewershadermgr.h
+++ b/indra/newview/llviewershadermgr.h
@@ -229,7 +229,6 @@ extern LLGLSLShader gSplatTextureRectProgram;
extern LLGLSLShader gGlowCombineFXAAProgram;
extern LLGLSLShader gDebugProgram;
extern LLGLSLShader gClipProgram;
-extern LLGLSLShader gAlphaMaskProgram;
//output tex0[tc0] + tex1[tc1]
extern LLGLSLShader gTwoTextureAddProgram;
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 35839ae459..35bba4184e 100644..100755
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -752,25 +752,6 @@ void LLViewerStats::PhaseMap::startPhase(const std::string& phase_name)
timer.unpause();
}
-void LLViewerStats::PhaseMap::stopPhase(const std::string& phase_name)
-{
- phase_map_t::iterator iter = mPhaseMap.find(phase_name);
- if (iter != mPhaseMap.end())
- {
- if (iter->second.getStarted())
- {
- // Going from started to paused state - record stats.
- recordPhaseStat(phase_name,iter->second.getElapsedTimeF32());
- }
- lldebugs << "stopPhase " << phase_name << llendl;
- iter->second.pause();
- }
- else
- {
- lldebugs << "stopPhase " << phase_name << " is not started, no-op" << llendl;
- }
-}
-
void LLViewerStats::PhaseMap::stopAllPhases()
{
for (phase_map_t::iterator iter = mPhaseMap.begin();
@@ -814,6 +795,19 @@ LLViewerStats::PhaseMap::PhaseMap()
{
}
+
+void LLViewerStats::PhaseMap::stopPhase(const std::string& phase_name)
+{
+ phase_map_t::iterator iter = mPhaseMap.find(phase_name);
+ if (iter != mPhaseMap.end())
+ {
+ if (iter->second.getStarted())
+ {
+ // Going from started to stopped state - record stats.
+ iter->second.stop();
+ }
+ }
+}
// static
LLViewerStats::StatsAccumulator& LLViewerStats::PhaseMap::getPhaseStats(const std::string& phase_name)
{
@@ -833,3 +827,18 @@ void LLViewerStats::PhaseMap::recordPhaseStat(const std::string& phase_name, F32
stats.push(value);
}
+
+bool LLViewerStats::PhaseMap::getPhaseValues(const std::string& phase_name, F32& elapsed, bool& completed)
+{
+ phase_map_t::iterator iter = mPhaseMap.find(phase_name);
+ if (iter != mPhaseMap.end())
+ {
+ elapsed = iter->second.getElapsedTimeF32();
+ completed = !iter->second.getStarted();
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h
index e02a4ccdc7..6b2461be41 100644..100755
--- a/indra/newview/llviewerstats.h
+++ b/indra/newview/llviewerstats.h
@@ -289,6 +289,7 @@ public:
public:
PhaseMap();
LLFrameTimer& getPhaseTimer(const std::string& phase_name);
+ bool getPhaseValues(const std::string& phase_name, F32& elapsed, bool& completed);
void startPhase(const std::string& phase_name);
void stopPhase(const std::string& phase_name);
void stopAllPhases();
@@ -296,8 +297,11 @@ public:
LLSD dumpPhases();
static StatsAccumulator& getPhaseStats(const std::string& phase_name);
static void recordPhaseStat(const std::string& phase_name, F32 value);
+ phase_map_t::iterator begin() { return mPhaseMap.begin(); }
+ phase_map_t::iterator end() { return mPhaseMap.end(); }
};
+
private:
F64 mStats[ST_COUNT];
diff --git a/indra/newview/llviewerstatsrecorder.cpp b/indra/newview/llviewerstatsrecorder.cpp
index 91e485d01b..f9a725547f 100644..100755
--- a/indra/newview/llviewerstatsrecorder.cpp
+++ b/indra/newview/llviewerstatsrecorder.cpp
@@ -187,6 +187,7 @@ void LLViewerStatsRecorder::writeToLog( F32 interval )
<< mObjectUpdateFailures << " update failures"
<< llendl;
+ U32 data_size;
if (mObjectCacheFile == NULL)
{
mStartTime = LLTimer::getTotalSeconds();
@@ -216,7 +217,11 @@ void LLViewerStatsRecorder::writeToLog( F32 interval )
<< "Texture Fetch bps\t"
<< "\n";
- fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );
+ data_size = data_msg.str().size();
+ if (fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile ) != data_size)
+ {
+ llwarns << "failed to write full headers to " << STATS_FILE_NAME << llendl;
+ }
}
else
{
@@ -249,7 +254,12 @@ void LLViewerStatsRecorder::writeToLog( F32 interval )
<< "\t" << (mTextureFetchSize * 8 / delta_time)
<< "\n";
- fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile );
+ data_size = data_msg.str().size();
+ if (fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile ) != data_size)
+ {
+ llwarns << "failed to write full stats to " << STATS_FILE_NAME << llendl;
+ }
+
clearStats();
}
diff --git a/indra/newview/llviewerstatsrecorder.h b/indra/newview/llviewerstatsrecorder.h
index d1744f4910..d1744f4910 100644..100755
--- a/indra/newview/llviewerstatsrecorder.h
+++ b/indra/newview/llviewerstatsrecorder.h
diff --git a/indra/newview/llviewertexlayer.cpp b/indra/newview/llviewertexlayer.cpp
new file mode 100755
index 0000000000..777e1f9c76
--- /dev/null
+++ b/indra/newview/llviewertexlayer.cpp
@@ -0,0 +1,748 @@
+/**
+ * @file llviewertexlayer.cpp
+ * @brief Viewer texture layer. Used for avatars.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llviewertexlayer.h"
+
+#include "llagent.h"
+#include "llimagej2c.h"
+#include "llnotificationsutil.h"
+#include "llvfile.h"
+#include "llvfs.h"
+#include "llviewerregion.h"
+#include "llglslshader.h"
+#include "llvoavatarself.h"
+#include "pipeline.h"
+#include "llassetuploadresponders.h"
+#include "llviewercontrol.h"
+
+static const S32 BAKE_UPLOAD_ATTEMPTS = 7;
+static const F32 BAKE_UPLOAD_RETRY_DELAY = 2.f; // actual delay grows by power of 2 each attempt
+
+// runway consolidate
+extern std::string self_av_string();
+
+
+//-----------------------------------------------------------------------------
+// LLBakedUploadData()
+//-----------------------------------------------------------------------------
+LLBakedUploadData::LLBakedUploadData(const LLVOAvatarSelf* avatar,
+ LLViewerTexLayerSet* layerset,
+ const LLUUID& id,
+ bool highest_res) :
+ mAvatar(avatar),
+ mTexLayerSet(layerset),
+ mID(id),
+ mStartTime(LLFrameTimer::getTotalTime()), // Record starting time
+ mIsHighestRes(highest_res)
+{
+}
+
+//-----------------------------------------------------------------------------
+// LLViewerTexLayerSetBuffer
+// The composite image that a LLViewerTexLayerSet writes to. Each LLViewerTexLayerSet has one.
+//-----------------------------------------------------------------------------
+
+// static
+S32 LLViewerTexLayerSetBuffer::sGLByteCount = 0;
+
+LLViewerTexLayerSetBuffer::LLViewerTexLayerSetBuffer(LLTexLayerSet* const owner,
+ S32 width, S32 height) :
+ // ORDER_LAST => must render these after the hints are created.
+ LLTexLayerSetBuffer(owner),
+ LLViewerDynamicTexture( width, height, 4, LLViewerDynamicTexture::ORDER_LAST, TRUE ),
+ mUploadPending(FALSE), // Not used for any logic here, just to sync sending of updates
+ mNeedsUpload(FALSE),
+ mNumLowresUploads(0),
+ mUploadFailCount(0),
+ mNeedsUpdate(TRUE),
+ mNumLowresUpdates(0)
+{
+ LLViewerTexLayerSetBuffer::sGLByteCount += getSize();
+ mNeedsUploadTimer.start();
+ mNeedsUpdateTimer.start();
+}
+
+LLViewerTexLayerSetBuffer::~LLViewerTexLayerSetBuffer()
+{
+ LLViewerTexLayerSetBuffer::sGLByteCount -= getSize();
+ destroyGLTexture();
+ for( S32 order = 0; order < ORDER_COUNT; order++ )
+ {
+ LLViewerDynamicTexture::sInstances[order].erase(this); // will fail in all but one case.
+ }
+}
+
+//virtual
+S8 LLViewerTexLayerSetBuffer::getType() const
+{
+ return LLViewerDynamicTexture::LL_TEX_LAYER_SET_BUFFER ;
+}
+
+//virtual
+void LLViewerTexLayerSetBuffer::restoreGLTexture()
+{
+ LLViewerDynamicTexture::restoreGLTexture() ;
+}
+
+//virtual
+void LLViewerTexLayerSetBuffer::destroyGLTexture()
+{
+ LLViewerDynamicTexture::destroyGLTexture() ;
+}
+
+// static
+void LLViewerTexLayerSetBuffer::dumpTotalByteCount()
+{
+ llinfos << "Composite System GL Buffers: " << (LLViewerTexLayerSetBuffer::sGLByteCount/1024) << "KB" << llendl;
+}
+
+void LLViewerTexLayerSetBuffer::requestUpdate()
+{
+ restartUpdateTimer();
+ mNeedsUpdate = TRUE;
+ mNumLowresUpdates = 0;
+ // If we're in the middle of uploading a baked texture, we don't care about it any more.
+ // When it's downloaded, ignore it.
+ mUploadID.setNull();
+}
+
+void LLViewerTexLayerSetBuffer::requestUpload()
+{
+ conditionalRestartUploadTimer();
+ mNeedsUpload = TRUE;
+ mNumLowresUploads = 0;
+ mUploadPending = TRUE;
+}
+
+void LLViewerTexLayerSetBuffer::conditionalRestartUploadTimer()
+{
+ // If we requested a new upload but haven't even uploaded
+ // a low res version of our last upload request, then
+ // keep the timer ticking instead of resetting it.
+ if (mNeedsUpload && (mNumLowresUploads == 0))
+ {
+ mNeedsUploadTimer.unpause();
+ }
+ else
+ {
+ mNeedsUploadTimer.reset();
+ mNeedsUploadTimer.start();
+ }
+}
+
+void LLViewerTexLayerSetBuffer::restartUpdateTimer()
+{
+ mNeedsUpdateTimer.reset();
+ mNeedsUpdateTimer.start();
+}
+
+void LLViewerTexLayerSetBuffer::cancelUpload()
+{
+ mNeedsUpload = FALSE;
+ mUploadPending = FALSE;
+ mNeedsUploadTimer.pause();
+ mUploadRetryTimer.reset();
+}
+
+// virtual
+BOOL LLViewerTexLayerSetBuffer::needsRender()
+{
+ llassert(mTexLayerSet->getAvatarAppearance() == gAgentAvatarp);
+ if (!isAgentAvatarValid()) return FALSE;
+
+ const BOOL upload_now = mNeedsUpload && isReadyToUpload();
+ const BOOL update_now = mNeedsUpdate && isReadyToUpdate();
+
+ // Don't render if we don't want to (or aren't ready to) upload or update.
+ if (!(update_now || upload_now))
+ {
+ return FALSE;
+ }
+
+ // Don't render if we're animating our appearance.
+ if (gAgentAvatarp->getIsAppearanceAnimating())
+ {
+ return FALSE;
+ }
+
+ // Don't render if we are trying to create a shirt texture but aren't wearing a skirt.
+ if (gAgentAvatarp->getBakedTE(getViewerTexLayerSet()) == LLAvatarAppearanceDefines::TEX_SKIRT_BAKED &&
+ !gAgentAvatarp->isWearingWearableType(LLWearableType::WT_SKIRT))
+ {
+ cancelUpload();
+ return FALSE;
+ }
+
+ // Render if we have at least minimal level of detail for each local texture.
+ return getViewerTexLayerSet()->isLocalTextureDataAvailable();
+}
+
+// virtual
+void LLViewerTexLayerSetBuffer::preRenderTexLayerSet()
+{
+ LLTexLayerSetBuffer::preRenderTexLayerSet();
+
+ // keep depth buffer, we don't need to clear it
+ LLViewerDynamicTexture::preRender(FALSE);
+}
+
+// virtual
+void LLViewerTexLayerSetBuffer::postRenderTexLayerSet(BOOL success)
+{
+
+ LLTexLayerSetBuffer::postRenderTexLayerSet(success);
+ LLViewerDynamicTexture::postRender(success);
+}
+
+// virtual
+void LLViewerTexLayerSetBuffer::midRenderTexLayerSet(BOOL success)
+{
+ // do we need to upload, and do we have sufficient data to create an uploadable composite?
+ // TODO: When do we upload the texture if gAgent.mNumPendingQueries is non-zero?
+ const BOOL upload_now = mNeedsUpload && isReadyToUpload();
+ const BOOL update_now = mNeedsUpdate && isReadyToUpdate();
+
+ if(upload_now)
+ {
+ if (!success)
+ {
+ llinfos << "Failed attempt to bake " << mTexLayerSet->getBodyRegionName() << llendl;
+ mUploadPending = FALSE;
+ }
+ else
+ {
+ LLViewerTexLayerSet* layer_set = getViewerTexLayerSet();
+ if (layer_set->isVisible())
+ {
+ layer_set->getAvatar()->debugBakedTextureUpload(layer_set->getBakedTexIndex(), FALSE); // FALSE for start of upload, TRUE for finish.
+ doUpload();
+ }
+ else
+ {
+ mUploadPending = FALSE;
+ mNeedsUpload = FALSE;
+ mNeedsUploadTimer.pause();
+ layer_set->getAvatar()->setNewBakedTexture(layer_set->getBakedTexIndex(),IMG_INVISIBLE);
+ }
+ }
+ }
+
+ if (update_now)
+ {
+ doUpdate();
+ }
+
+ // *TODO: Old logic does not check success before setGLTextureCreated
+ // we have valid texture data now
+ mGLTexturep->setGLTextureCreated(true);
+}
+
+BOOL LLViewerTexLayerSetBuffer::isInitialized(void) const
+{
+ return mGLTexturep.notNull() && mGLTexturep->isGLTextureCreated();
+}
+
+BOOL LLViewerTexLayerSetBuffer::uploadPending() const
+{
+ return mUploadPending;
+}
+
+BOOL LLViewerTexLayerSetBuffer::uploadNeeded() const
+{
+ return mNeedsUpload;
+}
+
+BOOL LLViewerTexLayerSetBuffer::uploadInProgress() const
+{
+ return !mUploadID.isNull();
+}
+
+BOOL LLViewerTexLayerSetBuffer::isReadyToUpload() const
+{
+ if (!gAgentQueryManager.hasNoPendingQueries()) return FALSE; // Can't upload if there are pending queries.
+ if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance()) return FALSE; // Don't upload if avatar is being edited.
+
+ BOOL ready = FALSE;
+ if (getViewerTexLayerSet()->isLocalTextureDataFinal())
+ {
+ // If we requested an upload and have the final LOD ready, upload (or wait a while if this is a retry)
+ if (mUploadFailCount == 0)
+ {
+ ready = TRUE;
+ }
+ else
+ {
+ ready = mUploadRetryTimer.getElapsedTimeF32() >= BAKE_UPLOAD_RETRY_DELAY * (1 << (mUploadFailCount - 1));
+ }
+ }
+ else
+ {
+ // Upload if we've hit a timeout. Upload is a pretty expensive process so we need to make sure
+ // we aren't doing uploads too frequently.
+ const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedTextureUploadTimeout");
+ if (texture_timeout != 0)
+ {
+ // The timeout period increases exponentially between every lowres upload in order to prevent
+ // spamming the server with frequent uploads.
+ const U32 texture_timeout_threshold = texture_timeout*(1 << mNumLowresUploads);
+
+ // If we hit our timeout and have textures available at even lower resolution, then upload.
+ const BOOL is_upload_textures_timeout = mNeedsUploadTimer.getElapsedTimeF32() >= texture_timeout_threshold;
+ const BOOL has_lower_lod = getViewerTexLayerSet()->isLocalTextureDataAvailable();
+ ready = has_lower_lod && is_upload_textures_timeout;
+ }
+ }
+
+ return ready;
+}
+
+BOOL LLViewerTexLayerSetBuffer::isReadyToUpdate() const
+{
+ // If we requested an update and have the final LOD ready, then update.
+ if (getViewerTexLayerSet()->isLocalTextureDataFinal()) return TRUE;
+
+ // If we haven't done an update yet, then just do one now regardless of state of textures.
+ if (mNumLowresUpdates == 0) return TRUE;
+
+ // Update if we've hit a timeout. Unlike for uploads, we can make this timeout fairly small
+ // since render unnecessarily doesn't cost much.
+ const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedLocalTextureUpdateTimeout");
+ if (texture_timeout != 0)
+ {
+ // If we hit our timeout and have textures available at even lower resolution, then update.
+ const BOOL is_update_textures_timeout = mNeedsUpdateTimer.getElapsedTimeF32() >= texture_timeout;
+ const BOOL has_lower_lod = getViewerTexLayerSet()->isLocalTextureDataAvailable();
+ if (has_lower_lod && is_update_textures_timeout) return TRUE;
+ }
+
+ return FALSE;
+}
+
+BOOL LLViewerTexLayerSetBuffer::requestUpdateImmediate()
+{
+ mNeedsUpdate = TRUE;
+ BOOL result = FALSE;
+
+ if (needsRender())
+ {
+ preRender(FALSE);
+ result = render();
+ postRender(result);
+ }
+
+ return result;
+}
+
+// Create the baked texture, send it out to the server, then wait for it to come
+// back so we can switch to using it.
+void LLViewerTexLayerSetBuffer::doUpload()
+{
+ LLViewerTexLayerSet* layer_set = getViewerTexLayerSet();
+ LL_DEBUGS("Avatar") << "Uploading baked " << layer_set->getBodyRegionName() << llendl;
+ LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_BAKES);
+
+ // Don't need caches since we're baked now. (note: we won't *really* be baked
+ // until this image is sent to the server and the Avatar Appearance message is received.)
+ layer_set->deleteCaches();
+
+ // Get the COLOR information from our texture
+ U8* baked_color_data = new U8[ mFullWidth * mFullHeight * 4 ];
+ glReadPixels(mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, GL_RGBA, GL_UNSIGNED_BYTE, baked_color_data );
+ stop_glerror();
+
+ // Get the MASK information from our texture
+ LLGLSUIDefault gls_ui;
+ LLPointer<LLImageRaw> baked_mask_image = new LLImageRaw(mFullWidth, mFullHeight, 1 );
+ U8* baked_mask_data = baked_mask_image->getData();
+ layer_set->gatherMorphMaskAlpha(baked_mask_data,
+ mOrigin.mX, mOrigin.mY,
+ mFullWidth, mFullHeight);
+
+
+ // Create the baked image from our color and mask information
+ const S32 baked_image_components = 5; // red green blue [bump] clothing
+ LLPointer<LLImageRaw> baked_image = new LLImageRaw( mFullWidth, mFullHeight, baked_image_components );
+ U8* baked_image_data = baked_image->getData();
+ S32 i = 0;
+ for (S32 u=0; u < mFullWidth; u++)
+ {
+ for (S32 v=0; v < mFullHeight; v++)
+ {
+ baked_image_data[5*i + 0] = baked_color_data[4*i + 0];
+ baked_image_data[5*i + 1] = baked_color_data[4*i + 1];
+ baked_image_data[5*i + 2] = baked_color_data[4*i + 2];
+ baked_image_data[5*i + 3] = baked_color_data[4*i + 3]; // alpha should be correct for eyelashes.
+ baked_image_data[5*i + 4] = baked_mask_data[i];
+ i++;
+ }
+ }
+
+ LLPointer<LLImageJ2C> compressedImage = new LLImageJ2C;
+ const char* comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // writes into baked_color_data. 5 channels (rgb, heightfield/alpha, mask)
+ if (compressedImage->encode(baked_image, comment_text))
+ {
+ LLTransactionID tid;
+ tid.generate();
+ const LLAssetID asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
+ if (LLVFile::writeFile(compressedImage->getData(), compressedImage->getDataSize(),
+ gVFS, asset_id, LLAssetType::AT_TEXTURE))
+ {
+ // Read back the file and validate.
+ BOOL valid = FALSE;
+ LLPointer<LLImageJ2C> integrity_test = new LLImageJ2C;
+ S32 file_size = 0;
+ LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE);
+ file_size = file.getSize();
+ U8* data = integrity_test->allocateData(file_size);
+ file.read(data, file_size);
+ if (data)
+ {
+ valid = integrity_test->validate(data, file_size); // integrity_test will delete 'data'
+ }
+ else
+ {
+ integrity_test->setLastError("Unable to read entire file");
+ }
+
+ if (valid)
+ {
+ const bool highest_lod = layer_set->isLocalTextureDataFinal();
+ // Baked_upload_data is owned by the responder and deleted after the request completes.
+ LLBakedUploadData* baked_upload_data = new LLBakedUploadData(gAgentAvatarp,
+ layer_set,
+ asset_id,
+ highest_lod);
+ // upload ID is used to avoid overlaps, e.g. when the user rapidly makes two changes outside of Face Edit.
+ mUploadID = asset_id;
+
+ // Upload the image
+ const std::string url = gAgent.getRegion()->getCapability("UploadBakedTexture");
+ if(!url.empty()
+ && !LLPipeline::sForceOldBakedUpload // toggle debug setting UploadBakedTexOld to change between the new caps method and old method
+ && (mUploadFailCount < (BAKE_UPLOAD_ATTEMPTS - 1))) // Try last ditch attempt via asset store if cap upload is failing.
+ {
+ LLSD body = LLSD::emptyMap();
+ // The responder will call LLViewerTexLayerSetBuffer::onTextureUploadComplete()
+ LLHTTPClient::post(url, body, new LLSendTexLayerResponder(body, mUploadID, LLAssetType::AT_TEXTURE, baked_upload_data));
+ llinfos << "Baked texture upload via capability of " << mUploadID << " to " << url << llendl;
+ }
+ else
+ {
+ gAssetStorage->storeAssetData(tid,
+ LLAssetType::AT_TEXTURE,
+ LLViewerTexLayerSetBuffer::onTextureUploadComplete,
+ baked_upload_data,
+ TRUE, // temp_file
+ TRUE, // is_priority
+ TRUE); // store_local
+ llinfos << "Baked texture upload via Asset Store." << llendl;
+ }
+
+ if (highest_lod)
+ {
+ // Sending the final LOD for the baked texture. All done, pause
+ // the upload timer so we know how long it took.
+ mNeedsUpload = FALSE;
+ mNeedsUploadTimer.pause();
+ }
+ else
+ {
+ // Sending a lower level LOD for the baked texture. Restart the upload timer.
+ mNumLowresUploads++;
+ mNeedsUploadTimer.unpause();
+ mNeedsUploadTimer.reset();
+ }
+
+ // Print out notification that we uploaded this texture.
+ if (gSavedSettings.getBOOL("DebugAvatarRezTime"))
+ {
+ const std::string lod_str = highest_lod ? "HighRes" : "LowRes";
+ LLSD args;
+ args["EXISTENCE"] = llformat("%d",(U32)layer_set->getAvatar()->debugGetExistenceTimeElapsedF32());
+ args["TIME"] = llformat("%d",(U32)mNeedsUploadTimer.getElapsedTimeF32());
+ args["BODYREGION"] = layer_set->getBodyRegionName();
+ args["RESOLUTION"] = lod_str;
+ LLNotificationsUtil::add("AvatarRezSelfBakedTextureUploadNotification",args);
+ LL_DEBUGS("Avatar") << self_av_string() << "Uploading [ name: " << layer_set->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUploadTimer.getElapsedTimeF32() << " ]" << LL_ENDL;
+ }
+ }
+ else
+ {
+ // The read back and validate operation failed. Remove the uploaded file.
+ mUploadPending = FALSE;
+ LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE, LLVFile::WRITE);
+ file.remove();
+ llinfos << "Unable to create baked upload file (reason: corrupted)." << llendl;
+ }
+ }
+ }
+ else
+ {
+ // The VFS write file operation failed.
+ mUploadPending = FALSE;
+ llinfos << "Unable to create baked upload file (reason: failed to write file)" << llendl;
+ }
+
+ delete [] baked_color_data;
+}
+
+// Mostly bookkeeping; don't need to actually "do" anything since
+// render() will actually do the update.
+void LLViewerTexLayerSetBuffer::doUpdate()
+{
+ LLViewerTexLayerSet* layer_set = getViewerTexLayerSet();
+ const BOOL highest_lod = layer_set->isLocalTextureDataFinal();
+ if (highest_lod)
+ {
+ mNeedsUpdate = FALSE;
+ }
+ else
+ {
+ mNumLowresUpdates++;
+ }
+
+ restartUpdateTimer();
+
+ // need to switch to using this layerset if this is the first update
+ // after getting the lowest LOD
+ layer_set->getAvatar()->updateMeshTextures();
+
+ // Print out notification that we updated this texture.
+ if (gSavedSettings.getBOOL("DebugAvatarRezTime"))
+ {
+ const BOOL highest_lod = layer_set->isLocalTextureDataFinal();
+ const std::string lod_str = highest_lod ? "HighRes" : "LowRes";
+ LLSD args;
+ args["EXISTENCE"] = llformat("%d",(U32)layer_set->getAvatar()->debugGetExistenceTimeElapsedF32());
+ args["TIME"] = llformat("%d",(U32)mNeedsUpdateTimer.getElapsedTimeF32());
+ args["BODYREGION"] = layer_set->getBodyRegionName();
+ args["RESOLUTION"] = lod_str;
+ LLNotificationsUtil::add("AvatarRezSelfBakedTextureUpdateNotification",args);
+ LL_DEBUGS("Avatar") << self_av_string() << "Locally updating [ name: " << layer_set->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUpdateTimer.getElapsedTimeF32() << " ]" << LL_ENDL;
+ }
+}
+
+// static
+void LLViewerTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid,
+ void* userdata,
+ S32 result,
+ LLExtStat ext_status) // StoreAssetData callback (not fixed)
+{
+ LLBakedUploadData* baked_upload_data = (LLBakedUploadData*)userdata;
+
+ if (isAgentAvatarValid() &&
+ !gAgentAvatarp->isDead() &&
+ (baked_upload_data->mAvatar == gAgentAvatarp) && // Sanity check: only the user's avatar should be uploading textures.
+ (baked_upload_data->mTexLayerSet->hasComposite()))
+ {
+ LLViewerTexLayerSetBuffer* layerset_buffer = baked_upload_data->mTexLayerSet->getViewerComposite();
+ S32 failures = layerset_buffer->mUploadFailCount;
+ layerset_buffer->mUploadFailCount = 0;
+
+ if (layerset_buffer->mUploadID.isNull())
+ {
+ // The upload got canceled, we should be in the
+ // process of baking a new texture so request an
+ // upload with the new data
+
+ // BAP: does this really belong in this callback, as
+ // opposed to where the cancellation takes place?
+ // suspect this does nothing.
+ layerset_buffer->requestUpload();
+ }
+ else if (baked_upload_data->mID == layerset_buffer->mUploadID)
+ {
+ // This is the upload we're currently waiting for.
+ layerset_buffer->mUploadID.setNull();
+ const std::string name(baked_upload_data->mTexLayerSet->getBodyRegionName());
+ const std::string resolution = baked_upload_data->mIsHighestRes ? " full res " : " low res ";
+ if (result >= 0)
+ {
+ layerset_buffer->mUploadPending = FALSE; // Allows sending of AgentSetAppearance later
+ LLAvatarAppearanceDefines::ETextureIndex baked_te = gAgentAvatarp->getBakedTE(layerset_buffer->getViewerTexLayerSet());
+ // Update baked texture info with the new UUID
+ U64 now = LLFrameTimer::getTotalTime(); // Record starting time
+ llinfos << "Baked" << resolution << "texture upload for " << name << " took " << (S32)((now - baked_upload_data->mStartTime) / 1000) << " ms" << llendl;
+ gAgentAvatarp->setNewBakedTexture(baked_te, uuid);
+ }
+ else
+ {
+ ++failures;
+ S32 max_attempts = baked_upload_data->mIsHighestRes ? BAKE_UPLOAD_ATTEMPTS : 1; // only retry final bakes
+ llwarns << "Baked" << resolution << "texture upload for " << name << " failed (attempt " << failures << "/" << max_attempts << ")" << llendl;
+ if (failures < max_attempts)
+ {
+ layerset_buffer->mUploadFailCount = failures;
+ layerset_buffer->mUploadRetryTimer.start();
+ layerset_buffer->requestUpload();
+ }
+ }
+ }
+ else
+ {
+ llinfos << "Received baked texture out of date, ignored." << llendl;
+ }
+
+ gAgentAvatarp->dirtyMesh();
+ }
+ else
+ {
+ // Baked texture failed to upload (in which case since we
+ // didn't set the new baked texture, it means that they'll try
+ // and rebake it at some point in the future (after login?)),
+ // or this response to upload is out of date, in which case a
+ // current response should be on the way or already processed.
+ llwarns << "Baked upload failed" << llendl;
+ }
+
+ delete baked_upload_data;
+}
+
+//-----------------------------------------------------------------------------
+// LLViewerTexLayerSet
+// An ordered set of texture layers that get composited into a single texture.
+//-----------------------------------------------------------------------------
+
+LLViewerTexLayerSet::LLViewerTexLayerSet(LLAvatarAppearance* const appearance) :
+ LLTexLayerSet(appearance),
+ mUpdatesEnabled( FALSE )
+{
+}
+
+// virtual
+LLViewerTexLayerSet::~LLViewerTexLayerSet()
+{
+}
+
+// Returns TRUE if at least one packet of data has been received for each of the textures that this layerset depends on.
+BOOL LLViewerTexLayerSet::isLocalTextureDataAvailable() const
+{
+ if (!mAvatarAppearance->isSelf()) return FALSE;
+ return getAvatar()->isLocalTextureDataAvailable(this);
+}
+
+
+// Returns TRUE if all of the data for the textures that this layerset depends on have arrived.
+BOOL LLViewerTexLayerSet::isLocalTextureDataFinal() const
+{
+ if (!mAvatarAppearance->isSelf()) return FALSE;
+ return getAvatar()->isLocalTextureDataFinal(this);
+}
+
+// virtual
+void LLViewerTexLayerSet::requestUpdate()
+{
+ if( mUpdatesEnabled )
+ {
+ createComposite();
+ getViewerComposite()->requestUpdate();
+ }
+}
+
+void LLViewerTexLayerSet::requestUpload()
+{
+ createComposite();
+ getViewerComposite()->requestUpload();
+}
+
+void LLViewerTexLayerSet::cancelUpload()
+{
+ if(mComposite)
+ {
+ getViewerComposite()->cancelUpload();
+ }
+}
+
+void LLViewerTexLayerSet::updateComposite()
+{
+ createComposite();
+ getViewerComposite()->requestUpdateImmediate();
+}
+
+// virtual
+void LLViewerTexLayerSet::createComposite()
+{
+ if(!mComposite)
+ {
+ S32 width = mInfo->getWidth();
+ S32 height = mInfo->getHeight();
+ // Composite other avatars at reduced resolution
+ if( !mAvatarAppearance->isSelf() )
+ {
+ llerrs << "composites should not be created for non-self avatars!" << llendl;
+ }
+ mComposite = new LLViewerTexLayerSetBuffer( this, width, height );
+ }
+}
+
+void LLViewerTexLayerSet::setUpdatesEnabled( BOOL b )
+{
+ mUpdatesEnabled = b;
+}
+
+LLVOAvatarSelf* LLViewerTexLayerSet::getAvatar()
+{
+ return dynamic_cast<LLVOAvatarSelf*> (mAvatarAppearance);
+}
+
+const LLVOAvatarSelf* LLViewerTexLayerSet::getAvatar() const
+{
+ return dynamic_cast<const LLVOAvatarSelf*> (mAvatarAppearance);
+}
+
+LLViewerTexLayerSetBuffer* LLViewerTexLayerSet::getViewerComposite()
+{
+ return dynamic_cast<LLViewerTexLayerSetBuffer*> (getComposite());
+}
+
+const LLViewerTexLayerSetBuffer* LLViewerTexLayerSet::getViewerComposite() const
+{
+ return dynamic_cast<const LLViewerTexLayerSetBuffer*> (getComposite());
+}
+
+
+const std::string LLViewerTexLayerSetBuffer::dumpTextureInfo() const
+{
+ if (!isAgentAvatarValid()) return "";
+
+ const BOOL is_high_res = !mNeedsUpload;
+ const U32 num_low_res = mNumLowresUploads;
+ const U32 upload_time = (U32)mNeedsUploadTimer.getElapsedTimeF32();
+ const std::string local_texture_info = gAgentAvatarp->debugDumpLocalTextureDataInfo(getViewerTexLayerSet());
+
+ std::string status = "CREATING ";
+ if (!uploadNeeded()) status = "DONE ";
+ if (uploadInProgress()) status = "UPLOADING";
+
+ std::string text = llformat("[%s] [HiRes:%d LoRes:%d] [Elapsed:%d] %s",
+ status.c_str(),
+ is_high_res, num_low_res,
+ upload_time,
+ local_texture_info.c_str());
+ return text;
+}
diff --git a/indra/newview/llviewertexlayer.h b/indra/newview/llviewertexlayer.h
new file mode 100644
index 0000000000..959c883da8
--- /dev/null
+++ b/indra/newview/llviewertexlayer.h
@@ -0,0 +1,180 @@
+/**
+ * @file llviewertexlayer.h
+ * @brief Viewer Texture layer classes. Used for avatars.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_VIEWER_TEXLAYER_H
+#define LL_VIEWER_TEXLAYER_H
+
+#include "lldynamictexture.h"
+#include "llextendedstatus.h"
+#include "lltexlayer.h"
+
+class LLVOAvatarSelf;
+class LLViewerTexLayerSetBuffer;
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// LLViewerTexLayerSet
+//
+// An ordered set of texture layers that gets composited into a single texture.
+// Only exists for llavatarappearanceself.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLViewerTexLayerSet : public LLTexLayerSet
+{
+public:
+ LLViewerTexLayerSet(LLAvatarAppearance* const appearance);
+ virtual ~LLViewerTexLayerSet();
+
+ /*virtual*/void requestUpdate();
+ void requestUpload();
+ void cancelUpload();
+ BOOL isLocalTextureDataAvailable() const;
+ BOOL isLocalTextureDataFinal() const;
+ void updateComposite();
+ /*virtual*/void createComposite();
+ void setUpdatesEnabled(BOOL b);
+ BOOL getUpdatesEnabled() const { return mUpdatesEnabled; }
+
+ LLVOAvatarSelf* getAvatar();
+ const LLVOAvatarSelf* getAvatar() const;
+ LLViewerTexLayerSetBuffer* getViewerComposite();
+ const LLViewerTexLayerSetBuffer* getViewerComposite() const;
+
+private:
+ BOOL mUpdatesEnabled;
+
+};
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// LLViewerTexLayerSetBuffer
+//
+// The composite image that a LLViewerTexLayerSet writes to. Each LLViewerTexLayerSet has one.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLViewerTexLayerSetBuffer : public LLTexLayerSetBuffer, public LLViewerDynamicTexture
+{
+ LOG_CLASS(LLViewerTexLayerSetBuffer);
+
+public:
+ LLViewerTexLayerSetBuffer(LLTexLayerSet* const owner, S32 width, S32 height);
+ virtual ~LLViewerTexLayerSetBuffer();
+
+public:
+ /*virtual*/ S8 getType() const;
+ BOOL isInitialized(void) const;
+ static void dumpTotalByteCount();
+ const std::string dumpTextureInfo() const;
+ virtual void restoreGLTexture();
+ virtual void destroyGLTexture();
+private:
+ LLViewerTexLayerSet* getViewerTexLayerSet()
+ { return dynamic_cast<LLViewerTexLayerSet*> (mTexLayerSet); }
+ const LLViewerTexLayerSet* getViewerTexLayerSet() const
+ { return dynamic_cast<const LLViewerTexLayerSet*> (mTexLayerSet); }
+ static S32 sGLByteCount;
+
+ //--------------------------------------------------------------------
+ // Tex Layer Render
+ //--------------------------------------------------------------------
+ virtual void preRenderTexLayerSet();
+ virtual void midRenderTexLayerSet(BOOL success);
+ virtual void postRenderTexLayerSet(BOOL success);
+ virtual S32 getCompositeOriginX() const { return getOriginX(); }
+ virtual S32 getCompositeOriginY() const { return getOriginY(); }
+ virtual S32 getCompositeWidth() const { return getFullWidth(); }
+ virtual S32 getCompositeHeight() const { return getFullHeight(); }
+
+ //--------------------------------------------------------------------
+ // Dynamic Texture Interface
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ BOOL needsRender();
+protected:
+ // Pass these along for tex layer rendering.
+ virtual void preRender(BOOL clear_depth) { preRenderTexLayerSet(); }
+ virtual void postRender(BOOL success) { postRenderTexLayerSet(success); }
+ virtual BOOL render() { return renderTexLayerSet(); }
+
+ //--------------------------------------------------------------------
+ // Uploads
+ //--------------------------------------------------------------------
+public:
+ void requestUpload();
+ void cancelUpload();
+ BOOL uploadNeeded() const; // We need to upload a new texture
+ BOOL uploadInProgress() const; // We have started uploading a new texture and are awaiting the result
+ BOOL uploadPending() const; // We are expecting a new texture to be uploaded at some point
+ static void onTextureUploadComplete(const LLUUID& uuid,
+ void* userdata,
+ S32 result, LLExtStat ext_status);
+protected:
+ BOOL isReadyToUpload() const;
+ void doUpload(); // Does a read back and upload.
+ void conditionalRestartUploadTimer();
+private:
+ BOOL mNeedsUpload; // Whether we need to send our baked textures to the server
+ U32 mNumLowresUploads; // Number of times we've sent a lowres version of our baked textures to the server
+ BOOL mUploadPending; // Whether we have received back the new baked textures
+ LLUUID mUploadID; // The current upload process (null if none).
+ LLFrameTimer mNeedsUploadTimer; // Tracks time since upload was requested and performed.
+ S32 mUploadFailCount; // Number of consecutive upload failures
+ LLFrameTimer mUploadRetryTimer; // Tracks time since last upload failure.
+
+ //--------------------------------------------------------------------
+ // Updates
+ //--------------------------------------------------------------------
+public:
+ void requestUpdate();
+ BOOL requestUpdateImmediate();
+protected:
+ BOOL isReadyToUpdate() const;
+ void doUpdate();
+ void restartUpdateTimer();
+private:
+ BOOL mNeedsUpdate; // Whether we need to locally update our baked textures
+ U32 mNumLowresUpdates; // Number of times we've locally updated with lowres version of our baked textures
+ LLFrameTimer mNeedsUpdateTimer; // Tracks time since update was requested and performed.
+};
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// LLBakedUploadData
+//
+// Used by LLTexLayerSetBuffer for a callback.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+struct LLBakedUploadData
+{
+ LLBakedUploadData(const LLVOAvatarSelf* avatar,
+ LLViewerTexLayerSet* layerset,
+ const LLUUID& id,
+ bool highest_res);
+ ~LLBakedUploadData() {}
+ const LLUUID mID;
+ const LLVOAvatarSelf* mAvatar; // note: backlink only; don't LLPointer
+ LLViewerTexLayerSet* mTexLayerSet;
+ const U64 mStartTime; // for measuring baked texture upload time
+ const bool mIsHighestRes; // whether this is a "final" bake, or intermediate low res
+};
+
+#endif // LL_VIEWER_TEXLAYER_H
+
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index 122d8f4a96..8036a4e258 100644..100755
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -1052,8 +1052,6 @@ void LLViewerTextEditor::findEmbeddedItemSegments(S32 start, S32 end)
{
LLWString text = getWText();
- LLColor4 text_color = ( mReadOnly ? mReadOnlyFgColor.get() : mFgColor.get() );
-
// Start with i just after the first embedded item
for(S32 idx = start; idx < end; idx++ )
{
diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h
index fb428d0dc1..fb428d0dc1 100644..100755
--- a/indra/newview/llviewertexteditor.h
+++ b/indra/newview/llviewertexteditor.h
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 08fcb60d03..eb6c453e76 100644..100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -58,6 +58,7 @@
#include "lltextureatlas.h"
#include "lltextureatlasmanager.h"
#include "lltextureentry.h"
+#include "lltexturemanagerbridge.h"
#include "llmediaentry.h"
#include "llvovolume.h"
#include "llviewermedia.h"
@@ -231,7 +232,7 @@ LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(BOOL usemipma
if(generate_gl_tex)
{
tex->generateGLTexture() ;
- tex->setCategory(LLViewerTexture::LOCAL) ;
+ tex->setCategory(LLGLTexture::LOCAL) ;
}
return tex ;
}
@@ -241,14 +242,14 @@ LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(const LLUUID&
if(generate_gl_tex)
{
tex->generateGLTexture() ;
- tex->setCategory(LLViewerTexture::LOCAL) ;
+ tex->setCategory(LLGLTexture::LOCAL) ;
}
return tex ;
}
LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(const LLImageRaw* raw, BOOL usemipmaps)
{
LLPointer<LLViewerTexture> tex = new LLViewerTexture(raw, usemipmaps) ;
- tex->setCategory(LLViewerTexture::LOCAL) ;
+ tex->setCategory(LLGLTexture::LOCAL) ;
return tex ;
}
LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps, BOOL generate_gl_tex)
@@ -257,13 +258,14 @@ LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(const U32 wid
if(generate_gl_tex)
{
tex->generateGLTexture() ;
- tex->setCategory(LLViewerTexture::LOCAL) ;
+ tex->setCategory(LLGLTexture::LOCAL) ;
}
return tex ;
}
LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(
const LLUUID &image_id,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -271,11 +273,12 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(
LLGLenum primary_format,
LLHost request_from_host)
{
- return gTextureList.getImage(image_id, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;
+ return gTextureList.getImage(image_id, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;
}
LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromFile(
- const std::string& filename,
+ const std::string& filename,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -283,11 +286,12 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromFile(
LLGLenum primary_format,
const LLUUID& force_id)
{
- return gTextureList.getImageFromFile(filename, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;
+ return gTextureList.getImageFromFile(filename, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;
}
//static
-LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string& url,
+LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string& url,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -296,14 +300,34 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const s
const LLUUID& force_id
)
{
- return gTextureList.getImageFromUrl(url, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;
+ return gTextureList.getImageFromUrl(url, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;
}
-LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromHost(const LLUUID& image_id, LLHost host)
+LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromHost(const LLUUID& image_id, FTType f_type, LLHost host)
{
- return gTextureList.getImageFromHost(image_id, host) ;
+ return gTextureList.getImageFromHost(image_id, f_type, host) ;
}
+// Create a bridge to the viewer texture manager.
+class LLViewerTextureManagerBridge : public LLTextureManagerBridge
+{
+ /*virtual*/ LLPointer<LLGLTexture> getLocalTexture(BOOL usemipmaps = TRUE, BOOL generate_gl_tex = TRUE)
+ {
+ return LLViewerTextureManager::getLocalTexture(usemipmaps, generate_gl_tex);
+ }
+
+ /*virtual*/ LLPointer<LLGLTexture> getLocalTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps, BOOL generate_gl_tex = TRUE)
+ {
+ return LLViewerTextureManager::getLocalTexture(width, height, components, usemipmaps, generate_gl_tex);
+ }
+
+ /*virtual*/ LLGLTexture* getFetchedTexture(const LLUUID &image_id)
+ {
+ return LLViewerTextureManager::getFetchedTexture(image_id);
+ }
+};
+
+
void LLViewerTextureManager::init()
{
{
@@ -349,12 +373,12 @@ void LLViewerTextureManager::init()
imagep->setCachedRawImage(0, image_raw) ;
image_raw = NULL;
#else
- LLViewerFetchedTexture::sDefaultImagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLViewerTexture::BOOST_UI);
+ LLViewerFetchedTexture::sDefaultImagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
#endif
LLViewerFetchedTexture::sDefaultImagep->dontDiscard();
- LLViewerFetchedTexture::sDefaultImagep->setCategory(LLViewerTexture::OTHER) ;
+ LLViewerFetchedTexture::sDefaultImagep->setCategory(LLGLTexture::OTHER) ;
- LLViewerFetchedTexture::sSmokeImagep = LLViewerTextureManager::getFetchedTexture(IMG_SMOKE, TRUE, LLViewerTexture::BOOST_UI);
+ LLViewerFetchedTexture::sSmokeImagep = LLViewerTextureManager::getFetchedTexture(IMG_SMOKE, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
LLViewerFetchedTexture::sSmokeImagep->setNoDelete() ;
image_raw = new LLImageRaw(32,32,3);
@@ -373,6 +397,9 @@ void LLViewerTextureManager::init()
LLViewerTexture::sCheckerBoardImagep = LLViewerTextureManager::getLocalTexture(image_raw.get(), TRUE);
LLViewerTexture::initClass() ;
+
+ // Create a texture manager bridge.
+ gTextureManagerBridgep = new LLViewerTextureManagerBridge;
if (LLMetricPerformanceTesterBasic::isMetricLogRequested(sTesterName) && !LLMetricPerformanceTesterBasic::getTester(sTesterName))
{
@@ -389,6 +416,7 @@ void LLViewerTextureManager::cleanup()
{
stop_glerror();
+ delete gTextureManagerBridgep;
LLImageGL::sDefaultGLTexture = NULL ;
LLViewerTexture::sNullImagep = NULL;
LLViewerTexture::sBlackImagep = NULL;
@@ -416,25 +444,6 @@ void LLViewerTexture::initClass()
}
}
-// static
-S32 LLViewerTexture::getTotalNumOfCategories()
-{
- return MAX_GL_IMAGE_CATEGORY - (BOOST_HIGH - BOOST_SCULPTED) + 2 ;
-}
-
-// static
-//index starts from zero.
-S32 LLViewerTexture::getIndexFromCategory(S32 category)
-{
- return (category < BOOST_HIGH) ? category : category - (BOOST_HIGH - BOOST_SCULPTED) + 1 ;
-}
-
-//static
-S32 LLViewerTexture::getCategoryFromIndex(S32 index)
-{
- return (index < BOOST_HIGH) ? index : index + (BOOST_HIGH - BOOST_SCULPTED) - 1 ;
-}
-
// tuning params
const F32 discard_bias_delta = .25f;
const F32 discard_delta_time = 0.5f;
@@ -571,70 +580,54 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
//-------------------------------------------------------------------------------------------
const U32 LLViewerTexture::sCurrentFileVersion = 1;
-LLViewerTexture::LLViewerTexture(BOOL usemipmaps)
+LLViewerTexture::LLViewerTexture(BOOL usemipmaps) :
+ LLGLTexture(usemipmaps)
{
init(true);
- mUseMipMaps = usemipmaps ;
mID.generate();
sImageCount++;
}
-LLViewerTexture::LLViewerTexture(const LLUUID& id, BOOL usemipmaps)
- : mID(id)
+LLViewerTexture::LLViewerTexture(const LLUUID& id, BOOL usemipmaps) :
+ LLGLTexture(usemipmaps),
+ mID(id)
{
init(true);
- mUseMipMaps = usemipmaps ;
sImageCount++;
}
-LLViewerTexture::LLViewerTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps)
+LLViewerTexture::LLViewerTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps) :
+ LLGLTexture(width, height, components, usemipmaps)
{
init(true);
- mFullWidth = width ;
- mFullHeight = height ;
- mUseMipMaps = usemipmaps ;
- mComponents = components ;
- setTexelsPerImage();
-
mID.generate();
sImageCount++;
}
-LLViewerTexture::LLViewerTexture(const LLImageRaw* raw, BOOL usemipmaps)
+LLViewerTexture::LLViewerTexture(const LLImageRaw* raw, BOOL usemipmaps) :
+ LLGLTexture(raw, usemipmaps)
{
init(true);
- mUseMipMaps = usemipmaps ;
- mGLTexturep = new LLImageGL(raw, usemipmaps) ;
- // Create an empty image of the specified size and width
mID.generate();
sImageCount++;
}
LLViewerTexture::~LLViewerTexture()
{
+ // LL_DEBUGS("Avatar") << mID << llendl;
cleanup();
sImageCount--;
}
+// virtual
void LLViewerTexture::init(bool firstinit)
{
- mBoostLevel = LLViewerTexture::BOOST_NONE;
mSelectedTime = 0.f;
-
- mFullWidth = 0;
- mFullHeight = 0;
- mTexelsPerImage = 0 ;
- mUseMipMaps = FALSE ;
- mComponents = 0 ;
-
- mTextureState = NO_DELETE ;
- mDontDiscard = FALSE;
mMaxVirtualSize = 0.f;
- mNeedsGLTexture = FALSE ;
mMaxVirtualSizeResetInterval = 1;
mMaxVirtualSizeResetCounter = mMaxVirtualSizeResetInterval ;
mAdditionalDecodePriority = 0.f ;
@@ -655,19 +648,12 @@ void LLViewerTexture::cleanup()
{
mFaceList.clear() ;
mVolumeList.clear();
- if(mGLTexturep)
- {
- mGLTexturep->cleanup();
- }
}
// virtual
void LLViewerTexture::dump()
{
- if(mGLTexturep)
- {
- mGLTexturep->dump();
- }
+ LLGLTexture::dump();
llinfos << "LLViewerTexture"
<< " mID " << mID
@@ -690,10 +676,8 @@ void LLViewerTexture::setBoostLevel(S32 level)
{
mSelectedTime = gFrameTimeSeconds;
}
-
}
-
bool LLViewerTexture::bindDefaultImage(S32 stage)
{
if (stage < 0) return false;
@@ -886,294 +870,18 @@ void LLViewerTexture::reorganizeVolumeList()
mVolumeList.erase(mVolumeList.begin() + mNumVolumes, mVolumeList.end());
}
-
-
//virtual
void LLViewerTexture::switchToCachedImage()
{
//nothing here.
}
-void LLViewerTexture::forceActive()
-{
- mTextureState = ACTIVE ;
-}
-
-void LLViewerTexture::setActive()
-{
- if(mTextureState != NO_DELETE)
- {
- mTextureState = ACTIVE ;
- }
-}
-
-//set the texture to stay in memory
-void LLViewerTexture::setNoDelete()
-{
- mTextureState = NO_DELETE ;
-}
-
-void LLViewerTexture::generateGLTexture()
-{
- if(mGLTexturep.isNull())
- {
- mGLTexturep = new LLImageGL(mFullWidth, mFullHeight, mComponents, mUseMipMaps) ;
- }
-}
-
-LLImageGL* LLViewerTexture::getGLTexture() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep ;
-}
-
-BOOL LLViewerTexture::createGLTexture()
-{
- if(mGLTexturep.isNull())
- {
- generateGLTexture() ;
- }
-
- return mGLTexturep->createGLTexture() ;
-}
-
-BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename, BOOL to_create, S32 category)
-{
- llassert(mGLTexturep.notNull()) ;
-
- BOOL ret = mGLTexturep->createGLTexture(discard_level, imageraw, usename, to_create, category) ;
-
- if(ret)
- {
- mFullWidth = mGLTexturep->getCurrentWidth() ;
- mFullHeight = mGLTexturep->getCurrentHeight() ;
- mComponents = mGLTexturep->getComponents() ;
- setTexelsPerImage();
- }
-
- return ret ;
-}
-
//virtual
void LLViewerTexture::setCachedRawImage(S32 discard_level, LLImageRaw* imageraw)
{
//nothing here.
}
-void LLViewerTexture::setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes)
-{
- llassert(mGLTexturep.notNull()) ;
-
- mGLTexturep->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes) ;
-}
-void LLViewerTexture::setAddressMode(LLTexUnit::eTextureAddressMode mode)
-{
- llassert(mGLTexturep.notNull()) ;
- mGLTexturep->setAddressMode(mode) ;
-}
-void LLViewerTexture::setFilteringOption(LLTexUnit::eTextureFilterOptions option)
-{
- llassert(mGLTexturep.notNull()) ;
- mGLTexturep->setFilteringOption(option) ;
-}
-
-//virtual
-S32 LLViewerTexture::getWidth(S32 discard_level) const
-{
- llassert(mGLTexturep.notNull()) ;
- return mGLTexturep->getWidth(discard_level) ;
-}
-
-//virtual
-S32 LLViewerTexture::getHeight(S32 discard_level) const
-{
- llassert(mGLTexturep.notNull()) ;
- return mGLTexturep->getHeight(discard_level) ;
-}
-
-S32 LLViewerTexture::getMaxDiscardLevel() const
-{
- llassert(mGLTexturep.notNull()) ;
- return mGLTexturep->getMaxDiscardLevel() ;
-}
-S32 LLViewerTexture::getDiscardLevel() const
-{
- llassert(mGLTexturep.notNull()) ;
- return mGLTexturep->getDiscardLevel() ;
-}
-S8 LLViewerTexture::getComponents() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getComponents() ;
-}
-
-LLGLuint LLViewerTexture::getTexName() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getTexName() ;
-}
-
-BOOL LLViewerTexture::hasGLTexture() const
-{
- if(mGLTexturep.notNull())
- {
- return mGLTexturep->getHasGLTexture() ;
- }
- return FALSE ;
-}
-
-BOOL LLViewerTexture::getBoundRecently() const
-{
- if(mGLTexturep.notNull())
- {
- return mGLTexturep->getBoundRecently() ;
- }
- return FALSE ;
-}
-
-LLTexUnit::eTextureType LLViewerTexture::getTarget(void) const
-{
- llassert(mGLTexturep.notNull()) ;
- return mGLTexturep->getTarget() ;
-}
-
-BOOL LLViewerTexture::setSubImage(const LLImageRaw* imageraw, S32 x_pos, S32 y_pos, S32 width, S32 height)
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->setSubImage(imageraw, x_pos, y_pos, width, height) ;
-}
-
-BOOL LLViewerTexture::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height)
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->setSubImage(datap, data_width, data_height, x_pos, y_pos, width, height) ;
-}
-
-void LLViewerTexture::setGLTextureCreated (bool initialized)
-{
- llassert(mGLTexturep.notNull()) ;
-
- mGLTexturep->setGLTextureCreated (initialized) ;
-}
-
-void LLViewerTexture::setCategory(S32 category)
-{
- llassert(mGLTexturep.notNull()) ;
-
- mGLTexturep->setCategory(category) ;
-}
-
-LLTexUnit::eTextureAddressMode LLViewerTexture::getAddressMode(void) const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getAddressMode() ;
-}
-
-S32 LLViewerTexture::getTextureMemory() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->mTextureMemory ;
-}
-
-LLGLenum LLViewerTexture::getPrimaryFormat() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getPrimaryFormat() ;
-}
-
-BOOL LLViewerTexture::getIsAlphaMask() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getIsAlphaMask() ;
-}
-
-BOOL LLViewerTexture::getMask(const LLVector2 &tc)
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getMask(tc) ;
-}
-
-F32 LLViewerTexture::getTimePassedSinceLastBound()
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getTimePassedSinceLastBound() ;
-}
-BOOL LLViewerTexture::getMissed() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getMissed() ;
-}
-
-BOOL LLViewerTexture::isJustBound() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->isJustBound() ;
-}
-
-void LLViewerTexture::forceUpdateBindStats(void) const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->forceUpdateBindStats() ;
-}
-
-U32 LLViewerTexture::getTexelsInAtlas() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getTexelsInAtlas() ;
-}
-
-U32 LLViewerTexture::getTexelsInGLTexture() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getTexelsInGLTexture() ;
-}
-
-BOOL LLViewerTexture::isGLTextureCreated() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->isGLTextureCreated() ;
-}
-
-S32 LLViewerTexture::getDiscardLevelInAtlas() const
-{
- llassert(mGLTexturep.notNull()) ;
-
- return mGLTexturep->getDiscardLevelInAtlas() ;
-}
-
-void LLViewerTexture::destroyGLTexture()
-{
- if(mGLTexturep.notNull() && mGLTexturep->getHasGLTexture())
- {
- mGLTexturep->destroyGLTexture() ;
- mTextureState = DELETED ;
- }
-}
-
-void LLViewerTexture::setTexelsPerImage()
-{
- S32 fullwidth = llmin(mFullWidth,(S32)MAX_IMAGE_SIZE_DEFAULT);
- S32 fullheight = llmin(mFullHeight,(S32)MAX_IMAGE_SIZE_DEFAULT);
- mTexelsPerImage = (F32)fullwidth * fullheight;
-}
-
BOOL LLViewerTexture::isLargeImage()
{
return (S32)mTexelsPerImage > LLViewerTexture::sMinLargeImageSize ;
@@ -1197,25 +905,32 @@ void LLViewerTexture::updateBindStatsForTester()
//start of LLViewerFetchedTexture
//----------------------------------------------------------------------------------------------
-LLViewerFetchedTexture::LLViewerFetchedTexture(const LLUUID& id, const LLHost& host, BOOL usemipmaps)
+LLViewerFetchedTexture::LLViewerFetchedTexture(const LLUUID& id, FTType f_type, const LLHost& host, BOOL usemipmaps)
: LLViewerTexture(id, usemipmaps),
mTargetHost(host)
{
init(TRUE) ;
+ mFTType = f_type;
+ if (mFTType == FTT_HOST_BAKE)
+ {
+ mCanUseHTTP = false;
+ }
generateGLTexture() ;
}
-LLViewerFetchedTexture::LLViewerFetchedTexture(const LLImageRaw* raw, BOOL usemipmaps)
+LLViewerFetchedTexture::LLViewerFetchedTexture(const LLImageRaw* raw, FTType f_type, BOOL usemipmaps)
: LLViewerTexture(raw, usemipmaps)
{
init(TRUE) ;
+ mFTType = f_type;
}
-LLViewerFetchedTexture::LLViewerFetchedTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps)
+LLViewerFetchedTexture::LLViewerFetchedTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps)
: LLViewerTexture(id, usemipmaps),
mUrl(url)
{
init(TRUE) ;
+ mFTType = f_type;
generateGLTexture() ;
}
@@ -1281,6 +996,8 @@ void LLViewerFetchedTexture::init(bool firstinit)
mLastCallBackActiveTime = 0.f;
mInDebug = FALSE;
+
+ mFTType = FTT_UNKNOWN;
}
LLViewerFetchedTexture::~LLViewerFetchedTexture()
@@ -1301,6 +1018,11 @@ S8 LLViewerFetchedTexture::getType() const
return LLViewerTexture::FETCHED_TEXTURE ;
}
+FTType LLViewerFetchedTexture::getFTType() const
+{
+ return mFTType;
+}
+
void LLViewerFetchedTexture::cleanup()
{
for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
@@ -1345,6 +1067,7 @@ void LLViewerFetchedTexture::loadFromFastCache()
{
//discard all oversized textures.
destroyRawImage();
+ llwarns << "oversized, setting as missing" << llendl;
setIsMissingAsset();
mRawDiscardLevel = INVALID_DISCARD_LEVEL ;
}
@@ -1454,7 +1177,8 @@ void LLViewerFetchedTexture::destroyTexture()
{
return ;
}
-
+
+ //LL_DEBUGS("Avatar") << mID << llendl;
destroyGLTexture() ;
mFullyLoaded = FALSE ;
}
@@ -1610,6 +1334,7 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
// An inappropriately-sized image was uploaded (through a non standard client)
// We treat these images as missing assets which causes them to
// be renderd as 'missing image' and to stop requesting data
+ llwarns << "!size_ok, setting as missing" << llendl;
setIsMissingAsset();
destroyRawImage();
return FALSE;
@@ -1757,7 +1482,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
// Don't decode anything we don't need
priority = -4.0f;
}
- else if ((mBoostLevel == LLViewerTexture::BOOST_UI || mBoostLevel == LLViewerTexture::BOOST_ICON) && !have_all_data)
+ else if ((mBoostLevel == LLGLTexture::BOOST_UI || mBoostLevel == LLGLTexture::BOOST_ICON) && !have_all_data)
{
priority = 1.f;
}
@@ -2068,6 +1793,7 @@ bool LLViewerFetchedTexture::updateFetch()
{
//discard all oversized textures.
destroyRawImage();
+ llwarns << "oversize, setting as missing" << llendl;
setIsMissingAsset();
mRawDiscardLevel = INVALID_DISCARD_LEVEL ;
mIsFetching = FALSE ;
@@ -2097,6 +1823,10 @@ bool LLViewerFetchedTexture::updateFetch()
// We finished but received no data
if (current_discard < 0)
{
+ llwarns << "!mIsFetching, setting as missing, decode_priority " << decode_priority
+ << " mRawDiscardLevel " << mRawDiscardLevel
+ << " current_discard " << current_discard
+ << llendl;
setIsMissingAsset();
desired_discard = -1;
}
@@ -2164,7 +1894,7 @@ bool LLViewerFetchedTexture::updateFetch()
// Load the texture progressively: we try not to rush to the desired discard too fast.
// If the camera is not moving, we do not tweak the discard level notch by notch but go to the desired discard with larger boosted steps
// This mitigates the "textures stay blurry" problem when loading while not killing the texture memory while moving around
- S32 delta_level = (mBoostLevel > LLViewerTexture::BOOST_NONE) ? 2 : 1 ;
+ S32 delta_level = (mBoostLevel > LLGLTexture::BOOST_NONE) ? 2 : 1 ;
if (current_discard < 0)
{
desired_discard = llmax(desired_discard, getMaxDiscardLevel() - delta_level);
@@ -2212,7 +1942,7 @@ bool LLViewerFetchedTexture::updateFetch()
// bypass texturefetch directly by pulling from LLTextureCache
bool fetch_request_created = false;
- fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), decode_priority,
+ fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mFTType, mUrl, getID(), getTargetHost(), decode_priority,
w, h, c, desired_discard, needsAux(), mCanUseHTTP);
if (fetch_request_created)
@@ -2229,11 +1959,13 @@ bool LLViewerFetchedTexture::updateFetch()
}
else if (mHasFetcher && !mIsFetching)
{
- // Only delete requests that haven't receeived any network data for a while
+ // Only delete requests that haven't received any network data
+ // for a while. Note - this is the normal mechanism for
+ // deleting requests, not just a place to handle timeouts.
const F32 FETCH_IDLE_TIME = 5.f;
if (mLastPacketTimer.getElapsedTimeF32() > FETCH_IDLE_TIME)
{
-// llinfos << "Deleting request: " << getID() << " Discard: " << current_discard << " <= min:" << mMinDiscardLevel << " or priority == 0: " << decode_priority << llendl;
+ LL_DEBUGS("Texture") << "exceeded idle time " << FETCH_IDLE_TIME << ", deleting request: " << getID() << llendl;
LLAppViewer::getTextureFetch()->deleteRequest(getID(), true);
mHasFetcher = FALSE;
}
@@ -2281,8 +2013,10 @@ void LLViewerFetchedTexture::setIsMissingAsset()
}
else
{
- //it is normal no map tile on an empty region.
- //llwarns << mUrl << ": Marking image as missing" << llendl;
+ // This may or may not be an error - it is normal to have no
+ // map tile on an empty region, but bad if we're failing on a
+ // server bake texture.
+ llwarns << mUrl << ": Marking image as missing" << llendl;
}
if (mHasFetcher)
{
@@ -2415,7 +2149,7 @@ void LLViewerFetchedTexture::deleteCallbackEntry(const LLLoadedCallbackEntry::so
destroySavedRawImage() ;
}
}
- else if(needsToSaveRawImage() && mBoostLevel != LLViewerTexture::BOOST_PREVIEW)
+ else if(needsToSaveRawImage() && mBoostLevel != LLGLTexture::BOOST_PREVIEW)
{
if(desired_raw_discard != INVALID_DISCARD_LEVEL)
{
@@ -2873,7 +2607,7 @@ void LLViewerFetchedTexture::setCachedRawImage()
S32 h = mRawImage->getHeight() ;
S32 max_size = MAX_CACHED_RAW_IMAGE_AREA ;
- if(LLViewerTexture::BOOST_TERRAIN == mBoostLevel)
+ if(LLGLTexture::BOOST_TERRAIN == mBoostLevel)
{
max_size = MAX_CACHED_RAW_TERRAIN_IMAGE_AREA ;
}
@@ -3197,14 +2931,14 @@ BOOL LLViewerFetchedTexture::insertToAtlas()
//----------------------------------------------------------------------------------------------
//start of LLViewerLODTexture
//----------------------------------------------------------------------------------------------
-LLViewerLODTexture::LLViewerLODTexture(const LLUUID& id, const LLHost& host, BOOL usemipmaps)
- : LLViewerFetchedTexture(id, host, usemipmaps)
+LLViewerLODTexture::LLViewerLODTexture(const LLUUID& id, FTType f_type, const LLHost& host, BOOL usemipmaps)
+ : LLViewerFetchedTexture(id, f_type, host, usemipmaps)
{
init(TRUE) ;
}
-LLViewerLODTexture::LLViewerLODTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps)
- : LLViewerFetchedTexture(url, id, usemipmaps)
+LLViewerLODTexture::LLViewerLODTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps)
+ : LLViewerFetchedTexture(url, f_type, id, usemipmaps)
{
init(TRUE) ;
}
@@ -3246,7 +2980,7 @@ void LLViewerLODTexture::processTextureStats()
if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
}
- else if (mBoostLevel < LLViewerTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f)
+ else if (mBoostLevel < LLGLTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f)
{
// If the image has not been significantly visible in a while, we don't want it
mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1));
@@ -3296,7 +3030,7 @@ void LLViewerLODTexture::processTextureStats()
mCalculatedDiscardLevel = discard_level;
}
}
- if (mBoostLevel < LLViewerTexture::BOOST_SCULPTED)
+ if (mBoostLevel < LLGLTexture::BOOST_SCULPTED)
{
discard_level += sDesiredDiscardBias;
discard_level *= sDesiredDiscardScale; // scale
@@ -3322,7 +3056,7 @@ void LLViewerLODTexture::processTextureStats()
//
S32 current_discard = getDiscardLevel();
- if (sDesiredDiscardBias > 0.0f && mBoostLevel < LLViewerTexture::BOOST_SCULPTED && current_discard >= 0)
+ if (sDesiredDiscardBias > 0.0f && mBoostLevel < LLGLTexture::BOOST_SCULPTED && current_discard >= 0)
{
if(desired_discard_bias_max <= sDesiredDiscardBias && !mForceToSaveRawImage)
{
@@ -3465,7 +3199,7 @@ LLViewerMediaTexture::LLViewerMediaTexture(const LLUUID& id, BOOL usemipmaps, LL
setMediaImpl() ;
- setCategory(LLViewerTexture::MEDIA) ;
+ setCategory(LLGLTexture::MEDIA) ;
LLViewerTexture* tex = gTextureList.findImage(mID) ;
if(tex) //this media is a parcel media for tex.
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 2e7949e9a3..f2e1a90713 100644..100755
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -27,7 +27,7 @@
#ifndef LL_LLVIEWERTEXTURE_H
#define LL_LLVIEWERTEXTURE_H
-#include "lltexture.h"
+#include "llgltexture.h"
#include "lltimer.h"
#include "llframetimer.h"
#include "llhost.h"
@@ -88,16 +88,11 @@ public:
class LLTextureBar;
-class LLViewerTexture : public LLTexture
+class LLViewerTexture : public LLGLTexture
{
public:
enum
{
- MAX_IMAGE_SIZE_DEFAULT = 1024,
- INVALID_DISCARD_LEVEL = 0x7fff
- };
- enum
- {
LOCAL_TEXTURE,
MEDIA_TEXTURE,
DYNAMIC_TEXTURE,
@@ -107,43 +102,6 @@ public:
INVALID_TEXTURE_TYPE
};
- enum EBoostLevel
- {
- BOOST_NONE = 0,
- BOOST_AVATAR_BAKED ,
- BOOST_AVATAR ,
- BOOST_CLOUDS ,
- BOOST_SCULPTED ,
-
- BOOST_HIGH = 10,
- BOOST_BUMP ,
- BOOST_TERRAIN , // has to be high priority for minimap / low detail
- BOOST_SELECTED ,
- BOOST_AVATAR_BAKED_SELF ,
- BOOST_AVATAR_SELF , // needed for baking avatar
- BOOST_SUPER_HIGH , //textures higher than this need to be downloaded at the required resolution without delay.
- BOOST_HUD ,
- BOOST_ICON ,
- BOOST_UI ,
- BOOST_PREVIEW ,
- BOOST_MAP ,
- BOOST_MAP_VISIBLE ,
- BOOST_MAX_LEVEL,
-
- //other texture Categories
- LOCAL = BOOST_MAX_LEVEL,
- AVATAR_SCRATCH_TEX,
- DYNAMIC_TEX,
- MEDIA,
- ATLAS,
- OTHER,
- MAX_GL_IMAGE_CATEGORY
- };
-
- static S32 getTotalNumOfCategories() ;
- static S32 getIndexFromCategory(S32 category) ;
- static S32 getCategoryFromIndex(S32 index) ;
-
typedef std::vector<LLFace*> ll_face_list_t;
typedef std::vector<LLVOVolume*> ll_volume_list_t;
@@ -168,8 +126,7 @@ public:
/*virtual*/ bool bindDefaultImage(const S32 stage = 0) ;
/*virtual*/ void forceImmediateUpdate() ;
- const LLUUID& getID() const { return mID; }
-
+ /*virtual*/ const LLUUID& getID() const { return mID; }
void setBoostLevel(S32 level);
S32 getBoostLevel() { return mBoostLevel; }
@@ -177,13 +134,12 @@ public:
void resetTextureStats();
void setMaxVirtualSizeResetInterval(S32 interval)const {mMaxVirtualSizeResetInterval = interval;}
void resetMaxVirtualSizeResetCounter()const {mMaxVirtualSizeResetCounter = mMaxVirtualSizeResetInterval;}
+ S32 getMaxVirtualSizeResetCounter() const { return mMaxVirtualSizeResetCounter; }
virtual F32 getMaxVirtualSize() ;
LLFrameTimer* getLastReferencedTimer() {return &mLastReferencedTimer ;}
- S32 getFullWidth() const { return mFullWidth; }
- S32 getFullHeight() const { return mFullHeight; }
/*virtual*/ void setKnownDrawSize(S32 width, S32 height);
virtual void addFace(LLFace* facep) ;
@@ -196,60 +152,8 @@ public:
S32 getNumVolumes() const;
const ll_volume_list_t* getVolumeList() const { return &mVolumeList; }
- void generateGLTexture() ;
- void destroyGLTexture() ;
- //---------------------------------------------------------------------------------------------
- //functions to access LLImageGL
- //---------------------------------------------------------------------------------------------
- /*virtual*/S32 getWidth(S32 discard_level = -1) const;
- /*virtual*/S32 getHeight(S32 discard_level = -1) const;
-
- BOOL hasGLTexture() const ;
- LLGLuint getTexName() const ;
- BOOL createGLTexture() ;
- BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0, BOOL to_create = TRUE, S32 category = LLViewerTexture::OTHER);
virtual void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
-
- void setFilteringOption(LLTexUnit::eTextureFilterOptions option);
- void setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format = 0, BOOL swap_bytes = FALSE);
- void setAddressMode(LLTexUnit::eTextureAddressMode mode);
- BOOL setSubImage(const LLImageRaw* imageraw, S32 x_pos, S32 y_pos, S32 width, S32 height);
- BOOL setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height);
- void setGLTextureCreated (bool initialized);
- void setCategory(S32 category) ;
-
- LLTexUnit::eTextureAddressMode getAddressMode(void) const ;
- S32 getMaxDiscardLevel() const;
- S32 getDiscardLevel() const;
- S8 getComponents() const ;
- BOOL getBoundRecently() const;
- S32 getTextureMemory() const ;
- LLGLenum getPrimaryFormat() const;
- BOOL getIsAlphaMask() const ;
- LLTexUnit::eTextureType getTarget(void) const ;
- BOOL getMask(const LLVector2 &tc);
- F32 getTimePassedSinceLastBound();
- BOOL getMissed() const ;
- BOOL isJustBound()const ;
- void forceUpdateBindStats(void) const;
-
- U32 getTexelsInAtlas() const ;
- U32 getTexelsInGLTexture() const ;
- BOOL isGLTextureCreated() const ;
- S32 getDiscardLevelInAtlas() const ;
- //---------------------------------------------------------------------------------------------
- //end of functions to access LLImageGL
- //---------------------------------------------------------------------------------------------
-
- //-----------------
- /*virtual*/ void setActive() ;
- void forceActive() ;
- void setNoDelete() ;
- void dontDiscard() { mDontDiscard = 1; mTextureState = NO_DELETE; }
- BOOL getDontDiscard() const { return mDontDiscard; }
- //-----------------
-
BOOL isLargeImage() ;
void setParcelMedia(LLViewerMediaTexture* media) {mParcelMedia = media;}
@@ -262,36 +166,22 @@ protected:
void init(bool firstinit) ;
void reorganizeFaceList() ;
void reorganizeVolumeList() ;
- void setTexelsPerImage();
private:
friend class LLBumpImageList;
friend class LLUIImageList;
- //note: do not make this function public.
- /*virtual*/ LLImageGL* getGLTexture() const ;
virtual void switchToCachedImage();
static bool isMemoryForTextureLow() ;
protected:
LLUUID mID;
- S32 mBoostLevel; // enum describing priority level
F32 mSelectedTime; // time texture was last selected
- S32 mFullWidth;
- S32 mFullHeight;
- BOOL mUseMipMaps ;
- S8 mComponents;
- F32 mTexelsPerImage; // Texels per image.
- mutable S8 mNeedsGLTexture;
mutable F32 mMaxVirtualSize; // The largest virtual size of the image, in pixels - how much data to we need?
mutable S32 mMaxVirtualSizeResetCounter ;
mutable S32 mMaxVirtualSizeResetInterval;
mutable F32 mAdditionalDecodePriority; // priority add to mDecodePriority.
LLFrameTimer mLastReferencedTimer;
- //GL texture
- LLPointer<LLImageGL> mGLTexturep ;
- S8 mDontDiscard; // Keep full res version of this image (for UI, etc)
-
ll_face_list_t mFaceList ; //reverse pointer pointing to the faces using this image as texture
U32 mNumFaces ;
LLFrameTimer mLastFaceListUpdateTimer ;
@@ -303,17 +193,6 @@ protected:
//do not use LLPointer here.
LLViewerMediaTexture* mParcelMedia ;
-protected:
- typedef enum
- {
- DELETED = 0, //removed from memory
- DELETION_CANDIDATE, //ready to be removed from memory
- INACTIVE, //not be used for the last certain period (i.e., 30 seconds).
- ACTIVE, //just being used, can become inactive if not being used for a certain time (10 seconds).
- NO_DELETE = 99 //stay in memory, can not be removed.
- } LLGLTextureState;
- LLGLTextureState mTextureState ;
-
static F32 sTexelPixelRatio;
public:
static const U32 sCurrentFileVersion;
@@ -353,6 +232,16 @@ public:
};
+enum FTType
+{
+ FTT_UNKNOWN = -1,
+ FTT_DEFAULT = 0, // standard texture fetched by id.
+ FTT_SERVER_BAKE, // texture produced by appearance service and fetched from there.
+ FTT_HOST_BAKE, // old-style baked texture uploaded by viewer and fetched from avatar's host.
+ FTT_MAP_TILE, // tiles are fetched from map server directly.
+ FTT_LOCAL_FILE // fetch directly from a local file.
+};
+
//
//textures are managed in gTextureList.
//raw image data is fetched from remote or local cache
@@ -366,9 +255,9 @@ class LLViewerFetchedTexture : public LLViewerTexture
protected:
/*virtual*/ ~LLViewerFetchedTexture();
public:
- LLViewerFetchedTexture(const LLUUID& id, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE);
- LLViewerFetchedTexture(const LLImageRaw* raw, BOOL usemipmaps);
- LLViewerFetchedTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps = TRUE);
+ LLViewerFetchedTexture(const LLUUID& id, FTType f_type, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE);
+ LLViewerFetchedTexture(const LLImageRaw* raw, FTType f_type, BOOL usemipmaps);
+ LLViewerFetchedTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps = TRUE);
public:
static F32 maxDecodePriority();
@@ -393,6 +282,7 @@ public:
public:
/*virtual*/ S8 getType() const ;
+ FTType getFTType() const;
/*virtual*/ void forceImmediateUpdate() ;
/*virtual*/ void dump() ;
@@ -428,6 +318,7 @@ public:
// the priority list, and cause horrible things to happen.
void setDecodePriority(F32 priority = -1.0f);
F32 getDecodePriority() const { return mDecodePriority; };
+ F32 getAdditionalDecodePriority() const { return mAdditionalDecodePriority; };
void setAdditionalDecodePriority(F32 priority) ;
@@ -509,7 +400,7 @@ protected:
S32 getCurrentDiscardLevelForFetching() ;
private:
- void init(bool firstinit) ;
+ void init(bool firstinit) ;
void cleanup() ;
void saveRawImage() ;
@@ -556,7 +447,8 @@ protected:
S8 mHasFetcher; // We've made a fecth request
S8 mIsFetching; // Fetch request is active
bool mCanUseHTTP ; //This texture can be fetched through http if true.
-
+
+ FTType mFTType; // What category of image is this - map tile, server bake, etc?
mutable S8 mIsMissingAsset; // True if we know that there is no image asset with this image id in the database.
typedef std::list<LLLoadedCallbackEntry*> callback_list_t;
@@ -616,8 +508,8 @@ protected:
/*virtual*/ ~LLViewerLODTexture(){}
public:
- LLViewerLODTexture(const LLUUID& id, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE);
- LLViewerLODTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps = TRUE);
+ LLViewerLODTexture(const LLUUID& id, FTType f_type, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE);
+ LLViewerLODTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps = TRUE);
/*virtual*/ S8 getType() const;
// Process image stats to determine priority/quality requirements.
@@ -731,8 +623,9 @@ public:
static LLPointer<LLViewerTexture> getLocalTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps, BOOL generate_gl_tex = TRUE) ;
static LLViewerFetchedTexture* getFetchedTexture(const LLUUID &image_id,
+ FTType f_type = FTT_DEFAULT,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE, // Get the requested level immediately upon creation.
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE, // Get the requested level immediately upon creation.
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -740,8 +633,9 @@ public:
);
static LLViewerFetchedTexture* getFetchedTextureFromFile(const std::string& filename,
+ FTType f_type = FTT_LOCAL_FILE,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE,
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -749,15 +643,16 @@ public:
);
static LLViewerFetchedTexture* getFetchedTextureFromUrl(const std::string& url,
+ FTType f_type,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE,
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
const LLUUID& force_id = LLUUID::null
);
- static LLViewerFetchedTexture* getFetchedTextureFromHost(const LLUUID& image_id, LLHost host) ;
+ static LLViewerFetchedTexture* getFetchedTextureFromHost(const LLUUID& image_id, FTType f_type, LLHost host) ;
static void init() ;
static void cleanup() ;
diff --git a/indra/newview/llviewertextureanim.cpp b/indra/newview/llviewertextureanim.cpp
index 2b364851a7..2b364851a7 100644..100755
--- a/indra/newview/llviewertextureanim.cpp
+++ b/indra/newview/llviewertextureanim.cpp
diff --git a/indra/newview/llviewertextureanim.h b/indra/newview/llviewertextureanim.h
index abbfabceb9..abbfabceb9 100644..100755
--- a/indra/newview/llviewertextureanim.h
+++ b/indra/newview/llviewertextureanim.h
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index b9f5c432d0..d2af48f528 100644..100755
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -112,10 +112,10 @@ void LLViewerTextureList::doPreloadImages()
llassert_always(mUUIDMap.empty()) ;
// Set the "missing asset" image
- LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);
+ LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", FTT_LOCAL_FILE, MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);
// Set the "white" image
- LLViewerFetchedTexture::sWhiteImagep = LLViewerTextureManager::getFetchedTextureFromFile("white.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);
+ LLViewerFetchedTexture::sWhiteImagep = LLViewerTextureManager::getFetchedTextureFromFile("white.tga", FTT_LOCAL_FILE, MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);
LLTexUnit::sWhiteTexture = LLViewerFetchedTexture::sWhiteImagep->getTexName();
LLUIImageList* image_list = LLUIImageList::getInstance();
@@ -130,33 +130,33 @@ void LLViewerTextureList::doPreloadImages()
//uv_test->setMipFilterNearest(TRUE, TRUE);
// prefetch specific UUIDs
- LLViewerTextureManager::getFetchedTexture(IMG_SHOT, TRUE);
- LLViewerTextureManager::getFetchedTexture(IMG_SMOKE_POOF, TRUE);
- LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
+ LLViewerTextureManager::getFetchedTexture(IMG_SHOT);
+ LLViewerTextureManager::getFetchedTexture(IMG_SMOKE_POOF);
+ LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image)
{
image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image);
}
- image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
+ image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryLines.png", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image)
{
image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image);
}
- image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryPassLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
+ image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryPassLines.png", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image)
{
image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image);
}
- image = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
+ image = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL, FTT_DEFAULT, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image)
{
image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image);
}
- image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,
+ image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,
0,0,LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"));
if (image)
{
@@ -198,7 +198,7 @@ void LLViewerTextureList::doPrefetchImages()
if(LLViewerTexture::FETCHED_TEXTURE == texture_type || LLViewerTexture::LOD_TEXTURE == texture_type)
{
- LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(uuid, MIPMAP_TRUE, LLViewerTexture::BOOST_NONE, texture_type);
+ LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(uuid, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, texture_type);
if (image)
{
image->addTextureStats((F32)pixel_area);
@@ -228,7 +228,9 @@ void LLViewerTextureList::shutdown()
if (!image->hasGLTexture() ||
!image->getUseDiscard() ||
image->needsAux() ||
- image->getTargetHost() != LLHost::invalid)
+ image->getTargetHost() != LLHost::invalid ||
+ !image->getUrl().empty()
+ )
{
continue; // avoid UI, baked, and other special images
}
@@ -322,7 +324,8 @@ void LLViewerTextureList::restoreGL()
///////////////////////////////////////////////////////////////////////////////
-LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string& filename,
+LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string& filename,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -339,15 +342,16 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string&
if (full_path.empty())
{
llwarns << "Failed to find local image file: " << filename << llendl;
- return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLViewerTexture::BOOST_UI);
+ return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
}
std::string url = "file://" + full_path;
- return getImageFromUrl(url, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id);
+ return getImageFromUrl(url, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id);
}
LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string& url,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -372,16 +376,33 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&
}
LLPointer<LLViewerFetchedTexture> imagep = findImage(new_id);
-
+
+ if (!imagep.isNull())
+ {
+ LLViewerFetchedTexture *texture = imagep.get();
+ if (texture->getUrl().empty())
+ {
+ llwarns << "Requested texture " << new_id << " already exists but does not have a URL" << llendl;
+ }
+ else if (texture->getUrl() != url)
+ {
+ // This is not an error as long as the images really match -
+ // e.g. could be two avatars wearing the same outfit.
+ LL_DEBUGS("Avatar") << "Requested texture " << new_id
+ << " already exists with a different url, requested: " << url
+ << " current: " << texture->getUrl() << llendl;
+ }
+
+ }
if (imagep.isNull())
{
switch(texture_type)
{
case LLViewerTexture::FETCHED_TEXTURE:
- imagep = new LLViewerFetchedTexture(url, new_id, usemipmaps);
+ imagep = new LLViewerFetchedTexture(url, f_type, new_id, usemipmaps);
break ;
case LLViewerTexture::LOD_TEXTURE:
- imagep = new LLViewerLODTexture(url, new_id, usemipmaps);
+ imagep = new LLViewerLODTexture(url, f_type, new_id, usemipmaps);
break ;
default:
llerrs << "Invalid texture type " << texture_type << llendl ;
@@ -411,7 +432,8 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&
}
-LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,
+LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -430,14 +452,34 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,
if ((&image_id == NULL) || image_id.isNull())
{
- return (LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLViewerTexture::BOOST_UI));
+ return (LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI));
}
LLPointer<LLViewerFetchedTexture> imagep = findImage(image_id);
-
+ if (!imagep.isNull())
+ {
+ LLViewerFetchedTexture *texture = imagep.get();
+ if (request_from_host.isOk() &&
+ !texture->getTargetHost().isOk())
+ {
+ llwarns << "Requested texture " << image_id << " already exists but does not have a host" << llendl;
+ }
+ else if (request_from_host.isOk() &&
+ texture->getTargetHost().isOk() &&
+ request_from_host != texture->getTargetHost())
+ {
+ llwarns << "Requested texture " << image_id << " already exists with a different target host, requested: "
+ << request_from_host << " current: " << texture->getTargetHost() << llendl;
+ }
+ if (f_type != FTT_DEFAULT && imagep->getFTType() != f_type)
+ {
+ llwarns << "FTType mismatch: requested " << f_type << " image has " << imagep->getFTType() << llendl;
+ }
+
+ }
if (imagep.isNull())
{
- imagep = createImage(image_id, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;
+ imagep = createImage(image_id, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;
}
imagep->setGLTextureCreated(true);
@@ -446,7 +488,8 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,
}
//when this function is called, there is no such texture in the gTextureList with image_id.
-LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
+LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
+ FTType f_type,
BOOL usemipmaps,
LLViewerTexture::EBoostLevel boost_priority,
S8 texture_type,
@@ -460,10 +503,10 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
switch(texture_type)
{
case LLViewerTexture::FETCHED_TEXTURE:
- imagep = new LLViewerFetchedTexture(image_id, request_from_host, usemipmaps);
+ imagep = new LLViewerFetchedTexture(image_id, f_type, request_from_host, usemipmaps);
break ;
case LLViewerTexture::LOD_TEXTURE:
- imagep = new LLViewerLODTexture(image_id, request_from_host, usemipmaps);
+ imagep = new LLViewerLODTexture(image_id, f_type, request_from_host, usemipmaps);
break ;
default:
llerrs << "Invalid texture type " << texture_type << llendl ;
@@ -1353,7 +1396,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d
U8 *data = new U8[data_size];
msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size);
- LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
if (!image)
{
delete [] data;
@@ -1425,7 +1468,7 @@ void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_d
U8 *data = new U8[data_size];
msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size);
- LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
if (!image)
{
delete [] data;
@@ -1456,6 +1499,7 @@ void LLViewerTextureList::processImageNotInDatabase(LLMessageSystem *msg,void **
LLViewerFetchedTexture* image = gTextureList.findImage( image_id );
if( image )
{
+ llwarns << "not in db" << llendl;
image->setIsMissingAsset();
}
}
@@ -1525,22 +1569,22 @@ LLUIImagePtr LLUIImageList::getUIImage(const std::string& image_name, S32 priori
LLUIImagePtr LLUIImageList::loadUIImageByName(const std::string& name, const std::string& filename,
BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect, LLViewerTexture::EBoostLevel boost_priority )
{
- if (boost_priority == LLViewerTexture::BOOST_NONE)
+ if (boost_priority == LLGLTexture::BOOST_NONE)
{
- boost_priority = LLViewerTexture::BOOST_UI;
+ boost_priority = LLGLTexture::BOOST_UI;
}
- LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTextureFromFile(filename, MIPMAP_NO, boost_priority);
+ LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTextureFromFile(filename, FTT_LOCAL_FILE, MIPMAP_NO, boost_priority);
return loadUIImage(imagep, name, use_mips, scale_rect, clip_rect);
}
LLUIImagePtr LLUIImageList::loadUIImageByID(const LLUUID& id,
BOOL use_mips, const LLRect& scale_rect, const LLRect& clip_rect, LLViewerTexture::EBoostLevel boost_priority)
{
- if (boost_priority == LLViewerTexture::BOOST_NONE)
+ if (boost_priority == LLGLTexture::BOOST_NONE)
{
- boost_priority = LLViewerTexture::BOOST_UI;
+ boost_priority = LLGLTexture::BOOST_UI;
}
- LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(id, MIPMAP_NO, boost_priority);
+ LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, MIPMAP_NO, boost_priority);
return loadUIImage(imagep, id.asString(), use_mips, scale_rect, clip_rect);
}
@@ -1563,7 +1607,7 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st
//Note:
//Some other textures such as ICON also through this flow to be fetched.
//But only UI textures need to set this callback.
- if(imagep->getBoostLevel() == LLViewerTexture::BOOST_UI)
+ if(imagep->getBoostLevel() == LLGLTexture::BOOST_UI)
{
LLUIImageLoadData* datap = new LLUIImageLoadData;
datap->mImageName = name;
diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h
index 3dda973d3f..136042620d 100644..100755
--- a/indra/newview/llviewertexturelist.h
+++ b/indra/newview/llviewertexturelist.h
@@ -130,8 +130,9 @@ private:
void removeImageFromList(LLViewerFetchedTexture *image);
LLViewerFetchedTexture * getImage(const LLUUID &image_id,
+ FTType f_type = FTT_DEFAULT,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE, // Get the requested level immediately upon creation.
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE, // Get the requested level immediately upon creation.
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -139,8 +140,9 @@ private:
);
LLViewerFetchedTexture * getImageFromFile(const std::string& filename,
+ FTType f_type = FTT_LOCAL_FILE,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE, // Get the requested level immediately upon creation.
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE, // Get the requested level immediately upon creation.
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -148,8 +150,9 @@ private:
);
LLViewerFetchedTexture* getImageFromUrl(const std::string& url,
+ FTType f_type,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE, // Get the requested level immediately upon creation.
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE, // Get the requested level immediately upon creation.
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -157,8 +160,9 @@ private:
);
LLViewerFetchedTexture* createImage(const LLUUID &image_id,
+ FTType f_type,
BOOL usemipmap = TRUE,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_NONE, // Get the requested level immediately upon creation.
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE, // Get the requested level immediately upon creation.
S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
LLGLint internal_format = 0,
LLGLenum primary_format = 0,
@@ -167,8 +171,8 @@ private:
// Request image from a specific host, used for baked avatar textures.
// Implemented in header in case someone changes default params above. JC
- LLViewerFetchedTexture* getImageFromHost(const LLUUID& image_id, LLHost host)
- { return getImage(image_id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); }
+ LLViewerFetchedTexture* getImageFromHost(const LLUUID& image_id, FTType f_type, LLHost host)
+ { return getImage(image_id, f_type, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); }
public:
typedef std::set<LLPointer<LLViewerFetchedTexture> > image_list_t;
@@ -233,11 +237,11 @@ private:
LLPointer<LLUIImage> loadUIImageByName(const std::string& name, const std::string& filename,
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
const LLRect& clip_rect = LLRect::null,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_UI);
LLPointer<LLUIImage> loadUIImageByID(const LLUUID& id,
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
const LLRect& clip_rect = LLRect::null,
- LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
+ LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_UI);
LLPointer<LLUIImage> loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null, const LLRect& clip_rect = LLRect::null);
diff --git a/indra/newview/llviewerthrottle.cpp b/indra/newview/llviewerthrottle.cpp
index 5147272122..5147272122 100644..100755
--- a/indra/newview/llviewerthrottle.cpp
+++ b/indra/newview/llviewerthrottle.cpp
diff --git a/indra/newview/llviewerthrottle.h b/indra/newview/llviewerthrottle.h
index fe54b06662..fe54b06662 100644..100755
--- a/indra/newview/llviewerthrottle.h
+++ b/indra/newview/llviewerthrottle.h
diff --git a/indra/newview/llviewervisualparam.cpp b/indra/newview/llviewervisualparam.cpp
deleted file mode 100644
index f0cf9b7692..0000000000
--- a/indra/newview/llviewervisualparam.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * @file llviewervisualparam.cpp
- * @brief Implementation of LLViewerVisualParam class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-//-----------------------------------------------------------------------------
-// Header Files
-//-----------------------------------------------------------------------------
-#include "llviewerprecompiledheaders.h"
-
-#include "llviewervisualparam.h"
-#include "llxmltree.h"
-#include "llui.h"
-#include "llwearable.h"
-
-//-----------------------------------------------------------------------------
-// LLViewerVisualParamInfo()
-//-----------------------------------------------------------------------------
-LLViewerVisualParamInfo::LLViewerVisualParamInfo()
- :
- mWearableType( LLWearableType::WT_INVALID ),
- mCrossWearable(FALSE),
- mCamDist( 0.5f ),
- mCamAngle( 0.f ),
- mCamElevation( 0.f ),
- mEditGroupDisplayOrder( 0 ),
- mShowSimple(FALSE),
- mSimpleMin(0.f),
- mSimpleMax(100.f)
-{
-}
-
-LLViewerVisualParamInfo::~LLViewerVisualParamInfo()
-{
-}
-
-//-----------------------------------------------------------------------------
-// parseXml()
-//-----------------------------------------------------------------------------
-BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
-{
- llassert( node->hasName( "param" ) );
-
- if (!LLVisualParamInfo::parseXml(node))
- return FALSE;
-
- // VIEWER SPECIFIC PARAMS
-
- std::string wearable;
- static LLStdStringHandle wearable_string = LLXmlTree::addAttributeString("wearable");
- if( node->getFastAttributeString( wearable_string, wearable) )
- {
- mWearableType = LLWearableType::typeNameToType( wearable );
- }
-
- static LLStdStringHandle edit_group_string = LLXmlTree::addAttributeString("edit_group");
- if (!node->getFastAttributeString( edit_group_string, mEditGroup))
- {
- mEditGroup = "";
- }
-
- static LLStdStringHandle cross_wearable_string = LLXmlTree::addAttributeString("cross_wearable");
- if (!node->getFastAttributeBOOL(cross_wearable_string, mCrossWearable))
- {
- mCrossWearable = FALSE;
- }
-
- // Optional camera offsets from the current joint center. Used for generating "hints" (thumbnails).
- static LLStdStringHandle camera_distance_string = LLXmlTree::addAttributeString("camera_distance");
- node->getFastAttributeF32( camera_distance_string, mCamDist );
- static LLStdStringHandle camera_angle_string = LLXmlTree::addAttributeString("camera_angle");
- node->getFastAttributeF32( camera_angle_string, mCamAngle ); // in degrees
- static LLStdStringHandle camera_elevation_string = LLXmlTree::addAttributeString("camera_elevation");
- node->getFastAttributeF32( camera_elevation_string, mCamElevation );
-
- mCamAngle += 180;
-
- static S32 params_loaded = 0;
-
- // By default, parameters are displayed in the order in which they appear in the xml file.
- // "edit_group_order" overriddes.
- static LLStdStringHandle edit_group_order_string = LLXmlTree::addAttributeString("edit_group_order");
- if( !node->getFastAttributeF32( edit_group_order_string, mEditGroupDisplayOrder ) )
- {
- mEditGroupDisplayOrder = (F32)params_loaded;
- }
-
- params_loaded++;
-
- return TRUE;
-}
-
-/*virtual*/ void LLViewerVisualParamInfo::toStream(std::ostream &out)
-{
- LLVisualParamInfo::toStream(out);
-
- out << mWearableType << "\t";
- out << mEditGroup << "\t";
- out << mEditGroupDisplayOrder << "\t";
-}
-
-//-----------------------------------------------------------------------------
-// LLViewerVisualParam()
-//-----------------------------------------------------------------------------
-LLViewerVisualParam::LLViewerVisualParam()
-{
-}
-
-//-----------------------------------------------------------------------------
-// setInfo()
-//-----------------------------------------------------------------------------
-
-BOOL LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mInfo = info;
- mID = info->mID;
- setWeight(getDefaultWeight(), FALSE );
- return TRUE;
-}
-
-/*
-//=============================================================================
-// These virtual functions should always be overridden,
-// but are included here for use as templates
-//=============================================================================
-
-//-----------------------------------------------------------------------------
-// parseData()
-//-----------------------------------------------------------------------------
-BOOL LLViewerVisualParam::parseData(LLXmlTreeNode *node)
-{
- LLViewerVisualParamInfo* info = new LLViewerVisualParamInfo;
-
- info->parseXml(node);
- if (!setInfo(info))
- return FALSE;
-
- return TRUE;
-}
-*/
diff --git a/indra/newview/llviewervisualparam.h b/indra/newview/llviewervisualparam.h
deleted file mode 100644
index 2826e6c316..0000000000
--- a/indra/newview/llviewervisualparam.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * @file llviewervisualparam.h
- * @brief viewer side visual params (with data file parsing)
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLViewerVisualParam_H
-#define LL_LLViewerVisualParam_H
-
-#include "v3math.h"
-#include "llstring.h"
-#include "llvisualparam.h"
-
-class LLWearable;
-
-//-----------------------------------------------------------------------------
-// LLViewerVisualParamInfo
-//-----------------------------------------------------------------------------
-class LLViewerVisualParamInfo : public LLVisualParamInfo
-{
- friend class LLViewerVisualParam;
-public:
- LLViewerVisualParamInfo();
- /*virtual*/ ~LLViewerVisualParamInfo();
-
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
-
- /*virtual*/ void toStream(std::ostream &out);
-
-protected:
- S32 mWearableType;
- BOOL mCrossWearable;
- std::string mEditGroup;
- F32 mCamDist;
- F32 mCamAngle; // degrees
- F32 mCamElevation;
- F32 mEditGroupDisplayOrder;
- BOOL mShowSimple; // show edit controls when in "simple ui" mode?
- F32 mSimpleMin; // when in simple UI, apply this minimum, range 0.f to 100.f
- F32 mSimpleMax; // when in simple UI, apply this maximum, range 0.f to 100.f
-};
-
-//-----------------------------------------------------------------------------
-// LLViewerVisualParam
-// VIRTUAL CLASS
-// a viewer side interface class for a generalized parametric modification of the avatar mesh
-//-----------------------------------------------------------------------------
-LL_ALIGN_PREFIX(16)
-class LLViewerVisualParam : public LLVisualParam
-{
-public:
- LLViewerVisualParam();
- /*virtual*/ ~LLViewerVisualParam(){};
-
- // Special: These functions are overridden by child classes
- LLViewerVisualParamInfo *getInfo() const { return (LLViewerVisualParamInfo*)mInfo; };
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLViewerVisualParamInfo *info);
-
- virtual LLViewerVisualParam* cloneParam(LLWearable* wearable) const = 0;
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
-
- // New Virtual functions
- virtual F32 getTotalDistortion() = 0;
- virtual const LLVector4a& getAvgDistortion() = 0;
- virtual F32 getMaxDistortion() = 0;
- virtual LLVector4a getVertexDistortion(S32 index, LLPolyMesh *mesh) = 0;
- virtual const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **mesh) = 0;
- virtual const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **mesh) = 0;
-
- // interface methods
- F32 getDisplayOrder() const { return getInfo()->mEditGroupDisplayOrder; }
- S32 getWearableType() const { return getInfo()->mWearableType; }
- const std::string& getEditGroup() const { return getInfo()->mEditGroup; }
-
- F32 getCameraDistance() const { return getInfo()->mCamDist; }
- F32 getCameraAngle() const { return getInfo()->mCamAngle; } // degrees
- F32 getCameraElevation() const { return getInfo()->mCamElevation; }
-
- BOOL getShowSimple() const { return getInfo()->mShowSimple; }
- F32 getSimpleMin() const { return getInfo()->mSimpleMin; }
- F32 getSimpleMax() const { return getInfo()->mSimpleMax; }
-
- BOOL getCrossWearable() const { return getInfo()->mCrossWearable; }
-
-} LL_ALIGN_POSTFIX(16);
-
-#endif // LL_LLViewerVisualParam_H
diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp
new file mode 100644
index 0000000000..e8425dc76a
--- /dev/null
+++ b/indra/newview/llviewerwearable.cpp
@@ -0,0 +1,656 @@
+/**
+ * @file llviewerwearable.cpp
+ * @brief LLViewerWearable class implementation
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llagentcamera.h"
+#include "llagentwearables.h"
+#include "llfloatersidepanelcontainer.h"
+#include "llnotificationsutil.h"
+#include "llsidepanelappearance.h"
+#include "lltextureentry.h"
+#include "llviewertexlayer.h"
+#include "llvoavatarself.h"
+#include "llavatarappearancedefines.h"
+#include "llviewerwearable.h"
+#include "llviewercontrol.h"
+#include "llviewerregion.h"
+
+using namespace LLAvatarAppearanceDefines;
+
+// support class - remove for 2.1 (hackity hack hack)
+class LLOverrideBakedTextureUpdate
+{
+public:
+ LLOverrideBakedTextureUpdate(bool temp_state)
+ {
+ U32 num_bakes = (U32) LLAvatarAppearanceDefines::BAKED_NUM_INDICES;
+ for( U32 index = 0; index < num_bakes; ++index )
+ {
+ composite_enabled[index] = gAgentAvatarp->isCompositeUpdateEnabled(index);
+ }
+ gAgentAvatarp->setCompositeUpdatesEnabled(temp_state);
+ }
+
+ ~LLOverrideBakedTextureUpdate()
+ {
+ U32 num_bakes = (U32)LLAvatarAppearanceDefines::BAKED_NUM_INDICES;
+ for( U32 index = 0; index < num_bakes; ++index )
+ {
+ gAgentAvatarp->setCompositeUpdatesEnabled(index, composite_enabled[index]);
+ }
+ }
+private:
+ bool composite_enabled[LLAvatarAppearanceDefines::BAKED_NUM_INDICES];
+};
+
+// Private local functions
+static std::string asset_id_to_filename(const LLUUID &asset_id);
+
+LLViewerWearable::LLViewerWearable(const LLTransactionID& transaction_id) :
+ LLWearable()
+{
+ mTransactionID = transaction_id;
+ mAssetID = mTransactionID.makeAssetID(gAgent.getSecureSessionID());
+}
+
+LLViewerWearable::LLViewerWearable(const LLAssetID& asset_id) :
+ LLWearable()
+{
+ mAssetID = asset_id;
+ mTransactionID.setNull();
+}
+
+// virtual
+LLViewerWearable::~LLViewerWearable()
+{
+}
+
+// virtual
+LLWearable::EImportResult LLViewerWearable::importStream( std::istream& input_stream, LLAvatarAppearance* avatarp )
+{
+ // suppress texlayerset updates while wearables are being imported. Layersets will be updated
+ // when the wearables are "worn", not loaded. Note state will be restored when this object is destroyed.
+ LLOverrideBakedTextureUpdate stop_bakes(false);
+
+ LLWearable::EImportResult result = LLWearable::importStream(input_stream, avatarp);
+ if (LLWearable::FAILURE == result) return result;
+ if (LLWearable::BAD_HEADER == result)
+ {
+ // Shouldn't really log the asset id for security reasons, but
+ // we need it in this case.
+ llwarns << "Bad Wearable asset header: " << mAssetID << llendl;
+ //gVFS->dumpMap();
+ return result;
+ }
+
+ LLStringUtil::truncate(mName, DB_INV_ITEM_NAME_STR_LEN );
+ LLStringUtil::truncate(mDescription, DB_INV_ITEM_DESC_STR_LEN );
+
+ te_map_t::const_iterator iter = mTEMap.begin();
+ te_map_t::const_iterator end = mTEMap.end();
+ for (; iter != end; ++iter)
+ {
+ S32 te = iter->first;
+ LLLocalTextureObject* lto = iter->second;
+ LLUUID textureid = LLUUID::null;
+ if (lto)
+ {
+ textureid = lto->getID();
+ }
+
+ LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture( textureid );
+ if(gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
+ {
+ image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(textureid, (LLAvatarAppearanceDefines::ETextureIndex)te), NULL);
+ }
+ }
+
+ return result;
+}
+
+
+// Avatar parameter and texture definitions can change over time.
+// This function returns true if parameters or textures have been added or removed
+// since this wearable was created.
+BOOL LLViewerWearable::isOldVersion() const
+{
+ if (!isAgentAvatarValid()) return FALSE;
+
+ if( LLWearable::sCurrentDefinitionVersion < mDefinitionVersion )
+ {
+ llwarns << "Wearable asset has newer version (" << mDefinitionVersion << ") than XML (" << LLWearable::sCurrentDefinitionVersion << ")" << llendl;
+ llassert(0);
+ }
+
+ if( LLWearable::sCurrentDefinitionVersion != mDefinitionVersion )
+ {
+ return TRUE;
+ }
+
+ S32 param_count = 0;
+ for( LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
+ param;
+ param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
+ {
+ if( (param->getWearableType() == mType) && (param->isTweakable() ) )
+ {
+ param_count++;
+ if( !is_in_map(mVisualParamIndexMap, param->getID() ) )
+ {
+ return TRUE;
+ }
+ }
+ }
+ if( param_count != mVisualParamIndexMap.size() )
+ {
+ return TRUE;
+ }
+
+
+ S32 te_count = 0;
+ for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
+ {
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType)
+ {
+ te_count++;
+ if( !is_in_map(mTEMap, te ) )
+ {
+ return TRUE;
+ }
+ }
+ }
+ if( te_count != mTEMap.size() )
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+// Avatar parameter and texture definitions can change over time.
+// * If parameters or textures have been REMOVED since the wearable was created,
+// they're just ignored, so we consider the wearable clean even though isOldVersion()
+// will return true.
+// * If parameters or textures have been ADDED since the wearable was created,
+// they are taken to have default values, so we consider the wearable clean
+// only if those values are the same as the defaults.
+BOOL LLViewerWearable::isDirty() const
+{
+ if (!isAgentAvatarValid()) return FALSE;
+
+ for( LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
+ param;
+ param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
+ {
+ if( (param->getWearableType() == mType)
+ && (param->isTweakable() )
+ && !param->getCrossWearable())
+ {
+ F32 current_weight = getVisualParamWeight(param->getID());
+ current_weight = llclamp( current_weight, param->getMinWeight(), param->getMaxWeight() );
+ F32 saved_weight = get_if_there(mSavedVisualParamMap, param->getID(), param->getDefaultWeight());
+ saved_weight = llclamp( saved_weight, param->getMinWeight(), param->getMaxWeight() );
+
+ U8 a = F32_to_U8( saved_weight, param->getMinWeight(), param->getMaxWeight() );
+ U8 b = F32_to_U8( current_weight, param->getMinWeight(), param->getMaxWeight() );
+ if( a != b )
+ {
+ return TRUE;
+ }
+ }
+ }
+
+ for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
+ {
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType)
+ {
+ te_map_t::const_iterator current_iter = mTEMap.find(te);
+ if(current_iter != mTEMap.end())
+ {
+ const LLUUID& current_image_id = current_iter->second->getID();
+ te_map_t::const_iterator saved_iter = mSavedTEMap.find(te);
+ if(saved_iter != mSavedTEMap.end())
+ {
+ const LLUUID& saved_image_id = saved_iter->second->getID();
+ if (saved_image_id != current_image_id)
+ {
+ // saved vs current images are different, wearable is dirty
+ return TRUE;
+ }
+ }
+ else
+ {
+ // image found in current image list but not saved image list
+ return TRUE;
+ }
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+
+void LLViewerWearable::setParamsToDefaults()
+{
+ if (!isAgentAvatarValid()) return;
+
+ for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
+ {
+ if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->isTweakable() ) )
+ {
+ setVisualParamWeight(param->getID(),param->getDefaultWeight(), FALSE);
+ }
+ }
+}
+
+void LLViewerWearable::setTexturesToDefaults()
+{
+ for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
+ {
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType)
+ {
+ LLUUID id = getDefaultTextureImageID((ETextureIndex) te);
+ LLViewerFetchedTexture * image = LLViewerTextureManager::getFetchedTexture( id );
+ if( mTEMap.find(te) == mTEMap.end() )
+ {
+ mTEMap[te] = new LLLocalTextureObject(image, id);
+ createLayers(te, gAgentAvatarp);
+ }
+ else
+ {
+ // Local Texture Object already created, just set image and UUID
+ LLLocalTextureObject *lto = mTEMap[te];
+ lto->setID(id);
+ lto->setImage(image);
+ }
+ }
+ }
+}
+
+
+// virtual
+LLUUID LLViewerWearable::getDefaultTextureImageID(ETextureIndex index) const
+{
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
+ const std::string &default_image_name = texture_dict->mDefaultImageName;
+ if (default_image_name == "")
+ {
+ return IMG_DEFAULT_AVATAR;
+ }
+ else
+ {
+ return LLUUID(gSavedSettings.getString(default_image_name));
+ }
+}
+
+
+// Updates the user's avatar's appearance
+//virtual
+void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)
+{
+ LLVOAvatarSelf* viewer_avatar = dynamic_cast<LLVOAvatarSelf*>(avatarp);
+
+ if (!avatarp || !viewer_avatar) return;
+
+ if (!viewer_avatar->isValid()) return;
+
+#if 0
+ // FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables.
+ // Ideally would avoid calling this func in the first place.
+ if (viewer_avatar->isUsingServerBakes() &&
+ !viewer_avatar->isUsingLocalAppearance())
+ {
+ return;
+ }
+#endif
+
+ ESex old_sex = avatarp->getSex();
+
+ LLWearable::writeToAvatar(avatarp);
+
+
+ // Pull texture entries
+ for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
+ {
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType)
+ {
+ te_map_t::const_iterator iter = mTEMap.find(te);
+ LLUUID image_id;
+ if(iter != mTEMap.end())
+ {
+ image_id = iter->second->getID();
+ }
+ else
+ {
+ image_id = getDefaultTextureImageID((ETextureIndex) te);
+ }
+ LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE );
+ // MULTI-WEARABLE: assume index 0 will be used when writing to avatar. TODO: eliminate the need for this.
+ viewer_avatar->setLocalTextureTE(te, image, 0);
+ }
+ }
+
+ ESex new_sex = avatarp->getSex();
+ if( old_sex != new_sex )
+ {
+ viewer_avatar->updateSexDependentLayerSets( FALSE );
+ }
+
+// if( upload_bake )
+// {
+// gAgent.sendAgentSetAppearance();
+// }
+}
+
+
+// Updates the user's avatar's appearance, replacing this wearables' parameters and textures with default values.
+// static
+void LLViewerWearable::removeFromAvatar( LLWearableType::EType type, BOOL upload_bake )
+{
+ if (!isAgentAvatarValid()) return;
+
+ // You can't just remove body parts.
+ if( (type == LLWearableType::WT_SHAPE) ||
+ (type == LLWearableType::WT_SKIN) ||
+ (type == LLWearableType::WT_HAIR) ||
+ (type == LLWearableType::WT_EYES) )
+ {
+ return;
+ }
+
+ // Pull params
+ for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
+ {
+ if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->isTweakable() ) )
+ {
+ S32 param_id = param->getID();
+ gAgentAvatarp->setVisualParamWeight( param_id, param->getDefaultWeight(), upload_bake );
+ }
+ }
+
+ if(gAgentCamera.cameraCustomizeAvatar())
+ {
+ LLFloaterSidePanelContainer::showPanel("appearance", LLSD().with("type", "edit_outfit"));
+ }
+
+ gAgentAvatarp->updateVisualParams();
+ gAgentAvatarp->wearableUpdated(type, FALSE);
+
+// if( upload_bake )
+// {
+// gAgent.sendAgentSetAppearance();
+// }
+}
+
+// Does not copy mAssetID.
+// Definition version is current: removes obsolete enties and creates default values for new ones.
+void LLViewerWearable::copyDataFrom(const LLViewerWearable* src)
+{
+ if (!isAgentAvatarValid()) return;
+
+ mDefinitionVersion = LLWearable::sCurrentDefinitionVersion;
+
+ mName = src->mName;
+ mDescription = src->mDescription;
+ mPermissions = src->mPermissions;
+ mSaleInfo = src->mSaleInfo;
+
+ setType(src->mType, gAgentAvatarp);
+
+ mSavedVisualParamMap.clear();
+ // Deep copy of mVisualParamMap (copies only those params that are current, filling in defaults where needed)
+ for (LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
+ param;
+ param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
+ {
+ if( (param->getWearableType() == mType) )
+ {
+ S32 id = param->getID();
+ F32 weight = src->getVisualParamWeight(id);
+ mSavedVisualParamMap[id] = weight;
+ }
+ }
+
+ destroyTextures();
+ // Deep copy of mTEMap (copies only those tes that are current, filling in defaults where needed)
+ for (S32 te = 0; te < TEX_NUM_INDICES; te++)
+ {
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType)
+ {
+ te_map_t::const_iterator iter = src->mTEMap.find(te);
+ LLUUID image_id;
+ LLViewerFetchedTexture *image = NULL;
+ if(iter != src->mTEMap.end())
+ {
+ image = dynamic_cast<LLViewerFetchedTexture*> (src->getLocalTextureObject(te)->getImage());
+ image_id = src->getLocalTextureObject(te)->getID();
+ mTEMap[te] = new LLLocalTextureObject(image, image_id);
+ mSavedTEMap[te] = new LLLocalTextureObject(image, image_id);
+ mTEMap[te]->setBakedReady(src->getLocalTextureObject(te)->getBakedReady());
+ mTEMap[te]->setDiscard(src->getLocalTextureObject(te)->getDiscard());
+ }
+ else
+ {
+ image_id = getDefaultTextureImageID((ETextureIndex) te);
+ image = LLViewerTextureManager::getFetchedTexture( image_id );
+ mTEMap[te] = new LLLocalTextureObject(image, image_id);
+ mSavedTEMap[te] = new LLLocalTextureObject(image, image_id);
+ }
+ createLayers(te, gAgentAvatarp);
+ }
+ }
+
+ // Probably reduntant, but ensure that the newly created wearable is not dirty by setting current value of params in new wearable
+ // to be the same as the saved values (which were loaded from src at param->cloneParam(this))
+ revertValues();
+}
+
+void LLViewerWearable::setItemID(const LLUUID& item_id)
+{
+ mItemID = item_id;
+}
+
+void LLViewerWearable::revertValues()
+{
+#if 0
+ // DRANO avoid overwrite when not in local appearance
+ if (isAgentAvatarValid() && gAgentAvatarp->isUsingServerBakes() && !gAgentAvatarp->isUsingLocalAppearance())
+ {
+ return;
+ }
+#endif
+ LLWearable::revertValues();
+
+
+ LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
+ if( panel )
+ {
+ panel->updateScrollingPanelList();
+ }
+}
+
+void LLViewerWearable::saveValues()
+{
+ LLWearable::saveValues();
+
+ LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
+ if( panel )
+ {
+ panel->updateScrollingPanelList();
+ }
+}
+
+// virtual
+void LLViewerWearable::setUpdated() const
+{
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, getItemID());
+}
+
+void LLViewerWearable::refreshName()
+{
+ LLUUID item_id = getItemID();
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if( item )
+ {
+ mName = item->getName();
+ }
+}
+
+// virtual
+void LLViewerWearable::addToBakedTextureHash(LLMD5& hash) const
+{
+ LLUUID asset_id = getAssetID();
+ hash.update((const unsigned char*)asset_id.mData, UUID_BYTES);
+}
+
+struct LLWearableSaveData
+{
+ LLWearableType::EType mType;
+};
+
+void LLViewerWearable::saveNewAsset() const
+{
+// llinfos << "LLViewerWearable::saveNewAsset() type: " << getTypeName() << llendl;
+ //llinfos << *this << llendl;
+
+ const std::string filename = asset_id_to_filename(mAssetID);
+ LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */
+ BOOL successful_save = FALSE;
+ if(fp && exportFile(fp))
+ {
+ successful_save = TRUE;
+ }
+ if(fp)
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ if(!successful_save)
+ {
+ std::string buffer = llformat("Unable to save '%s' to wearable file.", mName.c_str());
+ llwarns << buffer << llendl;
+
+ LLSD args;
+ args["NAME"] = mName;
+ LLNotificationsUtil::add("CannotSaveWearableOutOfSpace", args);
+ return;
+ }
+
+ // save it out to database
+ if( gAssetStorage )
+ {
+ /*
+ std::string url = gAgent.getRegion()->getCapability("NewAgentInventory");
+ if (!url.empty())
+ {
+ llinfos << "Update Agent Inventory via capability" << llendl;
+ LLSD body;
+ body["folder_id"] = gInventory.findCategoryUUIDForType(LLFolderType::assetToFolderType(getAssetType()));
+ body["asset_type"] = LLAssetType::lookup(getAssetType());
+ body["inventory_type"] = LLInventoryType::lookup(LLInventoryType::IT_WEARABLE);
+ body["name"] = getName();
+ body["description"] = getDescription();
+ LLHTTPClient::post(url, body, new LLNewAgentInventoryResponder(body, filename));
+ }
+ else
+ {
+ }
+ */
+ LLWearableSaveData* data = new LLWearableSaveData;
+ data->mType = mType;
+ gAssetStorage->storeAssetData(filename, mTransactionID, getAssetType(),
+ &LLViewerWearable::onSaveNewAssetComplete,
+ (void*)data);
+ }
+}
+
+// static
+void LLViewerWearable::onSaveNewAssetComplete(const LLUUID& new_asset_id, void* userdata, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
+{
+ LLWearableSaveData* data = (LLWearableSaveData*)userdata;
+ const std::string& type_name = LLWearableType::getTypeName(data->mType);
+ if(0 == status)
+ {
+ // Success
+ llinfos << "Saved wearable " << type_name << llendl;
+ }
+ else
+ {
+ std::string buffer = llformat("Unable to save %s to central asset store.", type_name.c_str());
+ llwarns << buffer << " Status: " << status << llendl;
+ LLSD args;
+ args["NAME"] = type_name;
+ LLNotificationsUtil::add("CannotSaveToAssetStore", args);
+ }
+
+ // Delete temp file
+ const std::string src_filename = asset_id_to_filename(new_asset_id);
+ LLFile::remove(src_filename);
+
+ // delete the context data
+ delete data;
+
+}
+
+std::ostream& operator<<(std::ostream &s, const LLViewerWearable &w)
+{
+ s << "wearable " << LLWearableType::getTypeName(w.mType) << "\n";
+ s << " Name: " << w.mName << "\n";
+ s << " Desc: " << w.mDescription << "\n";
+ //w.mPermissions
+ //w.mSaleInfo
+
+ s << " Params:" << "\n";
+ for (LLWearable::visual_param_index_map_t::const_iterator iter = w.mVisualParamIndexMap.begin();
+ iter != w.mVisualParamIndexMap.end(); ++iter)
+ {
+ S32 param_id = iter->first;
+ LLVisualParam *wearable_param = iter->second;
+ F32 param_weight = wearable_param->getWeight();
+ s << " " << param_id << " " << param_weight << "\n";
+ }
+
+ s << " Textures:" << "\n";
+ for (LLViewerWearable::te_map_t::const_iterator iter = w.mTEMap.begin();
+ iter != w.mTEMap.end(); ++iter)
+ {
+ S32 te = iter->first;
+ const LLUUID& image_id = iter->second->getID();
+ s << " " << te << " " << image_id << "\n";
+ }
+ return s;
+}
+
+std::string asset_id_to_filename(const LLUUID &asset_id)
+{
+ std::string asset_id_string;
+ asset_id.toString(asset_id_string);
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_id_string) + ".wbl";
+ return filename;
+}
diff --git a/indra/newview/llviewerwearable.h b/indra/newview/llviewerwearable.h
new file mode 100644
index 0000000000..65566f23a5
--- /dev/null
+++ b/indra/newview/llviewerwearable.h
@@ -0,0 +1,104 @@
+/**
+ * @file llviewerwearable.h
+ * @brief LLViewerWearable class header file
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_VIEWER_WEARABLE_H
+#define LL_VIEWER_WEARABLE_H
+
+#include "llwearable.h"
+#include "llavatarappearancedefines.h"
+
+class LLVOAvatar;
+
+class LLViewerWearable : public LLWearable
+{
+ friend class LLWearableList;
+
+ //--------------------------------------------------------------------
+ // Constructors and destructors
+ //--------------------------------------------------------------------
+private:
+ // Private constructors used by LLViewerWearableList
+ LLViewerWearable(const LLTransactionID& transactionID);
+ LLViewerWearable(const LLAssetID& assetID);
+public:
+ virtual ~LLViewerWearable();
+
+ //--------------------------------------------------------------------
+ // Accessors
+ //--------------------------------------------------------------------
+public:
+ const LLUUID& getItemID() const { return mItemID; }
+ const LLAssetID& getAssetID() const { return mAssetID; }
+ const LLTransactionID& getTransactionID() const { return mTransactionID; }
+ void setItemID(const LLUUID& item_id);
+
+public:
+
+ BOOL isDirty() const;
+ BOOL isOldVersion() const;
+
+ /*virtual*/ void writeToAvatar(LLAvatarAppearance *avatarp);
+ void removeFromAvatar( BOOL upload_bake ) { LLViewerWearable::removeFromAvatar( mType, upload_bake ); }
+ static void removeFromAvatar( LLWearableType::EType type, BOOL upload_bake );
+
+ /*virtual*/ EImportResult importStream( std::istream& input_stream, LLAvatarAppearance* avatarp );
+
+ void setParamsToDefaults();
+ void setTexturesToDefaults();
+
+ /*virtual*/ LLUUID getDefaultTextureImageID(LLAvatarAppearanceDefines::ETextureIndex index) const;
+
+
+ void saveNewAsset() const;
+ static void onSaveNewAssetComplete( const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status );
+
+ void copyDataFrom(const LLViewerWearable* src);
+
+ friend std::ostream& operator<<(std::ostream &s, const LLViewerWearable &w);
+
+ /*virtual*/ void revertValues();
+ /*virtual*/ void saveValues();
+
+ // Something happened that requires the wearable's label to be updated (e.g. worn/unworn).
+ /*virtual*/void setUpdated() const;
+
+ // the wearable was worn. make sure the name of the wearable object matches the LLViewerInventoryItem,
+ // not the wearable asset itself.
+ void refreshName();
+
+ // Update the baked texture hash.
+ /*virtual*/void addToBakedTextureHash(LLMD5& hash) const;
+
+protected:
+ LLAssetID mAssetID;
+ LLTransactionID mTransactionID;
+
+ LLUUID mItemID; // ID of the inventory item in the agent's inventory
+};
+
+
+#endif // LL_VIEWER_WEARABLE_H
+
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 4afd90b44c..fe4d5b3e4d 100755
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -34,6 +34,7 @@
#include <fstream>
#include <algorithm>
#include <boost/lambda/core.hpp>
+#include <boost/regex.hpp>
#include "llagent.h"
#include "llagentcamera.h"
@@ -383,7 +384,7 @@ public:
if (isAgentAvatarValid())
{
- tvector = gAgent.getPosGlobalFromAgent(gAgentAvatarp->mRoot.getWorldPosition());
+ tvector = gAgent.getPosGlobalFromAgent(gAgentAvatarp->mRoot->getWorldPosition());
agent_root_center_text = llformat("AgentRootCenter %f %f %f",
(F32)(tvector.mdV[VX]), (F32)(tvector.mdV[VY]), (F32)(tvector.mdV[VZ]));
}
@@ -1573,6 +1574,16 @@ LLViewerWindow::LLViewerWindow(const Params& p)
LLViewerWindow::sMovieBaseName = "SLmovie";
resetSnapshotLoc();
+
+ /*
+ LLWindowCallbacks* callbacks,
+ const std::string& title, const std::string& name, S32 x, S32 y, S32 width, S32 height, U32 flags,
+ BOOL fullscreen,
+ BOOL clearBg,
+ BOOL disable_vsync,
+ BOOL ignore_pixel_depth,
+ U32 fsaa_samples)
+ */
// create window
mWindow = LLWindowManager::createWindow(this,
p.title, p.name, p.x, p.y, p.width, p.height, 0,
@@ -2147,7 +2158,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)
calcDisplayScale();
- BOOL display_scale_changed = mDisplayScale != LLUI::sGLScaleFactor;
+ BOOL display_scale_changed = mDisplayScale != LLUI::getScaleFactor();
LLUI::setScaleFactor(mDisplayScale);
// update our window rectangle
@@ -2239,29 +2250,42 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid)
// no l10n problem because channel is always an english string
std::string channel = LLVersionInfo::getChannel();
- bool isProject = (channel.find("Project") != std::string::npos);
+ static const boost::regex is_beta_channel("\\bBeta\\b");
+ static const boost::regex is_project_channel("\\bProject\\b");
+ static const boost::regex is_test_channel("\\bTest$");
// god more important than project, proj more important than grid
- if(god_mode && LLGridManager::getInstance()->isInProductionGrid())
- {
- new_bg_color = LLUIColorTable::instance().getColor( "MenuBarGodBgColor" );
- }
- else if(god_mode && !LLGridManager::getInstance()->isInProductionGrid())
+ if ( god_mode )
{
- new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionGodBgColor" );
+ if ( LLGridManager::getInstance()->isInProductionGrid() )
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuBarGodBgColor" );
+ }
+ else
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionGodBgColor" );
+ }
}
- else if (!god_mode && isProject)
+ else if (boost::regex_search(channel, is_beta_channel))
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuBarBetaBgColor" );
+ }
+ else if (boost::regex_search(channel, is_project_channel))
{
new_bg_color = LLUIColorTable::instance().getColor( "MenuBarProjectBgColor" );
- }
- else if(!god_mode && !LLGridManager::getInstance()->isInProductionGrid())
- {
- new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" );
- }
- else
- {
- new_bg_color = LLUIColorTable::instance().getColor( "MenuBarBgColor" );
- }
+ }
+ else if (boost::regex_search(channel, is_test_channel))
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuBarTestBgColor" );
+ }
+ else if(!LLGridManager::getInstance()->isInProductionGrid())
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" );
+ }
+ else
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuBarBgColor" );
+ }
if(gMenuBarView)
{
@@ -2353,7 +2377,7 @@ void LLViewerWindow::draw()
// scale view by UI global scale factor and aspect ratio correction factor
gGL.scaleUI(mDisplayScale.mV[VX], mDisplayScale.mV[VY], 1.f);
- LLVector2 old_scale_factor = LLUI::sGLScaleFactor;
+ LLVector2 old_scale_factor = LLUI::getScaleFactor();
// apply camera zoom transform (for high res screenshots)
F32 zoom_factor = LLViewerCamera::getInstance()->getZoomFactor();
S16 sub_region = LLViewerCamera::getInstance()->getZoomSubRegion();
@@ -2367,7 +2391,7 @@ void LLViewerWindow::draw()
(F32)getWindowHeightScaled() * -(F32)pos_y,
0.f);
gGL.scalef(zoom_factor, zoom_factor, 1.f);
- LLUI::sGLScaleFactor *= zoom_factor;
+ LLUI::getScaleFactor() *= zoom_factor;
}
// Draw tool specific overlay on world
@@ -2415,7 +2439,7 @@ void LLViewerWindow::draw()
LLFontGL::HCENTER, LLFontGL::TOP);
}
- LLUI::sGLScaleFactor = old_scale_factor;
+ LLUI::setScaleFactor(old_scale_factor);
}
LLUI::popMatrix();
gGL.popMatrix();
@@ -3218,8 +3242,8 @@ void LLViewerWindow::updateLayout()
void LLViewerWindow::updateMouseDelta()
{
- S32 dx = lltrunc((F32) (mCurrentMousePoint.mX - mLastMousePoint.mX) * LLUI::sGLScaleFactor.mV[VX]);
- S32 dy = lltrunc((F32) (mCurrentMousePoint.mY - mLastMousePoint.mY) * LLUI::sGLScaleFactor.mV[VY]);
+ S32 dx = lltrunc((F32) (mCurrentMousePoint.mX - mLastMousePoint.mX) * LLUI::getScaleFactor().mV[VX]);
+ S32 dy = lltrunc((F32) (mCurrentMousePoint.mY - mLastMousePoint.mY) * LLUI::getScaleFactor().mV[VY]);
//RN: fix for asynchronous notification of mouse leaving window not working
LLCoordWindow mouse_pos;
@@ -4784,7 +4808,7 @@ void LLViewerWindow::restoreGL(const std::string& progress_message)
gResizeScreenTexture = TRUE;
gWindowResized = TRUE;
- if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
+ if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance())
{
LLVisualParamHint::requestHintUpdates();
}
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index b33488fd78..b33488fd78 100644..100755
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
diff --git a/indra/newview/llviewerwindowlistener.cpp b/indra/newview/llviewerwindowlistener.cpp
index 1fe5fc9800..1fe5fc9800 100644..100755
--- a/indra/newview/llviewerwindowlistener.cpp
+++ b/indra/newview/llviewerwindowlistener.cpp
diff --git a/indra/newview/llviewerwindowlistener.h b/indra/newview/llviewerwindowlistener.h
index d627aad266..d627aad266 100644..100755
--- a/indra/newview/llviewerwindowlistener.h
+++ b/indra/newview/llviewerwindowlistener.h
diff --git a/indra/newview/llvlcomposition.cpp b/indra/newview/llvlcomposition.cpp
index abb5153480..94760e3c83 100644..100755
--- a/indra/newview/llvlcomposition.cpp
+++ b/indra/newview/llvlcomposition.cpp
@@ -223,7 +223,7 @@ BOOL LLVLComposition::generateComposition()
{
if (mDetailTextures[i]->getDiscardLevel() < 0)
{
- mDetailTextures[i]->setBoostLevel(LLViewerTexture::BOOST_TERRAIN); // in case we are at low detail
+ mDetailTextures[i]->setBoostLevel(LLGLTexture::BOOST_TERRAIN); // in case we are at low detail
mDetailTextures[i]->addTextureStats(BASE_SIZE*BASE_SIZE);
return FALSE;
}
@@ -240,7 +240,7 @@ BOOL LLVLComposition::generateComposition()
ddiscard++;
min_dim /= 2;
}
- mDetailTextures[i]->setBoostLevel(LLViewerTexture::BOOST_TERRAIN); // in case we are at low detail
+ mDetailTextures[i]->setBoostLevel(LLGLTexture::BOOST_TERRAIN); // in case we are at low detail
mDetailTextures[i]->setMinDiscardLevel(ddiscard);
return FALSE;
}
@@ -376,9 +376,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
LLPointer<LLImageRaw> raw = new LLImageRaw(tex_width, tex_height, tex_comps);
U8 *rawp = raw->getData();
- F32 tex_width_inv = 1.f/tex_width;
- F32 tex_height_inv = 1.f/tex_height;
-
F32 st_x_stride, st_y_stride;
st_x_stride = ((F32)st_width / (F32)mTexScaleX)*((F32)mWidth / (F32)tex_width);
st_y_stride = ((F32)st_height / (F32)mTexScaleY)*((F32)mWidth / (F32)tex_height);
@@ -413,11 +410,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
tex1 = tex0 + 1;
tex1 = llclamp(tex1, 0, 3);
- F32 xy_int_i, xy_int_j;
-
- xy_int_i = i * tex_width_inv;
- xy_int_j = j * tex_height_inv;
-
st_offset = (lltrunc(sti) + lltrunc(stj)*st_width) * st_comps;
for (U32 k = 0; k < tex_comps; k++)
{
@@ -461,7 +453,7 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
for (S32 i = 0; i < 4; i++)
{
// Un-boost detatil textures (will get re-boosted if rendering in high detail)
- mDetailTextures[i]->setBoostLevel(LLViewerTexture::BOOST_NONE);
+ mDetailTextures[i]->setBoostLevel(LLGLTexture::BOOST_NONE);
mDetailTextures[i]->setMinDiscardLevel(MAX_DISCARD_LEVEL + 1);
}
diff --git a/indra/newview/llvlcomposition.h b/indra/newview/llvlcomposition.h
index 2dd04ac5a5..2dd04ac5a5 100644..100755
--- a/indra/newview/llvlcomposition.h
+++ b/indra/newview/llvlcomposition.h
diff --git a/indra/newview/llvlmanager.cpp b/indra/newview/llvlmanager.cpp
index d8de979f56..d8de979f56 100644..100755
--- a/indra/newview/llvlmanager.cpp
+++ b/indra/newview/llvlmanager.cpp
diff --git a/indra/newview/llvlmanager.h b/indra/newview/llvlmanager.h
index 74b4823a5c..74b4823a5c 100644..100755
--- a/indra/newview/llvlmanager.h
+++ b/indra/newview/llvlmanager.h
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index d295fc60cd..06fb23b84b 100644..100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -24,18 +24,13 @@
* $/LicenseInfo$
*/
-#if LL_MSVC
-// disable warning about boost::lexical_cast returning uninitialized data
-// when it fails to parse the string
-#pragma warning (disable:4701)
-#endif
-
#include "llviewerprecompiledheaders.h"
#include "llvoavatar.h"
#include <stdio.h>
#include <ctype.h>
+#include <sstream>
#include "llaudioengine.h"
#include "noise.h"
@@ -53,6 +48,7 @@
#include "llcallingcard.h" // IDEVO for LLAvatarTracker
#include "lldrawpoolavatar.h"
#include "lldriverparam.h"
+#include "llpolyskeletaldistortion.h"
#include "lleditingmotion.h"
#include "llemote.h"
//#include "llfirstuse.h"
@@ -78,15 +74,16 @@
#include "llselectmgr.h"
#include "llsprite.h"
#include "lltargetingmotion.h"
-#include "lltexlayer.h"
#include "lltoolmorph.h"
#include "llviewercamera.h"
+#include "llviewertexlayer.h"
#include "llviewertexturelist.h"
#include "llviewermenu.h"
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewershadermgr.h"
#include "llviewerstats.h"
+#include "llviewerwearable.h"
#include "llvoavatarself.h"
#include "llvovolume.h"
#include "llworld.h"
@@ -103,22 +100,17 @@
#include "lldebugmessagebox.h"
#include "llsdutil.h"
+#include "llsdserialize.h"
extern F32 SPEED_ADJUST_MAX;
extern F32 SPEED_ADJUST_MAX_SEC;
extern F32 ANIM_SPEED_MAX;
extern F32 ANIM_SPEED_MIN;
-#if LL_MSVC
-// disable boost::lexical_cast warning
-#pragma warning (disable:4702)
-#endif
-
-#include <boost/lexical_cast.hpp>
// #define OUTPUT_BREAST_DATA
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
//-----------------------------------------------------------------------------
// Global constants
@@ -139,7 +131,6 @@ const LLUUID ANIM_AGENT_PHYSICS_MOTION = LLUUID("7360e029-3cb8-ebc4-863e-212df44
//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------
-const std::string AVATAR_DEFAULT_CHAR = "avatar";
const S32 MIN_PIXEL_AREA_FOR_COMPOSITE = 1024;
const F32 SHADOW_OFFSET_AMT = 0.03f;
@@ -196,8 +187,6 @@ const F32 NAMETAG_UPDATE_THRESHOLD = 0.3f;
const F32 NAMETAG_VERTICAL_SCREEN_OFFSET = 25.f;
const F32 NAMETAG_VERT_OFFSET_WEIGHT = 0.17f;
-const LLColor4 DUMMY_COLOR = LLColor4(0.5,0.5,0.5,1.0);
-
enum ERenderName
{
RENDER_NAME_NEVER,
@@ -244,6 +233,24 @@ struct LLVOAvatarCollisionVolumeInfo : public LLInitParam::Block<LLVOAvatarColli
scale;
};
+struct LLAppearanceMessageContents
+{
+ LLAppearanceMessageContents():
+ mAppearanceVersion(-1),
+ mParamAppearanceVersion(-1),
+ mCOFVersion(LLViewerInventoryCategory::VERSION_UNKNOWN)
+ {
+ }
+ LLTEContents mTEContents;
+ S32 mAppearanceVersion;
+ S32 mParamAppearanceVersion;
+ S32 mCOFVersion;
+ // For future use:
+ //U32 appearance_flags = 0;
+ std::vector<F32> mParamWeights;
+ std::vector<LLVisualParam*> mParams;
+};
+
struct LLVOAvatarChildJoint : public LLInitParam::ChoiceBlock<LLVOAvatarChildJoint>
{
Alternative<Lazy<struct LLVOAvatarBoneInfo, IS_A_BLOCK> > bone;
@@ -255,6 +262,8 @@ struct LLVOAvatarChildJoint : public LLInitParam::ChoiceBlock<LLVOAvatarChildJoi
{}
};
+
+
struct LLVOAvatarBoneInfo : public LLInitParam::Block<LLVOAvatarBoneInfo, LLVOAvatarCollisionVolumeInfo>
{
LLVOAvatarBoneInfo()
@@ -284,6 +293,8 @@ struct LLVOAvatarSkeletonInfo : public LLInitParam::Block<LLVOAvatarSkeletonInfo
Mandatory<LLVOAvatarChildJoint> skeleton_root;
};
+
+
//-----------------------------------------------------------------------------
// class LLBodyNoiseMotion
//-----------------------------------------------------------------------------
@@ -605,11 +616,7 @@ private:
//-----------------------------------------------------------------------------
// Static Data
//-----------------------------------------------------------------------------
-LLXmlTree LLVOAvatar::sXMLTree;
-LLXMLNodePtr LLVOAvatar::sSkeletonXMLTree;
-LLVOAvatarSkeletonInfo* LLVOAvatar::sAvatarSkeletonInfo = NULL;
-LLVOAvatar::LLVOAvatarXmlInfo* LLVOAvatar::sAvatarXmlInfo = NULL;
-LLVOAvatarDictionary *LLVOAvatar::sAvatarDictionary = NULL;
+LLAvatarAppearanceDictionary *LLVOAvatar::sAvatarDictionary = NULL;
S32 LLVOAvatar::sFreezeCounter = 0;
U32 LLVOAvatar::sMaxVisible = 12;
F32 LLVOAvatar::sRenderDistance = 256.f;
@@ -656,15 +663,13 @@ static F32 calc_bouncy_animation(F32 x);
LLVOAvatar::LLVOAvatar(const LLUUID& id,
const LLPCode pcode,
LLViewerRegion* regionp) :
+ LLAvatarAppearance(&gAgentWearables),
LLViewerObject(id, pcode, regionp),
- mIsDummy(FALSE),
mSpecialRenderMode(0),
mAttachmentGeometryBytes(0),
mAttachmentSurfaceArea(0.f),
mTurning(FALSE),
- mPelvisToFoot(0.f),
mLastSkeletonSerialNum( 0 ),
- mHeadOffset(),
mIsSitting(FALSE),
mTimeVisible(),
mTyping(FALSE),
@@ -675,7 +680,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mBelowWater(FALSE),
mLastAppearanceBlendTime(0.f),
mAppearanceAnimating(FALSE),
- mNameString(),
+ mNameIsSet(false),
mTitle(),
mNameAway(false),
mNameDoNotDisturb(false),
@@ -689,9 +694,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mFirstAppearanceMessageReceived( FALSE ),
mCulled( FALSE ),
mVisibilityRank(0),
- mTexSkinColor( NULL ),
- mTexHairColor( NULL ),
- mTexEyeColor( NULL ),
mNeedsSkin(FALSE),
mLastSkinTime(0.f),
mUpdatePeriod(1),
@@ -699,12 +701,15 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mFullyLoaded(FALSE),
mPreviousFullyLoaded(FALSE),
mFullyLoadedInitialized(FALSE),
- mSupportsAlphaLayers(FALSE),
mLoadedCallbacksPaused(FALSE),
mHasPelvisOffset( FALSE ),
mRenderUnloadedAvatar(LLCachedControl<bool>(gSavedSettings, "RenderUnloadedAvatar")),
- mLastRezzedStatus(-1)
-
+ mLastRezzedStatus(-1),
+ mIsEditingAppearance(FALSE),
+ mUseLocalAppearance(FALSE),
+ mUseServerBakes(FALSE), // FIXME DRANO consider using boost::optional, defaulting to unknown.
+ mLastUpdateRequestCOFVersion(-1),
+ mLastUpdateReceivedCOFVersion(-1)
{
//VTResume(); // VTune
@@ -716,28 +721,10 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mPelvisp = NULL;
- mBakedTextureDatas.resize(BAKED_NUM_INDICES);
- for (U32 i = 0; i < mBakedTextureDatas.size(); i++ )
- {
- mBakedTextureDatas[i].mLastTextureIndex = IMG_DEFAULT_AVATAR;
- mBakedTextureDatas[i].mTexLayerSet = NULL;
- mBakedTextureDatas[i].mIsLoaded = false;
- mBakedTextureDatas[i].mIsUsed = false;
- mBakedTextureDatas[i].mMaskTexName = 0;
- mBakedTextureDatas[i].mTextureIndex = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)i);
- }
-
mDirtyMesh = 2; // Dirty geometry, need to regenerate.
mMeshTexturesDirty = FALSE;
mHeadp = NULL;
- mIsBuilt = FALSE;
-
- mNumJoints = 0;
- mSkeleton = NULL;
-
- mNumCollisionVolumes = 0;
- mCollisionVolumes = NULL;
// set up animation variables
mSpeed = 0.f;
@@ -815,59 +802,22 @@ void LLVOAvatar::debugAvatarRezTime(std::string notification_name, std::string c
//------------------------------------------------------------------------
LLVOAvatar::~LLVOAvatar()
{
- if (!mFullyLoaded)
- {
+ if (!mFullyLoaded)
+ {
debugAvatarRezTime("AvatarRezLeftCloudNotification","left after ruth seconds as cloud");
- }
- else
- {
+ }
+ else
+ {
debugAvatarRezTime("AvatarRezLeftNotification","left sometime after declouding");
- }
+ }
+ logPendingPhases();
+
lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl;
- mRoot.removeAllChildren();
- mJointMap.clear();
-
- deleteAndClearArray(mSkeleton);
- deleteAndClearArray(mCollisionVolumes);
-
- mNumJoints = 0;
-
- for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
- {
- deleteAndClear(mBakedTextureDatas[i].mTexLayerSet);
- mBakedTextureDatas[i].mMeshes.clear();
-
- for (morph_list_t::iterator iter2 = mBakedTextureDatas[i].mMaskedMorphs.begin();
- iter2 != mBakedTextureDatas[i].mMaskedMorphs.end(); iter2++)
- {
- LLMaskedMorph* masked_morph = (*iter2);
- delete masked_morph;
- }
- }
-
std::for_each(mAttachmentPoints.begin(), mAttachmentPoints.end(), DeletePairedPointer());
mAttachmentPoints.clear();
- deleteAndClear(mTexSkinColor);
- deleteAndClear(mTexHairColor);
- deleteAndClear(mTexEyeColor);
-
- std::for_each(mMeshes.begin(), mMeshes.end(), DeletePairedPointer());
- mMeshes.clear();
-
- for (std::vector<LLViewerJoint*>::iterator jointIter = mMeshLOD.begin();
- jointIter != mMeshLOD.end();
- ++jointIter)
- {
- LLViewerJoint* joint = (LLViewerJoint *) *jointIter;
- std::for_each(joint->mMeshParts.begin(), joint->mMeshParts.end(), DeletePointer());
- joint->mMeshParts.clear();
- }
- std::for_each(mMeshLOD.begin(), mMeshLOD.end(), DeletePointer());
- mMeshLOD.clear();
-
mDead = TRUE;
mAnimationSources.clear();
@@ -912,7 +862,7 @@ BOOL LLVOAvatar::isFullyTextured() const
{
for (S32 i = 0; i < mMeshLOD.size(); i++)
{
- LLViewerJoint* joint = (LLViewerJoint*) mMeshLOD[i];
+ LLAvatarJoint* joint = mMeshLOD[i];
if (i==MESH_ID_SKIRT && !isWearingWearableType(LLWearableType::WT_SKIRT))
{
continue; // don't care about skirt textures if we're not wearing one.
@@ -921,19 +871,19 @@ BOOL LLVOAvatar::isFullyTextured() const
{
continue; // nonexistent LOD OK.
}
- std::vector<LLViewerJointMesh*>::iterator meshIter = joint->mMeshParts.begin();
+ avatar_joint_mesh_list_t::iterator meshIter = joint->mMeshParts.begin();
if (meshIter != joint->mMeshParts.end())
{
- LLViewerJointMesh *mesh = (LLViewerJointMesh *) *meshIter;
+ LLAvatarJointMesh *mesh = (*meshIter);
if (!mesh)
{
continue; // nonexistent mesh OK
}
- if (mesh->mTexture.notNull() && mesh->mTexture->hasGLTexture())
+ if (mesh->hasGLTexture())
{
continue; // Mesh exists and has a baked texture.
}
- if (mesh->mLayerSet && mesh->mLayerSet->hasComposite())
+ if (mesh->hasComposite())
{
continue; // Mesh exists and has a composite texture.
}
@@ -952,6 +902,7 @@ BOOL LLVOAvatar::hasGray() const
S32 LLVOAvatar::getRezzedStatus() const
{
if (getIsCloud()) return 0;
+ if (isFullyTextured() && allBakedTexturesCompletelyDownloaded()) return 3;
if (isFullyTextured()) return 2;
llassert(hasGray());
return 1; // gray
@@ -1007,7 +958,7 @@ BOOL LLVOAvatar::areAllNearbyInstancesBaked(S32& grey_avatars)
void LLVOAvatar::getNearbyRezzedStats(std::vector<S32>& counts)
{
counts.clear();
- counts.resize(3);
+ counts.resize(4);
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
iter != LLCharacter::sInstances.end(); ++iter)
{
@@ -1025,6 +976,7 @@ std::string LLVOAvatar::rezStatusToString(S32 rez_status)
if (rez_status==0) return "cloud";
if (rez_status==1) return "gray";
if (rez_status==2) return "textured";
+ if (rez_status==3) return "textured_and_downloaded";
return "unknown";
}
@@ -1086,15 +1038,15 @@ void LLVOAvatar::dumpBakedStatus()
{
llcont << " Unbaked (";
- for (LLVOAvatarDictionary::BakedTextures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++iter)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = iter->second;
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = iter->second;
const ETextureIndex index = baked_dict->mTextureIndex;
if (!inst->isTextureDefined(index))
{
- llcont << " " << LLVOAvatarDictionary::getInstance()->getTexture(index)->mName;
+ llcont << " " << LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mName;
}
}
llcont << " ) " << inst->getUnbakedPixelAreaRank();
@@ -1115,7 +1067,7 @@ void LLVOAvatar::restoreGL()
gAgentAvatarp->setCompositeUpdatesEnabled(TRUE);
for (U32 i = 0; i < gAgentAvatarp->mBakedTextureDatas.size(); i++)
{
- gAgentAvatarp->invalidateComposite(gAgentAvatarp->mBakedTextureDatas[i].mTexLayerSet, FALSE);
+ gAgentAvatarp->invalidateComposite(gAgentAvatarp->getTexLayerSet(i), FALSE);
}
gAgentAvatarp->updateMeshTextures();
}
@@ -1142,7 +1094,7 @@ void LLVOAvatar::resetImpostors()
// static
void LLVOAvatar::deleteCachedImages(bool clearAll)
{
- if (LLTexLayerSet::sHasCaches)
+ if (LLViewerTexLayerSet::sHasCaches)
{
lldebugs << "Deleting layer set caches" << llendl;
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
@@ -1151,7 +1103,7 @@ void LLVOAvatar::deleteCachedImages(bool clearAll)
LLVOAvatar* inst = (LLVOAvatar*) *iter;
inst->deleteLayerSetCaches(clearAll);
}
- LLTexLayerSet::sHasCaches = FALSE;
+ LLViewerTexLayerSet::sHasCaches = FALSE;
}
LLVOAvatarSelf::deleteScratchTextures();
LLTexLayerStaticImageList::getInstance()->deleteCachedImages();
@@ -1164,97 +1116,6 @@ void LLVOAvatar::deleteCachedImages(bool clearAll)
//------------------------------------------------------------------------
void LLVOAvatar::initClass()
{
- std::string xmlFile;
-
- xmlFile = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,AVATAR_DEFAULT_CHAR) + "_lad.xml";
- BOOL success = sXMLTree.parseFile( xmlFile, FALSE );
- if (!success)
- {
- llerrs << "Problem reading avatar configuration file:" << xmlFile << llendl;
- }
-
- // now sanity check xml file
- LLXmlTreeNode* root = sXMLTree.getRoot();
- if (!root)
- {
- llerrs << "No root node found in avatar configuration file: " << xmlFile << llendl;
- return;
- }
-
- //-------------------------------------------------------------------------
- // <linden_avatar version="1.0"> (root)
- //-------------------------------------------------------------------------
- if( !root->hasName( "linden_avatar" ) )
- {
- llerrs << "Invalid avatar file header: " << xmlFile << llendl;
- }
-
- std::string version;
- static LLStdStringHandle version_string = LLXmlTree::addAttributeString("version");
- if( !root->getFastAttributeString( version_string, version ) || (version != "1.0") )
- {
- llerrs << "Invalid avatar file version: " << version << " in file: " << xmlFile << llendl;
- }
-
- S32 wearable_def_version = 1;
- static LLStdStringHandle wearable_definition_version_string = LLXmlTree::addAttributeString("wearable_definition_version");
- root->getFastAttributeS32( wearable_definition_version_string, wearable_def_version );
- LLWearable::setCurrentDefinitionVersion( wearable_def_version );
-
- std::string mesh_file_name;
-
- LLXmlTreeNode* skeleton_node = root->getChildByName( "skeleton" );
- if (!skeleton_node)
- {
- llerrs << "No skeleton in avatar configuration file: " << xmlFile << llendl;
- return;
- }
-
- std::string skeleton_file_name;
- static LLStdStringHandle file_name_string = LLXmlTree::addAttributeString("file_name");
- if (!skeleton_node->getFastAttributeString(file_name_string, skeleton_file_name))
- {
- llerrs << "No file name in skeleton node in avatar config file: " << xmlFile << llendl;
- }
-
- std::string skeleton_path;
- skeleton_path = gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,skeleton_file_name);
- if (!parseSkeletonFile(skeleton_path))
- {
- llerrs << "Error parsing skeleton file: " << skeleton_path << llendl;
- }
-
- // parse avatar_lad.xml
- if (sAvatarXmlInfo)
- { //this can happen if a login attempt failed
- deleteAndClear(sAvatarXmlInfo);
- }
- sAvatarXmlInfo = new LLVOAvatarXmlInfo;
- if (!sAvatarXmlInfo->parseXmlSkeletonNode(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
- if (!sAvatarXmlInfo->parseXmlMeshNodes(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
- if (!sAvatarXmlInfo->parseXmlColorNodes(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
- if (!sAvatarXmlInfo->parseXmlLayerNodes(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
- if (!sAvatarXmlInfo->parseXmlDriverNodes(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
- if (!sAvatarXmlInfo->parseXmlMorphNodes(root))
- {
- llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
- }
-
gAnimLibrary.animStateSetString(ANIM_AGENT_BODY_NOISE,"body_noise");
gAnimLibrary.animStateSetString(ANIM_AGENT_BREATHE_ROT,"breathe_rot");
gAnimLibrary.animStateSetString(ANIM_AGENT_PHYSICS_MOTION,"physics_motion");
@@ -1271,85 +1132,12 @@ void LLVOAvatar::initClass()
void LLVOAvatar::cleanupClass()
{
- deleteAndClear(sAvatarXmlInfo);
- sSkeletonXMLTree = NULL;
- sXMLTree.cleanup();
}
+// virtual
void LLVOAvatar::initInstance(void)
{
//-------------------------------------------------------------------------
- // initialize joint, mesh and shape members
- //-------------------------------------------------------------------------
- mRoot.setName( "mRoot" );
-
- for (LLVOAvatarDictionary::Meshes::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
- iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
- ++iter)
- {
- const EMeshIndex mesh_index = iter->first;
- const LLVOAvatarDictionary::MeshEntry *mesh_dict = iter->second;
- LLViewerJoint* joint = new LLViewerJoint();
- joint->setName(mesh_dict->mName);
- joint->setMeshID(mesh_index);
- mMeshLOD.push_back(joint);
-
- /* mHairLOD.setName("mHairLOD");
- mHairMesh0.setName("mHairMesh0");
- mHairMesh0.setMeshID(MESH_ID_HAIR);
- mHairMesh1.setName("mHairMesh1"); */
- for (U32 lod = 0; lod < mesh_dict->mLOD; lod++)
- {
- LLViewerJointMesh* mesh = new LLViewerJointMesh();
- std::string mesh_name = "m" + mesh_dict->mName + boost::lexical_cast<std::string>(lod);
- // We pre-pended an m - need to capitalize first character for camelCase
- mesh_name[1] = toupper(mesh_name[1]);
- mesh->setName(mesh_name);
- mesh->setMeshID(mesh_index);
- mesh->setPickName(mesh_dict->mPickName);
- mesh->setIsTransparent(FALSE);
- switch((int)mesh_index)
- {
- case MESH_ID_HAIR:
- mesh->setIsTransparent(TRUE);
- break;
- case MESH_ID_SKIRT:
- mesh->setIsTransparent(TRUE);
- break;
- case MESH_ID_EYEBALL_LEFT:
- case MESH_ID_EYEBALL_RIGHT:
- mesh->setSpecular( LLColor4( 1.0f, 1.0f, 1.0f, 1.0f ), 1.f );
- break;
- }
-
- joint->mMeshParts.push_back(mesh);
- }
- }
-
- //-------------------------------------------------------------------------
- // associate baked textures with meshes
- //-------------------------------------------------------------------------
- for (LLVOAvatarDictionary::Meshes::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
- iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
- ++iter)
- {
- const EMeshIndex mesh_index = iter->first;
- const LLVOAvatarDictionary::MeshEntry *mesh_dict = iter->second;
- const EBakedTextureIndex baked_texture_index = mesh_dict->mBakedID;
- // Skip it if there's no associated baked texture.
- if (baked_texture_index == BAKED_NUM_INDICES) continue;
-
- for (std::vector<LLViewerJointMesh* >::iterator iter = mMeshLOD[mesh_index]->mMeshParts.begin();
- iter != mMeshLOD[mesh_index]->mMeshParts.end();
- ++iter)
- {
- LLViewerJointMesh* mesh = (LLViewerJointMesh*) *iter;
- mBakedTextureDatas[(int)baked_texture_index].mMeshes.push_back(mesh);
- }
- }
-
-
- //-------------------------------------------------------------------------
// register motions
//-------------------------------------------------------------------------
if (LLCharacter::sInstances.size() == 1)
@@ -1407,10 +1195,9 @@ void LLVOAvatar::initInstance(void)
registerMotion( ANIM_AGENT_SIT_FEMALE, LLKeyframeMotion::create );
registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create );
registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create );
-
}
-
- buildCharacter();
+
+ LLAvatarAppearance::initInstance();
// preload specific motions here
createMotion( ANIM_AGENT_CUSTOMIZE);
@@ -1419,7 +1206,30 @@ void LLVOAvatar::initInstance(void)
//VTPause(); // VTune
mVoiceVisualizer->setVoiceEnabled( LLVoiceClient::getInstance()->getVoiceEnabled( mID ) );
+}
+
+// virtual
+LLAvatarJoint* LLVOAvatar::createAvatarJoint()
+{
+ return new LLViewerJoint();
+}
+// virtual
+LLAvatarJoint* LLVOAvatar::createAvatarJoint(S32 joint_num)
+{
+ return new LLViewerJoint(joint_num);
+}
+
+// virtual
+LLAvatarJointMesh* LLVOAvatar::createAvatarJointMesh()
+{
+ return new LLViewerJointMesh();
+}
+
+// virtual
+LLTexLayerSet* LLVOAvatar::createTexLayerSet()
+{
+ return new LLViewerTexLayerSet(this);
}
const LLVector3 LLVOAvatar::getRenderPosition() const
@@ -1494,7 +1304,7 @@ void LLVOAvatar::getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)
float max_attachment_span = get_default_max_prim_scale() * 5.0f;
//stretch bounding box by joint positions
- for (polymesh_map_t::iterator i = mMeshes.begin(); i != mMeshes.end(); ++i)
+ for (polymesh_map_t::iterator i = mPolyMeshes.begin(); i != mPolyMeshes.end(); ++i)
{
LLPolyMesh* mesh = i->second;
for (S32 joint_num = 0; joint_num < mesh->mJointRenderData.count(); joint_num++)
@@ -1732,149 +1542,7 @@ LLViewerObject* LLVOAvatar::lineSegmentIntersectRiggedAttachments(const LLVector
return hit;
}
-//-----------------------------------------------------------------------------
-// parseSkeletonFile()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::parseSkeletonFile(const std::string& filename)
-{
- //-------------------------------------------------------------------------
- // parse the file
- //-------------------------------------------------------------------------
-
- LLXMLNodePtr skeleton_xml;
- BOOL parsesuccess = LLXMLNode::parseFile(filename, skeleton_xml, NULL);
-
- if (!parsesuccess || skeleton_xml.isNull())
- {
- llerrs << "Can't parse skeleton file: " << filename << llendl;
- return FALSE;
- }
-
- // Process XML data
- if (sAvatarSkeletonInfo)
- { //this can happen if a login attempt failed
- delete sAvatarSkeletonInfo;
- }
- sAvatarSkeletonInfo = new LLVOAvatarSkeletonInfo;
-
- LLXUIParser parser;
- parser.readXUI(skeleton_xml, *sAvatarSkeletonInfo, filename);
- if (!sAvatarSkeletonInfo->validateBlock())
- {
- llerrs << "Error parsing skeleton XML file: " << filename << llendl;
- }
-
- if( !skeleton_xml->hasName( "linden_skeleton" ) )
- {
- llerrs << "Invalid avatar skeleton file header: " << filename << llendl;
- return FALSE;
- }
-
- if (sAvatarSkeletonInfo->version() != "1.0")
- {
- llerrs << "Invalid avatar skeleton file version: " << sAvatarSkeletonInfo->version() << " in file: " << filename << llendl;
- return FALSE;
- }
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// setupBone()
-//-----------------------------------------------------------
-BOOL LLVOAvatar::setupBone(const LLVOAvatarChildJoint& info, LLViewerJoint* parent, S32 &volume_num, S32 &joint_num)
-{
- LLViewerJoint* joint = NULL;
- if (info.bone.isChosen())
- {
- joint = (LLViewerJoint*)getCharacterJoint(joint_num);
- if (!joint)
- {
- llwarns << "Too many bones" << llendl;
- return FALSE;
- }
- joint->setName( info.bone().name );
- joint->setPosition(info.bone().pos);
- joint->setRotation(mayaQ(info.bone().rot().mV[VX], info.bone().rot().mV[VY], info.bone().rot().mV[VZ], LLQuaternion::XYZ));
- joint->setScale(info.bone().scale);
- joint->setSkinOffset( info.bone().pivot );
- joint_num++;
-
- for (LLInitParam::ParamIterator<LLVOAvatarChildJoint>::const_iterator child_it = info.bone().children.begin(),
- end_it = info.bone().children.end();
- child_it != end_it;
- ++child_it)
- {
- if (!setupBone(*child_it, joint, volume_num, joint_num))
- {
- return FALSE;
- }
- }
- }
- else // collision volume
- {
- if (volume_num >= (S32)mNumCollisionVolumes)
- {
- llwarns << "Too many bones" << llendl;
- return FALSE;
- }
- joint = (LLViewerJoint*)(&mCollisionVolumes[volume_num]);
- joint->setName( info.collision_volume.name);
- joint->setPosition(info.collision_volume.pos);
- joint->setRotation(mayaQ(info.collision_volume.rot().mV[VX], info.collision_volume.rot().mV[VY], info.collision_volume.rot().mV[VZ], LLQuaternion::XYZ));
- joint->setScale(info.collision_volume.scale);
- volume_num++;
- }
-
- // add to parent
- if (parent)
- {
- parent->addChild( joint );
- }
-
- joint->setDefaultFromCurrentXform();
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// buildSkeleton()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::buildSkeleton(const LLVOAvatarSkeletonInfo *info)
-{
- //-------------------------------------------------------------------------
- // allocate joints
- //-------------------------------------------------------------------------
- if (!allocateCharacterJoints(info->num_bones))
- {
- llerrs << "Can't allocate " << info->num_bones() << " joints" << llendl;
- return FALSE;
- }
- //-------------------------------------------------------------------------
- // allocate volumes
- //-------------------------------------------------------------------------
- if (info->num_collision_volumes)
- {
- if (!allocateCollisionVolumes(info->num_collision_volumes))
- {
- llerrs << "Can't allocate " << info->num_collision_volumes() << " collision volumes" << llendl;
- return FALSE;
- }
- }
-
- S32 current_joint_num = 0;
- S32 current_volume_num = 0;
-
- if (!setupBone(info->skeleton_root, NULL, current_volume_num, current_joint_num))
- {
- llerrs << "Error parsing bone in skeleton file" << llendl;
- return FALSE;
- }
-
- return TRUE;
-}
-
LLVOAvatar* LLVOAvatar::asAvatar()
{
return this;
@@ -1906,114 +1574,15 @@ void LLVOAvatar::startDefaultMotions()
// LLVOAvatar::buildCharacter()
// Deferred initialization and rebuild of the avatar.
//-----------------------------------------------------------------------------
+// virtual
void LLVOAvatar::buildCharacter()
{
- //-------------------------------------------------------------------------
- // remove all references to our existing skeleton
- // so we can rebuild it
- //-------------------------------------------------------------------------
- flushAllMotions();
+ LLAvatarAppearance::buildCharacter();
- //-------------------------------------------------------------------------
- // remove all of mRoot's children
- //-------------------------------------------------------------------------
- mRoot.removeAllChildren();
- mJointMap.clear();
+ // Not done building yet; more to do.
mIsBuilt = FALSE;
//-------------------------------------------------------------------------
- // clear mesh data
- //-------------------------------------------------------------------------
- for (std::vector<LLViewerJoint*>::iterator jointIter = mMeshLOD.begin();
- jointIter != mMeshLOD.end(); ++jointIter)
- {
- LLViewerJoint* joint = (LLViewerJoint*) *jointIter;
- for (std::vector<LLViewerJointMesh*>::iterator meshIter = joint->mMeshParts.begin();
- meshIter != joint->mMeshParts.end(); ++meshIter)
- {
- LLViewerJointMesh * mesh = (LLViewerJointMesh *) *meshIter;
- mesh->setMesh(NULL);
- }
- }
-
- //-------------------------------------------------------------------------
- // (re)load our skeleton and meshes
- //-------------------------------------------------------------------------
- LLTimer timer;
-
- BOOL status = loadAvatar();
- stop_glerror();
-
-// gPrintMessagesThisFrame = TRUE;
- lldebugs << "Avatar load took " << timer.getElapsedTimeF32() << " seconds." << llendl;
-
- if (!status)
- {
- if (isSelf())
- {
- llerrs << "Unable to load user's avatar" << llendl;
- }
- else
- {
- llwarns << "Unable to load other's avatar" << llendl;
- }
- return;
- }
-
- //-------------------------------------------------------------------------
- // initialize "well known" joint pointers
- //-------------------------------------------------------------------------
- mPelvisp = (LLViewerJoint*)mRoot.findJoint("mPelvis");
- mTorsop = (LLViewerJoint*)mRoot.findJoint("mTorso");
- mChestp = (LLViewerJoint*)mRoot.findJoint("mChest");
- mNeckp = (LLViewerJoint*)mRoot.findJoint("mNeck");
- mHeadp = (LLViewerJoint*)mRoot.findJoint("mHead");
- mSkullp = (LLViewerJoint*)mRoot.findJoint("mSkull");
- mHipLeftp = (LLViewerJoint*)mRoot.findJoint("mHipLeft");
- mHipRightp = (LLViewerJoint*)mRoot.findJoint("mHipRight");
- mKneeLeftp = (LLViewerJoint*)mRoot.findJoint("mKneeLeft");
- mKneeRightp = (LLViewerJoint*)mRoot.findJoint("mKneeRight");
- mAnkleLeftp = (LLViewerJoint*)mRoot.findJoint("mAnkleLeft");
- mAnkleRightp = (LLViewerJoint*)mRoot.findJoint("mAnkleRight");
- mFootLeftp = (LLViewerJoint*)mRoot.findJoint("mFootLeft");
- mFootRightp = (LLViewerJoint*)mRoot.findJoint("mFootRight");
- mWristLeftp = (LLViewerJoint*)mRoot.findJoint("mWristLeft");
- mWristRightp = (LLViewerJoint*)mRoot.findJoint("mWristRight");
- mEyeLeftp = (LLViewerJoint*)mRoot.findJoint("mEyeLeft");
- mEyeRightp = (LLViewerJoint*)mRoot.findJoint("mEyeRight");
-
- //-------------------------------------------------------------------------
- // Make sure "well known" pointers exist
- //-------------------------------------------------------------------------
- if (!(mPelvisp &&
- mTorsop &&
- mChestp &&
- mNeckp &&
- mHeadp &&
- mSkullp &&
- mHipLeftp &&
- mHipRightp &&
- mKneeLeftp &&
- mKneeRightp &&
- mAnkleLeftp &&
- mAnkleRightp &&
- mFootLeftp &&
- mFootRightp &&
- mWristLeftp &&
- mWristRightp &&
- mEyeLeftp &&
- mEyeRightp))
- {
- llerrs << "Failed to create avatar." << llendl;
- return;
- }
-
- //-------------------------------------------------------------------------
- // initialize the pelvis
- //-------------------------------------------------------------------------
- mPelvisp->setPosition( LLVector3(0.0f, 0.0f, 0.0f) );
-
- //-------------------------------------------------------------------------
// set head offset from pelvis
//-------------------------------------------------------------------------
updateHeadOffset();
@@ -2065,11 +1634,11 @@ void LLVOAvatar::releaseMeshData()
//llinfos << "Releasing" << llendl;
// cleanup mesh data
- for (std::vector<LLViewerJoint*>::iterator iter = mMeshLOD.begin();
+ for (avatar_joint_list_t::iterator iter = mMeshLOD.begin();
iter != mMeshLOD.end();
++iter)
{
- LLViewerJoint* joint = (LLViewerJoint*) *iter;
+ LLAvatarJoint* joint = (*iter);
joint->setValid(FALSE, TRUE);
}
@@ -2158,7 +1727,11 @@ void LLVOAvatar::updateMeshData()
last_v_num = num_vertices ;
last_i_num = num_indices ;
- mMeshLOD[part_index++]->updateFaceSizes(num_vertices, num_indices, mAdjustedPixelArea);
+ LLViewerJoint* part_mesh = getViewerJoint(part_index++);
+ if (part_mesh)
+ {
+ part_mesh->updateFaceSizes(num_vertices, num_indices, mAdjustedPixelArea);
+ }
}
if(num_vertices < 1)//skip empty meshes
{
@@ -2232,7 +1805,11 @@ void LLVOAvatar::updateMeshData()
rigid = true;
}
- mMeshLOD[k]->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR, terse_update && !rigid);
+ LLViewerJoint* mesh = getViewerJoint(k);
+ if (mesh)
+ {
+ mesh->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR, terse_update && !rigid);
+ }
}
stop_glerror();
@@ -2253,72 +1830,6 @@ void LLVOAvatar::updateMeshData()
//------------------------------------------------------------------------
//------------------------------------------------------------------------
-// The viewer can only suggest a good size for the agent,
-// the simulator will keep it inside a reasonable range.
-void LLVOAvatar::computeBodySize()
-{
- LLVector3 pelvis_scale = mPelvisp->getScale();
-
- // some of the joints have not been cached
- LLVector3 skull = mSkullp->getPosition();
- LLVector3 skull_scale = mSkullp->getScale();
-
- LLVector3 neck = mNeckp->getPosition();
- LLVector3 neck_scale = mNeckp->getScale();
-
- LLVector3 chest = mChestp->getPosition();
- LLVector3 chest_scale = mChestp->getScale();
-
- // the rest of the joints have been cached
- LLVector3 head = mHeadp->getPosition();
- LLVector3 head_scale = mHeadp->getScale();
-
- LLVector3 torso = mTorsop->getPosition();
- LLVector3 torso_scale = mTorsop->getScale();
-
- LLVector3 hip = mHipLeftp->getPosition();
- LLVector3 hip_scale = mHipLeftp->getScale();
-
- LLVector3 knee = mKneeLeftp->getPosition();
- LLVector3 knee_scale = mKneeLeftp->getScale();
-
- LLVector3 ankle = mAnkleLeftp->getPosition();
- LLVector3 ankle_scale = mAnkleLeftp->getScale();
-
- LLVector3 foot = mFootLeftp->getPosition();
-
- mPelvisToFoot = hip.mV[VZ] * pelvis_scale.mV[VZ] -
- knee.mV[VZ] * hip_scale.mV[VZ] -
- ankle.mV[VZ] * knee_scale.mV[VZ] -
- foot.mV[VZ] * ankle_scale.mV[VZ];
-
- LLVector3 new_body_size;
- new_body_size.mV[VZ] = mPelvisToFoot +
- // the sqrt(2) correction below is an approximate
- // correction to get to the top of the head
- F_SQRT2 * (skull.mV[VZ] * head_scale.mV[VZ]) +
- head.mV[VZ] * neck_scale.mV[VZ] +
- neck.mV[VZ] * chest_scale.mV[VZ] +
- chest.mV[VZ] * torso_scale.mV[VZ] +
- torso.mV[VZ] * pelvis_scale.mV[VZ];
-
- // TODO -- measure the real depth and width
- new_body_size.mV[VX] = DEFAULT_AGENT_DEPTH;
- new_body_size.mV[VY] = DEFAULT_AGENT_WIDTH;
-
- if (new_body_size != mBodySize)
- {
- mBodySize = new_body_size;
-
- if (isSelf() && !LLAppearanceMgr::instance().isInUpdateAppearanceFromCOF())
- { // notify simulator of change in size
- // but not if we are in the middle of updating appearance
- gAgent.sendAgentSetAppearance();
- }
- }
-}
-
-//------------------------------------------------------------------------
// LLVOAvatar::processUpdateMessage()
//------------------------------------------------------------------------
U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
@@ -2326,7 +1837,6 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
U32 block_num, const EObjectUpdateType update_type,
LLDataPacker *dp)
{
- LLVector3 old_vel = getVelocity();
const BOOL has_name = !getNVPair("FirstName");
// Do base class updates...
@@ -2354,20 +1864,50 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
return retval;
}
-// virtual
-S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)
+LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUUID& uuid)
{
- // The core setTETexture() method requests images, so we need
- // to redirect certain avatar texture requests to different sims.
- if (isIndexBakedTexture((ETextureIndex)te))
+ LLViewerFetchedTexture *result = NULL;
+
+ if (uuid == IMG_DEFAULT_AVATAR ||
+ uuid == IMG_DEFAULT ||
+ uuid == IMG_INVISIBLE)
{
- LLHost target_host = getObjectHost();
- return setTETextureCore(te, uuid, target_host);
+ // Should already exist, don't need to find it on sim or baked-texture host.
+ result = gTextureList.findImage(uuid);
}
- else
+
+ if (!result)
{
- return setTETextureCore(te, uuid, LLHost::invalid);
+ const std::string url = getImageURL(te,uuid);
+ if (!url.empty())
+ {
+ LL_DEBUGS("Avatar") << avString() << "from URL " << url << llendl;
+ result = LLViewerTextureManager::getFetchedTextureFromUrl(
+ url, FTT_SERVER_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, uuid);
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << avString() << "from host " << uuid << llendl;
+ LLHost host = getObjectHost();
+ result = LLViewerTextureManager::getFetchedTexture(
+ uuid, FTT_HOST_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
+ }
}
+ return result;
+}
+
+// virtual
+S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)
+{
+ if (!isIndexBakedTexture((ETextureIndex)te))
+ {
+ // Sim still sends some uuids for non-baked slots sometimes - ignore.
+ return LLViewerObject::setTETexture(te, LLUUID::null);
+ }
+
+ LLViewerFetchedTexture *image = getBakedTextureImage(te,uuid);
+ llassert(image);
+ return setTETextureCore(te, image);
}
static LLFastTimer::DeclareTimer FTM_AVATAR_UPDATE("Avatar Update");
@@ -2413,7 +1953,8 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
return;
}
- if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_AVATAR)))
+ if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_AVATAR))
+ && !(gSavedSettings.getBOOL("DisableAllRenderTypes")))
{
return;
}
@@ -2478,7 +2019,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
// animate the character
// store off last frame's root position to be consistent with camera position
- LLVector3 root_pos_last = mRoot.getWorldPosition();
+ LLVector3 root_pos_last = mRoot->getWorldPosition();
BOOL detailed_update = updateCharacter(agent);
static LLUICachedControl<bool> visualizers_in_calls("ShowVoiceVisualizersInCalls", false);
@@ -2597,11 +2138,11 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
if ( mIsSitting )
{
LLVector3 headOffset = LLVector3( 0.0f, 0.0f, mHeadOffset.mV[2] );
- mVoiceVisualizer->setVoiceSourceWorldPosition( mRoot.getWorldPosition() + headOffset );
+ mVoiceVisualizer->setVoiceSourceWorldPosition( mRoot->getWorldPosition() + headOffset );
}
else
{
- LLVector3 tagPos = mRoot.getWorldPosition();
+ LLVector3 tagPos = mRoot->getWorldPosition();
tagPos[VZ] -= mPelvisToFoot;
tagPos[VZ] += ( mBodySize[VZ] + 0.125f );
mVoiceVisualizer->setVoiceSourceWorldPosition( tagPos );
@@ -3096,8 +2637,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
}
// Rebuild name tag if state change detected
- if (mNameString.empty()
- || (mNameString.size() == 2 && mNameString[0] == 10 && mNameString[1] == 10) // *TODO : find out why mNameString is sometimes ""
+ if (!mNameIsSet
|| new_name
|| (!title && !mTitle.empty())
|| (title && mTitle != title->getString())
@@ -3207,8 +2747,6 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
mNameText->setTextAlignment(LLHUDNameTag::ALIGN_TEXT_LEFT);
mNameText->setFadeDistance(CHAT_NORMAL_RADIUS * 2.f, 5.f);
- char line[MAX_STRING]; /* Flawfinder: ignore */
- line[0] = '\0';
std::deque<LLChat>::iterator chat_iter = mChats.begin();
mNameText->clearString();
@@ -3292,17 +2830,16 @@ void LLVOAvatar::addNameTagLine(const std::string& line, const LLColor4& color,
{
mNameText->addLine(line, color, (LLFontGL::StyleFlags)style, font);
}
- mNameString += line;
- mNameString += '\n';
+ mNameIsSet |= !line.empty();
}
void LLVOAvatar::clearNameTag()
{
- mNameString.clear();
+ mNameIsSet = false;
if (mNameText)
{
mNameText->setLabel("");
- mNameText->setString( "" );
+ mNameText->setString("");
}
mTimeVisible.reset();
}
@@ -3336,7 +2873,7 @@ void LLVOAvatar::invalidateNameTags()
// Compute name tag position during idle update
void LLVOAvatar::idleUpdateNameTagPosition(const LLVector3& root_pos_last)
{
- LLQuaternion root_rot = mRoot.getWorldRotation();
+ LLQuaternion root_rot = mRoot->getWorldRotation();
LLQuaternion inv_root_rot = ~root_rot;
LLVector3 pixel_right_vec;
LLVector3 pixel_up_vec;
@@ -3355,7 +2892,7 @@ void LLVOAvatar::idleUpdateNameTagPosition(const LLVector3& root_pos_last)
local_camera_up.scaleVec(avatar_ellipsoid);
local_camera_at.scaleVec(avatar_ellipsoid);
- LLVector3 head_offset = (mHeadp->getLastWorldPosition() - mRoot.getLastWorldPosition()) * inv_root_rot;
+ LLVector3 head_offset = (mHeadp->getLastWorldPosition() - mRoot->getLastWorldPosition()) * inv_root_rot;
if (dist_vec(head_offset, mTargetRootToHeadOffset) > NAMETAG_UPDATE_THRESHOLD)
{
@@ -3364,7 +2901,7 @@ void LLVOAvatar::idleUpdateNameTagPosition(const LLVector3& root_pos_last)
mCurRootToHeadOffset = lerp(mCurRootToHeadOffset, mTargetRootToHeadOffset, LLCriticalDamp::getInterpolant(0.2f));
- LLVector3 name_position = mRoot.getLastWorldPosition() + (mCurRootToHeadOffset * root_rot);
+ LLVector3 name_position = mRoot->getLastWorldPosition() + (mCurRootToHeadOffset * root_rot);
name_position += (local_camera_up * root_rot) - (projected_vec(local_camera_at * root_rot, camera_to_av));
name_position += pixel_up_vec * NAMETAG_VERTICAL_SCREEN_OFFSET;
@@ -3425,13 +2962,13 @@ void LLVOAvatar::idleUpdateBelowWater()
void LLVOAvatar::slamPosition()
{
gAgent.setPositionAgent(getPositionAgent());
- mRoot.setWorldPosition(getPositionAgent()); // teleport
+ mRoot->setWorldPosition(getPositionAgent()); // teleport
setChanged(TRANSLATED);
if (mDrawable.notNull())
{
gPipeline.updateMoveNormalAsync(mDrawable);
}
- mRoot.updateWorldMatrixChildren();
+ mRoot->updateWorldMatrixChildren();
}
bool LLVOAvatar::isVisuallyMuted() const
@@ -3452,6 +2989,47 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
{
// clear debug text
mDebugText.clear();
+
+ if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"))
+ {
+ S32 central_bake_version = -1;
+ if (getRegion())
+ {
+ central_bake_version = getRegion()->getCentralBakeVersion();
+ }
+ bool all_baked_downloaded = allBakedTexturesCompletelyDownloaded();
+ bool all_local_downloaded = allLocalTexturesCompletelyDownloaded();
+ std::string debug_line = llformat("%s%s - mLocal: %d, mEdit: %d, mUSB: %d, CBV: %d",
+ isSelf() ? (all_local_downloaded ? "L" : "l") : "-",
+ all_baked_downloaded ? "B" : "b",
+ mUseLocalAppearance, mIsEditingAppearance,
+ mUseServerBakes, central_bake_version);
+ std::string origin_string = bakedTextureOriginInfo();
+ debug_line += " [" + origin_string + "]";
+ S32 curr_cof_version = LLAppearanceMgr::instance().getCOFVersion();
+ S32 last_request_cof_version = mLastUpdateRequestCOFVersion;
+ S32 last_received_cof_version = mLastUpdateReceivedCOFVersion;
+ if (isSelf())
+ {
+ debug_line += llformat(" - cof: %d req: %d rcv:%d",
+ curr_cof_version, last_request_cof_version, last_received_cof_version);
+ if (gSavedSettings.getBOOL("DebugForceAppearanceRequestFailure"))
+ {
+ debug_line += " FORCING ERRS";
+ }
+ }
+ else
+ {
+ debug_line += llformat(" - cof rcv:%d", last_received_cof_version);
+ }
+ addDebugText(debug_line);
+ }
+ if (gSavedSettings.getBOOL("DebugAvatarCompositeBaked"))
+ {
+ if (!mBakedTextureDebugText.empty())
+ addDebugText(mBakedTextureDebugText);
+ }
+
if (LLVOAvatar::sShowAnimationDebug)
{
for (LLMotionController::motion_list_t::iterator iter = mMotionController.getActiveMotions().begin();
@@ -3588,8 +3166,6 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
xyVel.mV[VZ] = 0.0f;
speed = xyVel.length();
- BOOL throttle = TRUE;
-
if (!(mIsSitting && getParent()))
{
//--------------------------------------------------------------------
@@ -3600,11 +3176,10 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
if (mTimeLast == 0.0f)
{
mTimeLast = animation_time;
- throttle = FALSE;
// put the pelvis at slaved position/mRotation
- mRoot.setWorldPosition( getPositionAgent() ); // first frame
- mRoot.setWorldRotation( getRotation() );
+ mRoot->setWorldPosition( getPositionAgent() ); // first frame
+ mRoot->setWorldRotation( getRotation() );
}
//--------------------------------------------------------------------
@@ -3629,6 +3204,8 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
}
root_pos = gAgent.getPosGlobalFromAgent(getRenderPosition());
+ root_pos.mdV[VZ] += getVisualParamWeight(AVATAR_HOVER);
+
resolveHeightGlobal(root_pos, ground_under_pelvis, normal);
F32 foot_to_ground = (F32) (root_pos.mdV[VZ] - mPelvisToFoot - ground_under_pelvis.mdV[VZ]);
@@ -3647,10 +3224,10 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
LLVector3 newPosition = gAgent.getPosAgentFromGlobal(root_pos);
- if (newPosition != mRoot.getXform()->getWorldPosition())
+ if (newPosition != mRoot->getXform()->getWorldPosition())
{
- mRoot.touch();
- mRoot.setWorldPosition( newPosition ); // regular update
+ mRoot->touch();
+ mRoot->setWorldPosition( newPosition ); // regular update
}
@@ -3711,7 +3288,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
}
- LLQuaternion root_rotation = mRoot.getWorldMatrix().quaternion();
+ LLQuaternion root_rotation = mRoot->getWorldMatrix().quaternion();
F32 root_roll, root_pitch, root_yaw;
root_rotation.getEulerAngles(&root_roll, &root_pitch, &root_yaw);
@@ -3720,7 +3297,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
// and head turn. Once in motion, it must conform however.
BOOL self_in_mouselook = isSelf() && gAgentCamera.cameraMouselook();
- LLVector3 pelvisDir( mRoot.getWorldMatrix().getFwdRow4().mV );
+ LLVector3 pelvisDir( mRoot->getWorldMatrix().getFwdRow4().mV );
static LLCachedControl<F32> s_pelvis_rot_threshold_slow(gSavedSettings, "AvatarRotateThresholdSlow");
static LLCachedControl<F32> s_pelvis_rot_threshold_fast(gSavedSettings, "AvatarRotateThresholdFast");
@@ -3806,14 +3383,14 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
F32 u = llclamp((deltaTime / pelvis_lag_time), 0.0f, 1.0f);
- mRoot.setWorldRotation( slerp(u, mRoot.getWorldRotation(), wQv) );
+ mRoot->setWorldRotation( slerp(u, mRoot->getWorldRotation(), wQv) );
}
}
else if (mDrawable.notNull())
{
- mRoot.setPosition(mDrawable->getPosition());
- mRoot.setRotation(mDrawable->getRotation());
+ mRoot->setPosition(mDrawable->getPosition());
+ mRoot->setRotation(mDrawable->getRotation());
}
//-------------------------------------------------------------------------
@@ -3909,7 +3486,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
}
}
- mRoot.updateWorldMatrixChildren();
+ mRoot->updateWorldMatrixChildren();
if (!mDebugText.size() && mText.notNull())
{
@@ -3933,7 +3510,7 @@ void LLVOAvatar::updateHeadOffset()
{
// since we only care about Z, just grab one of the eyes
LLVector3 midEyePt = mEyeLeftp->getWorldPosition();
- midEyePt -= mDrawable.notNull() ? mDrawable->getWorldPosition() : mRoot.getWorldPosition();
+ midEyePt -= mDrawable.notNull() ? mDrawable->getWorldPosition() : mRoot->getWorldPosition();
midEyePt.mV[VZ] = llmax(-mPelvisToFoot + LLViewerCamera::getInstance()->getNear(), midEyePt.mV[VZ]);
if (mDrawable.notNull())
@@ -3971,8 +3548,8 @@ void LLVOAvatar::setPelvisOffset( bool hasOffset, const LLVector3& offsetAmount,
void LLVOAvatar::postPelvisSetRecalc( void )
{
computeBodySize();
- mRoot.touch();
- mRoot.updateWorldMatrixChildren();
+ mRoot->touch();
+ mRoot->updateWorldMatrixChildren();
dirtyMesh();
updateHeadOffset();
}
@@ -4120,7 +3697,7 @@ void LLVOAvatar::updateVisibility()
// private
bool LLVOAvatar::shouldAlphaMask()
{
- const bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha // Don't alpha mask if "Highlight Transparent" checked
+ const bool should_alpha_mask = !LLDrawPoolAlpha::sShowDebugAlpha // Don't alpha mask if "Highlight Transparent" checked
&& !LLDrawPoolAvatar::sSkipTransparent;
return should_alpha_mask;
@@ -4159,19 +3736,44 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
if (mNeedsSkin)
{
//generate animated mesh
- mMeshLOD[MESH_ID_LOWER_BODY]->updateJointGeometry();
- mMeshLOD[MESH_ID_UPPER_BODY]->updateJointGeometry();
+ LLViewerJoint* lower_mesh = getViewerJoint(MESH_ID_LOWER_BODY);
+ LLViewerJoint* upper_mesh = getViewerJoint(MESH_ID_UPPER_BODY);
+ LLViewerJoint* skirt_mesh = getViewerJoint(MESH_ID_SKIRT);
+ LLViewerJoint* eyelash_mesh = getViewerJoint(MESH_ID_EYELASH);
+ LLViewerJoint* head_mesh = getViewerJoint(MESH_ID_HEAD);
+ LLViewerJoint* hair_mesh = getViewerJoint(MESH_ID_HAIR);
+
+ if(upper_mesh)
+ {
+ upper_mesh->updateJointGeometry();
+ }
+ if (lower_mesh)
+ {
+ lower_mesh->updateJointGeometry();
+ }
if( isWearingWearableType( LLWearableType::WT_SKIRT ) )
{
- mMeshLOD[MESH_ID_SKIRT]->updateJointGeometry();
+ if(skirt_mesh)
+ {
+ skirt_mesh->updateJointGeometry();
+ }
}
if (!isSelf() || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
{
- mMeshLOD[MESH_ID_EYELASH]->updateJointGeometry();
- mMeshLOD[MESH_ID_HEAD]->updateJointGeometry();
- mMeshLOD[MESH_ID_HAIR]->updateJointGeometry();
+ if(eyelash_mesh)
+ {
+ eyelash_mesh->updateJointGeometry();
+ }
+ if(head_mesh)
+ {
+ head_mesh->updateJointGeometry();
+ }
+ if(hair_mesh)
+ {
+ hair_mesh->updateJointGeometry();
+ }
}
mNeedsSkin = FALSE;
mLastSkinTime = gFrameTimeSeconds;
@@ -4288,19 +3890,31 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
{
if (isTextureVisible(TEX_HEAD_BAKED) || mIsDummy)
{
- num_indices += mMeshLOD[MESH_ID_HEAD]->render(mAdjustedPixelArea, TRUE, mIsDummy);
+ LLViewerJoint* head_mesh = getViewerJoint(MESH_ID_HEAD);
+ if (head_mesh)
+ {
+ num_indices += head_mesh->render(mAdjustedPixelArea, TRUE, mIsDummy);
+ }
first_pass = FALSE;
}
}
if (isTextureVisible(TEX_UPPER_BAKED) || mIsDummy)
{
- num_indices += mMeshLOD[MESH_ID_UPPER_BODY]->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ LLViewerJoint* upper_mesh = getViewerJoint(MESH_ID_UPPER_BODY);
+ if (upper_mesh)
+ {
+ num_indices += upper_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ }
first_pass = FALSE;
}
if (isTextureVisible(TEX_LOWER_BAKED) || mIsDummy)
{
- num_indices += mMeshLOD[MESH_ID_LOWER_BODY]->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ LLViewerJoint* lower_mesh = getViewerJoint(MESH_ID_LOWER_BODY);
+ if (lower_mesh)
+ {
+ num_indices += lower_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ }
first_pass = FALSE;
}
}
@@ -4333,7 +3947,11 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
if( isWearingWearableType( LLWearableType::WT_SKIRT ) && (mIsDummy || isTextureVisible(TEX_SKIRT_BAKED)) )
{
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.25f);
- num_indices += mMeshLOD[MESH_ID_SKIRT]->render(mAdjustedPixelArea, FALSE);
+ LLViewerJoint* skirt_mesh = getViewerJoint(MESH_ID_SKIRT);
+ if (skirt_mesh)
+ {
+ num_indices += skirt_mesh->render(mAdjustedPixelArea, FALSE);
+ }
first_pass = FALSE;
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
}
@@ -4347,16 +3965,23 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
if (isTextureVisible(TEX_HEAD_BAKED))
{
- num_indices += mMeshLOD[MESH_ID_EYELASH]->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ LLViewerJoint* eyelash_mesh = getViewerJoint(MESH_ID_EYELASH);
+ if (eyelash_mesh)
+ {
+ num_indices += eyelash_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ }
first_pass = FALSE;
}
// Can't test for baked hair being defined, since that won't always be the case (not all viewers send baked hair)
// TODO: 1.25 will be able to switch this logic back to calling isTextureVisible();
-
- if ( getImage(TEX_HAIR_BAKED, 0)
- && getImage(TEX_HAIR_BAKED, 0)->getID() != IMG_INVISIBLE || LLDrawPoolAlpha::sShowDebugAlpha)
+ if ( getImage(TEX_HAIR_BAKED, 0) &&
+ getImage(TEX_HAIR_BAKED, 0)->getID() != IMG_INVISIBLE || LLDrawPoolAlpha::sShowDebugAlpha)
{
- num_indices += mMeshLOD[MESH_ID_HAIR]->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ LLViewerJoint* hair_mesh = getViewerJoint(MESH_ID_HAIR);
+ if (hair_mesh)
+ {
+ num_indices += hair_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy);
+ }
first_pass = FALSE;
}
if (LLPipeline::sImpostorRender)
@@ -4400,8 +4025,16 @@ U32 LLVOAvatar::renderRigid()
if (isTextureVisible(TEX_EYES_BAKED) || mIsDummy)
{
- num_indices += mMeshLOD[MESH_ID_EYEBALL_LEFT]->render(mAdjustedPixelArea, TRUE, mIsDummy);
- num_indices += mMeshLOD[MESH_ID_EYEBALL_RIGHT]->render(mAdjustedPixelArea, TRUE, mIsDummy);
+ LLViewerJoint* eyeball_left = getViewerJoint(MESH_ID_EYEBALL_LEFT);
+ LLViewerJoint* eyeball_right = getViewerJoint(MESH_ID_EYEBALL_RIGHT);
+ if (eyeball_left)
+ {
+ num_indices += eyeball_left->render(mAdjustedPixelArea, TRUE, mIsDummy);
+ }
+ if(eyeball_right)
+ {
+ num_indices += eyeball_right->render(mAdjustedPixelArea, TRUE, mIsDummy);
+ }
}
if (should_alpha_mask && !LLGLSLShader::sNoFixedFunction)
@@ -4448,11 +4081,224 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color, S32 diffuse_channel)
return 6;
}
-//------------------------------------------------------------------------
-// LLVOAvatar::updateTextures()
-//------------------------------------------------------------------------
+bool LLVOAvatar::allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const
+{
+ for (std::set<LLUUID>::const_iterator it = ids.begin(); it != ids.end(); ++it)
+ {
+ LLViewerFetchedTexture *imagep = gTextureList.findImage(*it);
+ if (imagep && imagep->getDiscardLevel()!=0)
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool LLVOAvatar::allLocalTexturesCompletelyDownloaded() const
+{
+ std::set<LLUUID> local_ids;
+ collectLocalTextureUUIDs(local_ids);
+ return allTexturesCompletelyDownloaded(local_ids);
+}
+
+bool LLVOAvatar::allBakedTexturesCompletelyDownloaded() const
+{
+ std::set<LLUUID> baked_ids;
+ collectBakedTextureUUIDs(baked_ids);
+ return allTexturesCompletelyDownloaded(baked_ids);
+}
+
+void LLVOAvatar::bakedTextureOriginCounts(S32 &sb_count, // server-bake, has origin URL.
+ S32 &host_count, // host-based bake, has host.
+ S32 &both_count, // error - both host and URL set.
+ S32 &neither_count) // error - neither set.
+{
+ sb_count = host_count = both_count = neither_count = 0;
+
+ std::set<LLUUID> baked_ids;
+ collectBakedTextureUUIDs(baked_ids);
+ for (std::set<LLUUID>::const_iterator it = baked_ids.begin(); it != baked_ids.end(); ++it)
+ {
+ LLViewerFetchedTexture *imagep = gTextureList.findImage(*it);
+ bool has_url = false, has_host = false;
+ if (!imagep->getUrl().empty())
+ {
+ has_url = true;
+ }
+ if (imagep->getTargetHost().isOk())
+ {
+ has_host = true;
+ }
+ if (has_url && !has_host) sb_count++;
+ else if (has_host && !has_url) host_count++;
+ else if (has_host && has_url) both_count++;
+ else if (!has_host && !has_url) neither_count++;
+ }
+}
+
+std::string LLVOAvatar::bakedTextureOriginInfo()
+{
+ std::string result;
+
+ std::set<LLUUID> baked_ids;
+ collectBakedTextureUUIDs(baked_ids);
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ ETextureIndex texture_index = mBakedTextureDatas[i].mTextureIndex;
+ LLViewerFetchedTexture *imagep =
+ LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index,0), TRUE);
+ if (!imagep ||
+ imagep->getID() == IMG_DEFAULT ||
+ imagep->getID() == IMG_DEFAULT_AVATAR)
+
+ {
+ result += "-";
+ }
+ else
+ {
+ bool has_url = false, has_host = false;
+ if (!imagep->getUrl().empty())
+ {
+ has_url = true;
+ }
+ if (imagep->getTargetHost().isOk())
+ {
+ has_host = true;
+ }
+ S32 discard = imagep->getDiscardLevel();
+ if (has_url && !has_host) result += discard ? "u" : "U"; // server-bake texture with url
+ else if (has_host && !has_url) result += discard ? "h" : "H"; // old-style texture on sim
+ else if (has_host && has_url) result += discard ? "x" : "X"; // both origins?
+ else if (!has_host && !has_url) result += discard ? "n" : "N"; // no origin?
+ if (discard != 0)
+ {
+ result += llformat("(%d/%d)",discard,imagep->getDesiredDiscardLevel());
+ }
+ }
+
+ }
+ return result;
+}
+
+S32 LLVOAvatar::totalTextureMemForUUIDS(std::set<LLUUID>& ids)
+{
+ S32 result = 0;
+ for (std::set<LLUUID>::const_iterator it = ids.begin(); it != ids.end(); ++it)
+ {
+ LLViewerFetchedTexture *imagep = gTextureList.findImage(*it);
+ if (imagep)
+ {
+ result += imagep->getTextureMemory();
+ }
+ }
+ return result;
+}
+
+void LLVOAvatar::collectLocalTextureUUIDs(std::set<LLUUID>& ids) const
+{
+ for (U32 texture_index = 0; texture_index < getNumTEs(); texture_index++)
+ {
+ LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)texture_index);
+ U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);
+
+ LLViewerFetchedTexture *imagep = NULL;
+ for (U32 wearable_index = 0; wearable_index < num_wearables; wearable_index++)
+ {
+ imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index, wearable_index), TRUE);
+ if (imagep)
+ {
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)texture_index);
+ if (texture_dict->mIsLocalTexture)
+ {
+ ids.insert(imagep->getID());
+ }
+ }
+ }
+ }
+ ids.erase(IMG_DEFAULT);
+ ids.erase(IMG_DEFAULT_AVATAR);
+ ids.erase(IMG_INVISIBLE);
+}
+
+void LLVOAvatar::collectBakedTextureUUIDs(std::set<LLUUID>& ids) const
+{
+ for (U32 texture_index = 0; texture_index < getNumTEs(); texture_index++)
+ {
+ LLViewerFetchedTexture *imagep = NULL;
+ if (isIndexBakedTexture((ETextureIndex) texture_index))
+ {
+ imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index,0), TRUE);
+ if (imagep)
+ {
+ ids.insert(imagep->getID());
+ }
+ }
+ }
+ ids.erase(IMG_DEFAULT);
+ ids.erase(IMG_DEFAULT_AVATAR);
+ ids.erase(IMG_INVISIBLE);
+}
+
+void LLVOAvatar::collectTextureUUIDs(std::set<LLUUID>& ids)
+{
+ collectLocalTextureUUIDs(ids);
+ collectBakedTextureUUIDs(ids);
+}
+
+void LLVOAvatar::releaseOldTextures()
+{
+ S32 current_texture_mem = 0;
+
+ // Any textures that we used to be using but are no longer using should no longer be flagged as "NO_DELETE"
+ std::set<LLUUID> baked_texture_ids;
+ collectBakedTextureUUIDs(baked_texture_ids);
+ S32 new_baked_mem = totalTextureMemForUUIDS(baked_texture_ids);
+
+ std::set<LLUUID> local_texture_ids;
+ collectLocalTextureUUIDs(local_texture_ids);
+ //S32 new_local_mem = totalTextureMemForUUIDS(local_texture_ids);
+
+ std::set<LLUUID> new_texture_ids;
+ new_texture_ids.insert(baked_texture_ids.begin(),baked_texture_ids.end());
+ new_texture_ids.insert(local_texture_ids.begin(),local_texture_ids.end());
+ S32 new_total_mem = totalTextureMemForUUIDS(new_texture_ids);
+
+ //S32 old_total_mem = totalTextureMemForUUIDS(mTextureIDs);
+ //LL_DEBUGS("Avatar") << getFullname() << " old_total_mem: " << old_total_mem << " new_total_mem (L/B): " << new_total_mem << " (" << new_local_mem <<", " << new_baked_mem << ")" << llendl;
+ if (!isSelf() && new_total_mem > new_baked_mem)
+ {
+ llwarns << "extra local textures stored for non-self av" << llendl;
+ }
+ for (std::set<LLUUID>::iterator it = mTextureIDs.begin(); it != mTextureIDs.end(); ++it)
+ {
+ if (new_texture_ids.find(*it) == new_texture_ids.end())
+ {
+ LLViewerFetchedTexture *imagep = gTextureList.findImage(*it);
+ if (imagep)
+ {
+ current_texture_mem += imagep->getTextureMemory();
+ if (imagep->getTextureState() == LLGLTexture::NO_DELETE)
+ {
+ // This will allow the texture to be deleted if not in use.
+ imagep->forceActive();
+
+ // This resets the clock to texture being flagged
+ // as unused, preventing the texture from being
+ // deleted immediately. If other avatars or
+ // objects are using it, it can still be flagged
+ // no-delete by them.
+ imagep->forceUpdateBindStats();
+ }
+ }
+ }
+ }
+ mTextureIDs = new_texture_ids;
+}
+
void LLVOAvatar::updateTextures()
{
+ releaseOldTextures();
+
BOOL render_avatar = TRUE;
if (mIsDummy)
@@ -4495,7 +4341,7 @@ void LLVOAvatar::updateTextures()
mHasGrey = FALSE; // debug
for (U32 texture_index = 0; texture_index < getNumTEs(); texture_index++)
{
- LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType((ETextureIndex)texture_index);
+ LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)texture_index);
U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);
const LLTextureEntry *te = getTE(texture_index);
@@ -4518,11 +4364,11 @@ void LLVOAvatar::updateTextures()
imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index, wearable_index), TRUE);
if (imagep)
{
- const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture((ETextureIndex)texture_index);
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)texture_index);
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
if (texture_dict->mIsLocalTexture)
{
- addLocalTextureStats((ETextureIndex)texture_index, imagep, texel_area_ratio, render_avatar, layer_baked[baked_index]);
+ addLocalTextureStats((ETextureIndex)texture_index, imagep, texel_area_ratio, render_avatar, mBakedTextureDatas[baked_index].mIsUsed);
}
}
}
@@ -4534,6 +4380,7 @@ void LLVOAvatar::updateTextures()
if (isIndexBakedTexture((ETextureIndex)texture_index)
&& imagep->getID() != IMG_DEFAULT_AVATAR
&& imagep->getID() != IMG_INVISIBLE
+ && !isUsingServerBakes()
&& !imagep->getTargetHost().isOk())
{
LL_WARNS_ONCE("Texture") << "LLVOAvatar::updateTextures No host for texture "
@@ -4554,7 +4401,7 @@ void LLVOAvatar::updateTextures()
void LLVOAvatar::addLocalTextureStats( ETextureIndex idx, LLViewerFetchedTexture* imagep,
- F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked, U32 index )
+ F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked)
{
// No local texture stats for non-self avatars
return;
@@ -4628,7 +4475,6 @@ void LLVOAvatar::addBakedTextureStats( LLViewerFetchedTexture* imagep, F32 pixel
//the texture pipeline will stop fetching this texture.
imagep->resetTextureStats();
- imagep->setCanUseHTTP(false) ; //turn off http fetching for baked textures.
imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
imagep->resetMaxVirtualSizeResetCounter() ;
@@ -4637,7 +4483,7 @@ void LLVOAvatar::addBakedTextureStats( LLViewerFetchedTexture* imagep, F32 pixel
imagep->addTextureStats(pixel_area / texel_area_ratio);
imagep->setBoostLevel(boost_level);
- if(boost_level != LLViewerTexture::BOOST_AVATAR_BAKED_SELF)
+ if(boost_level != LLGLTexture::BOOST_AVATAR_BAKED_SELF)
{
imagep->setAdditionalDecodePriority(ADDITIONAL_PRI) ;
}
@@ -4670,6 +4516,30 @@ void LLVOAvatar::setTexEntry(const U8 index, const LLTextureEntry &te)
setTE(index, te);
}
+const std::string LLVOAvatar::getImageURL(const U8 te, const LLUUID &uuid)
+{
+ llassert(isIndexBakedTexture(ETextureIndex(te)));
+ std::string url = "";
+ if (isUsingServerBakes())
+ {
+ const std::string& appearance_service_url = LLAppearanceMgr::instance().getAppearanceServiceURL();
+ if (appearance_service_url.empty())
+ {
+ // Probably a server-side issue if we get here:
+ llwarns << "AgentAppearanceServiceURL not set - Baked texture requests will fail" << llendl;
+ return url;
+ }
+
+ const LLAvatarAppearanceDictionary::TextureEntry* texture_entry = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)te);
+ if (texture_entry != NULL)
+ {
+ url = appearance_service_url + "texture/" + getID().asString() + "/" + texture_entry->mDefaultImageName + "/" + uuid.asString();
+ //llinfos << "baked texture url: " << url << llendl;
+ }
+ }
+ return url;
+}
+
//-----------------------------------------------------------------------------
// resolveHeight()
//-----------------------------------------------------------------------------
@@ -5011,48 +4881,6 @@ void LLVOAvatar::stopMotionFromSource(const LLUUID& source_id)
}
//-----------------------------------------------------------------------------
-// getVolumePos()
-//-----------------------------------------------------------------------------
-LLVector3 LLVOAvatar::getVolumePos(S32 joint_index, LLVector3& volume_offset)
-{
- if (joint_index > mNumCollisionVolumes)
- {
- return LLVector3::zero;
- }
-
- return mCollisionVolumes[joint_index].getVolumePos(volume_offset);
-}
-
-//-----------------------------------------------------------------------------
-// findCollisionVolume()
-//-----------------------------------------------------------------------------
-LLJoint* LLVOAvatar::findCollisionVolume(U32 volume_id)
-{
- if ((S32)volume_id > mNumCollisionVolumes)
- {
- return NULL;
- }
-
- return &mCollisionVolumes[volume_id];
-}
-
-//-----------------------------------------------------------------------------
-// findCollisionVolume()
-//-----------------------------------------------------------------------------
-S32 LLVOAvatar::getCollisionVolumeID(std::string &name)
-{
- for (S32 i = 0; i < mNumCollisionVolumes; i++)
- {
- if (mCollisionVolumes[i].getName() == name)
- {
- return i;
- }
- }
-
- return -1;
-}
-
-//-----------------------------------------------------------------------------
// addDebugText()
//-----------------------------------------------------------------------------
void LLVOAvatar::addDebugText(const std::string& text)
@@ -5081,7 +4909,7 @@ LLJoint *LLVOAvatar::getJoint( const std::string &name )
if (iter == mJointMap.end() || iter->second == NULL)
{ //search for joint and cache found joint in lookup table
- jointp = mRoot.findJoint(name);
+ jointp = mRoot->findJoint(name);
mJointMap[name] = jointp;
}
else
@@ -5097,10 +4925,12 @@ LLJoint *LLVOAvatar::getJoint( const std::string &name )
//-----------------------------------------------------------------------------
void LLVOAvatar::resetJointPositions( void )
{
- for(S32 i = 0; i < (S32)mNumJoints; ++i)
+ avatar_joint_list_t::iterator iter = mSkeleton.begin();
+ avatar_joint_list_t::iterator end = mSkeleton.end();
+ for (; iter != end; ++iter)
{
- mSkeleton[i].restoreOldXform();
- mSkeleton[i].setId( LLUUID::null );
+ (*iter)->restoreOldXform();
+ (*iter)->setId( LLUUID::null );
}
mHasPelvisOffset = false;
mPelvisFixup = mLastPelvisFixup;
@@ -5110,7 +4940,7 @@ void LLVOAvatar::resetJointPositions( void )
//-----------------------------------------------------------------------------
void LLVOAvatar::resetSpecificJointPosition( const std::string& name )
{
- LLJoint* pJoint = mRoot.findJoint( name );
+ LLJoint* pJoint = mRoot->findJoint( name );
if ( pJoint && pJoint->doesJointNeedToBeReset() )
{
@@ -5132,16 +4962,17 @@ void LLVOAvatar::resetSpecificJointPosition( const std::string& name )
//-----------------------------------------------------------------------------
void LLVOAvatar::resetJointPositionsToDefault( void )
{
-
//Subsequent joints are relative to pelvis
- for( S32 i = 0; i < (S32)mNumJoints; ++i )
+ avatar_joint_list_t::iterator iter = mSkeleton.begin();
+ avatar_joint_list_t::iterator end = mSkeleton.end();
+ for (; iter != end; ++iter)
{
- LLJoint* pJoint = (LLJoint*)&mSkeleton[i];
+ LLJoint* pJoint = (*iter);
if ( pJoint->doesJointNeedToBeReset() )
{
-
pJoint->setId( LLUUID::null );
//restore joints to default positions, however skip over the pelvis
+ // *TODO: How does this pointer check skip over pelvis?
if ( pJoint )
{
pJoint->restoreOldXform();
@@ -5240,23 +5071,6 @@ F32 LLVOAvatar::getPixelArea() const
}
-//-----------------------------------------------------------------------------
-// LLVOAvatar::getHeadMesh()
-//-----------------------------------------------------------------------------
-LLPolyMesh* LLVOAvatar::getHeadMesh()
-{
- return mMeshLOD[MESH_ID_HEAD]->mMeshParts[0]->getMesh();
-}
-
-
-//-----------------------------------------------------------------------------
-// LLVOAvatar::getUpperBodyMesh()
-//-----------------------------------------------------------------------------
-LLPolyMesh* LLVOAvatar::getUpperBodyMesh()
-{
- return mMeshLOD[MESH_ID_UPPER_BODY]->mMeshParts[0]->getMesh();
-}
-
//-----------------------------------------------------------------------------
// LLVOAvatar::getPosGlobalFromAgent()
@@ -5274,61 +5088,6 @@ LLVector3 LLVOAvatar::getPosAgentFromGlobal(const LLVector3d &position)
return gAgent.getPosAgentFromGlobal(position);
}
-//-----------------------------------------------------------------------------
-// allocateCharacterJoints()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::allocateCharacterJoints( U32 num )
-{
- deleteAndClearArray(mSkeleton);
- mNumJoints = 0;
-
- mSkeleton = new LLViewerJoint[num];
-
- for(S32 joint_num = 0; joint_num < (S32)num; joint_num++)
- {
- mSkeleton[joint_num].setJointNum(joint_num);
- }
-
- if (!mSkeleton)
- {
- return FALSE;
- }
-
- mNumJoints = num;
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// allocateCollisionVolumes()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::allocateCollisionVolumes( U32 num )
-{
- deleteAndClearArray(mCollisionVolumes);
- mNumCollisionVolumes = 0;
-
- mCollisionVolumes = new LLViewerJointCollisionVolume[num];
- if (!mCollisionVolumes)
- {
- return FALSE;
- }
-
- mNumCollisionVolumes = num;
- return TRUE;
-}
-
-
-//-----------------------------------------------------------------------------
-// getCharacterJoint()
-//-----------------------------------------------------------------------------
-LLJoint *LLVOAvatar::getCharacterJoint( U32 num )
-{
- if ((S32)num >= mNumJoints
- || (S32)num < 0)
- {
- return NULL;
- }
- return (LLJoint*)&mSkeleton[num];
-}
//-----------------------------------------------------------------------------
// requestStopMotion()
@@ -5340,215 +5099,24 @@ void LLVOAvatar::requestStopMotion( LLMotion* motion )
}
//-----------------------------------------------------------------------------
-// loadAvatar()
-//-----------------------------------------------------------------------------
-static LLFastTimer::DeclareTimer FTM_LOAD_AVATAR("Load Avatar");
-
-BOOL LLVOAvatar::loadAvatar()
-{
-// LLFastTimer t(FTM_LOAD_AVATAR);
-
- // avatar_skeleton.xml
- if( !buildSkeleton(sAvatarSkeletonInfo) )
- {
- llwarns << "avatar file: buildSkeleton() failed" << llendl;
- return FALSE;
- }
-
- // avatar_lad.xml : <skeleton>
- if( !loadSkeletonNode() )
- {
- llwarns << "avatar file: loadNodeSkeleton() failed" << llendl;
- return FALSE;
- }
-
- // avatar_lad.xml : <mesh>
- if( !loadMeshNodes() )
- {
- llwarns << "avatar file: loadNodeMesh() failed" << llendl;
- return FALSE;
- }
-
- // avatar_lad.xml : <global_color>
- if( sAvatarXmlInfo->mTexSkinColorInfo )
- {
- mTexSkinColor = new LLTexGlobalColor( this );
- if( !mTexSkinColor->setInfo( sAvatarXmlInfo->mTexSkinColorInfo ) )
- {
- llwarns << "avatar file: mTexSkinColor->setInfo() failed" << llendl;
- return FALSE;
- }
- }
- else
- {
- llwarns << "<global_color> name=\"skin_color\" not found" << llendl;
- return FALSE;
- }
- if( sAvatarXmlInfo->mTexHairColorInfo )
- {
- mTexHairColor = new LLTexGlobalColor( this );
- if( !mTexHairColor->setInfo( sAvatarXmlInfo->mTexHairColorInfo ) )
- {
- llwarns << "avatar file: mTexHairColor->setInfo() failed" << llendl;
- return FALSE;
- }
- }
- else
- {
- llwarns << "<global_color> name=\"hair_color\" not found" << llendl;
- return FALSE;
- }
- if( sAvatarXmlInfo->mTexEyeColorInfo )
- {
- mTexEyeColor = new LLTexGlobalColor( this );
- if( !mTexEyeColor->setInfo( sAvatarXmlInfo->mTexEyeColorInfo ) )
- {
- llwarns << "avatar file: mTexEyeColor->setInfo() failed" << llendl;
- return FALSE;
- }
- }
- else
- {
- llwarns << "<global_color> name=\"eye_color\" not found" << llendl;
- return FALSE;
- }
-
- // avatar_lad.xml : <layer_set>
- if (sAvatarXmlInfo->mLayerInfoList.empty())
- {
- llwarns << "avatar file: missing <layer_set> node" << llendl;
- return FALSE;
- }
-
- if (sAvatarXmlInfo->mMorphMaskInfoList.empty())
- {
- llwarns << "avatar file: missing <morph_masks> node" << llendl;
- return FALSE;
- }
-
- // avatar_lad.xml : <morph_masks>
- for (LLVOAvatarXmlInfo::morph_info_list_t::iterator iter = sAvatarXmlInfo->mMorphMaskInfoList.begin();
- iter != sAvatarXmlInfo->mMorphMaskInfoList.end();
- ++iter)
- {
- LLVOAvatarXmlInfo::LLVOAvatarMorphInfo *info = *iter;
-
- EBakedTextureIndex baked = LLVOAvatarDictionary::findBakedByRegionName(info->mRegion);
- if (baked != BAKED_NUM_INDICES)
- {
- LLPolyMorphTarget *morph_param;
- const std::string *name = &info->mName;
- morph_param = (LLPolyMorphTarget *)(getVisualParam(name->c_str()));
- if (morph_param)
- {
- BOOL invert = info->mInvert;
- addMaskedMorph(baked, morph_param, invert, info->mLayer);
- }
- }
-
- }
-
- loadLayersets();
-
- // avatar_lad.xml : <driver_parameters>
- for (LLVOAvatarXmlInfo::driver_info_list_t::iterator iter = sAvatarXmlInfo->mDriverInfoList.begin();
- iter != sAvatarXmlInfo->mDriverInfoList.end();
- ++iter)
- {
- LLDriverParamInfo *info = *iter;
- LLDriverParam* driver_param = new LLDriverParam( this );
- if (driver_param->setInfo(info))
- {
- addVisualParam( driver_param );
- LLVisualParam*(LLVOAvatar::*avatar_function)(S32)const = &LLVOAvatar::getVisualParam;
- if( !driver_param->linkDrivenParams(boost::bind(avatar_function,(LLVOAvatar*)this,_1 ), false))
- {
- llwarns << "could not link driven params for avatar " << this->getFullname() << " id: " << driver_param->getID() << llendl;
- continue;
- }
- }
- else
- {
- delete driver_param;
- llwarns << "avatar file: driver_param->parseData() failed" << llendl;
- return FALSE;
- }
- }
-
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
// loadSkeletonNode(): loads <skeleton> node from XML tree
//-----------------------------------------------------------------------------
+//virtual
BOOL LLVOAvatar::loadSkeletonNode ()
{
- mRoot.addChild( &mSkeleton[0] );
-
- for (std::vector<LLViewerJoint *>::iterator iter = mMeshLOD.begin();
- iter != mMeshLOD.end();
- ++iter)
- {
- LLViewerJoint *joint = (LLViewerJoint *) *iter;
- joint->mUpdateXform = FALSE;
- joint->setMeshesToChildren();
- }
-
- mRoot.addChild(mMeshLOD[MESH_ID_HEAD]);
- mRoot.addChild(mMeshLOD[MESH_ID_EYELASH]);
- mRoot.addChild(mMeshLOD[MESH_ID_UPPER_BODY]);
- mRoot.addChild(mMeshLOD[MESH_ID_LOWER_BODY]);
- mRoot.addChild(mMeshLOD[MESH_ID_SKIRT]);
- mRoot.addChild(mMeshLOD[MESH_ID_HEAD]);
-
- LLViewerJoint *skull = (LLViewerJoint*)mRoot.findJoint("mSkull");
- if (skull)
- {
- skull->addChild(mMeshLOD[MESH_ID_HAIR] );
- }
-
- LLViewerJoint *eyeL = (LLViewerJoint*)mRoot.findJoint("mEyeLeft");
- if (eyeL)
- {
- eyeL->addChild( mMeshLOD[MESH_ID_EYEBALL_LEFT] );
- }
-
- LLViewerJoint *eyeR = (LLViewerJoint*)mRoot.findJoint("mEyeRight");
- if (eyeR)
+ if (!LLAvatarAppearance::loadSkeletonNode())
{
- eyeR->addChild( mMeshLOD[MESH_ID_EYEBALL_RIGHT] );
+ return FALSE;
}
- // SKELETAL DISTORTIONS
- {
- LLVOAvatarXmlInfo::skeletal_distortion_info_list_t::iterator iter;
- for (iter = sAvatarXmlInfo->mSkeletalDistortionInfoList.begin();
- iter != sAvatarXmlInfo->mSkeletalDistortionInfoList.end();
- ++iter)
- {
- LLPolySkeletalDistortionInfo *info = *iter;
- LLPolySkeletalDistortion *param = new LLPolySkeletalDistortion(this);
- if (!param->setInfo(info))
- {
- delete param;
- return FALSE;
- }
- else
- {
- addVisualParam(param);
- }
- }
- }
-
// ATTACHMENTS
{
- LLVOAvatarXmlInfo::attachment_info_list_t::iterator iter;
+ LLAvatarXmlInfo::attachment_info_list_t::iterator iter;
for (iter = sAvatarXmlInfo->mAttachmentInfoList.begin();
iter != sAvatarXmlInfo->mAttachmentInfoList.end();
++iter)
{
- LLVOAvatarXmlInfo::LLVOAvatarAttachmentInfo *info = *iter;
+ LLAvatarXmlInfo::LLAvatarAttachmentInfo *info = *iter;
if (!isSelf() && info->mJointName == "mScreen")
{ //don't process screen joint for other avatars
continue;
@@ -5621,144 +5189,6 @@ BOOL LLVOAvatar::loadSkeletonNode ()
}
//-----------------------------------------------------------------------------
-// loadMeshNodes(): loads <mesh> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::loadMeshNodes()
-{
- for (LLVOAvatarXmlInfo::mesh_info_list_t::const_iterator meshinfo_iter = sAvatarXmlInfo->mMeshInfoList.begin();
- meshinfo_iter != sAvatarXmlInfo->mMeshInfoList.end();
- ++meshinfo_iter)
- {
- const LLVOAvatarXmlInfo::LLVOAvatarMeshInfo *info = *meshinfo_iter;
- const std::string &type = info->mType;
- S32 lod = info->mLOD;
-
- LLViewerJointMesh* mesh = NULL;
- U8 mesh_id = 0;
- BOOL found_mesh_id = FALSE;
-
- /* if (type == "hairMesh")
- switch(lod)
- case 0:
- mesh = &mHairMesh0; */
- for (LLVOAvatarDictionary::Meshes::const_iterator mesh_iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
- mesh_iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
- ++mesh_iter)
- {
- const EMeshIndex mesh_index = mesh_iter->first;
- const LLVOAvatarDictionary::MeshEntry *mesh_dict = mesh_iter->second;
- if (type.compare(mesh_dict->mName) == 0)
- {
- mesh_id = mesh_index;
- found_mesh_id = TRUE;
- break;
- }
- }
-
- if (found_mesh_id)
- {
- if (lod < (S32)mMeshLOD[mesh_id]->mMeshParts.size())
- {
- mesh = mMeshLOD[mesh_id]->mMeshParts[lod];
- }
- else
- {
- llwarns << "Avatar file: <mesh> has invalid lod setting " << lod << llendl;
- return FALSE;
- }
- }
- else
- {
- llwarns << "Ignoring unrecognized mesh type: " << type << llendl;
- return FALSE;
- }
-
- // llinfos << "Parsing mesh data for " << type << "..." << llendl;
-
- // If this isn't set to white (1.0), avatars will *ALWAYS* be darker than their surroundings.
- // Do not touch!!!
- mesh->setColor( 1.0f, 1.0f, 1.0f, 1.0f );
-
- LLPolyMesh *poly_mesh = NULL;
-
- if (!info->mReferenceMeshName.empty())
- {
- polymesh_map_t::const_iterator polymesh_iter = mMeshes.find(info->mReferenceMeshName);
- if (polymesh_iter != mMeshes.end())
- {
- poly_mesh = LLPolyMesh::getMesh(info->mMeshFileName, polymesh_iter->second);
- poly_mesh->setAvatar(this);
- }
- else
- {
- // This should never happen
- LL_WARNS("Avatar") << "Could not find avatar mesh: " << info->mReferenceMeshName << LL_ENDL;
- }
- }
- else
- {
- poly_mesh = LLPolyMesh::getMesh(info->mMeshFileName);
- poly_mesh->setAvatar(this);
- }
-
- if( !poly_mesh )
- {
- llwarns << "Failed to load mesh of type " << type << llendl;
- return FALSE;
- }
-
- // Multimap insert
- mMeshes.insert(std::make_pair(info->mMeshFileName, poly_mesh));
-
- mesh->setMesh( poly_mesh );
- mesh->setLOD( info->mMinPixelArea );
-
- for (LLVOAvatarXmlInfo::LLVOAvatarMeshInfo::morph_info_list_t::const_iterator xmlinfo_iter = info->mPolyMorphTargetInfoList.begin();
- xmlinfo_iter != info->mPolyMorphTargetInfoList.end();
- ++xmlinfo_iter)
- {
- const LLVOAvatarXmlInfo::LLVOAvatarMeshInfo::morph_info_pair_t *info_pair = &(*xmlinfo_iter);
- LLPolyMorphTarget *param = new LLPolyMorphTarget(mesh->getMesh());
- if (!param->setInfo(info_pair->first))
- {
- delete param;
- return FALSE;
- }
- else
- {
- if (info_pair->second)
- {
- addSharedVisualParam(param);
- }
- else
- {
- addVisualParam(param);
- }
- }
- }
- }
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// loadLayerSets()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::loadLayersets()
-{
- BOOL success = TRUE;
- for (LLVOAvatarXmlInfo::layer_info_list_t::const_iterator layerset_iter = sAvatarXmlInfo->mLayerInfoList.begin();
- layerset_iter != sAvatarXmlInfo->mLayerInfoList.end();
- ++layerset_iter)
- {
- // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such.
- LLTexLayerSetInfo *layerset_info = *layerset_iter;
- layerset_info->createVisualParams(this);
- }
- return success;
-}
-
-//-----------------------------------------------------------------------------
// updateVisualParams()
//-----------------------------------------------------------------------------
void LLVOAvatar::updateVisualParams()
@@ -5771,7 +5201,7 @@ void LLVOAvatar::updateVisualParams()
{
computeBodySize();
mLastSkeletonSerialNum = mSkeletonSerialNum;
- mRoot.updateWorldMatrixChildren();
+ mRoot->updateWorldMatrixChildren();
}
dirtyMesh();
@@ -5858,7 +5288,12 @@ BOOL LLVOAvatar::updateJointLODs()
}
// now select meshes to render based on adjusted pixel area
- BOOL res = mRoot.updateLOD(mAdjustedPixelArea, TRUE);
+ LLViewerJoint* root = dynamic_cast<LLViewerJoint*>(mRoot);
+ BOOL res = FALSE;
+ if (root)
+ {
+ res = root->updateLOD(mAdjustedPixelArea, TRUE);
+ }
if (res)
{
sNumLODChangesThisFrame++;
@@ -5947,6 +5382,15 @@ void LLVOAvatar::dirtyMesh(S32 priority)
{
mDirtyMesh = llmax(mDirtyMesh, priority);
}
+
+//-----------------------------------------------------------------------------
+// getViewerJoint()
+//-----------------------------------------------------------------------------
+LLViewerJoint* LLVOAvatar::getViewerJoint(S32 idx)
+{
+ return dynamic_cast<LLViewerJoint*>(mMeshLOD[idx]);
+}
+
//-----------------------------------------------------------------------------
// hideSkirt()
//-----------------------------------------------------------------------------
@@ -6253,9 +5697,9 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
// Notice that removing sitDown() from here causes avatars sitting on
// objects to be not rendered for new arrivals. See EXT-6835 and EXT-1655.
sitDown(TRUE);
- mRoot.getXform()->setParent(&sit_object->mDrawable->mXform); // LLVOAvatar::sitOnObject
- mRoot.setPosition(getPosition());
- mRoot.updateWorldMatrixChildren();
+ mRoot->getXform()->setParent(&sit_object->mDrawable->mXform); // LLVOAvatar::sitOnObject
+ mRoot->setPosition(getPosition());
+ mRoot->updateWorldMatrixChildren();
stopMotion(ANIM_AGENT_BODY_NOISE);
@@ -6301,10 +5745,10 @@ void LLVOAvatar::getOffObject()
sitDown(FALSE);
- mRoot.getXform()->setParent(NULL); // LLVOAvatar::getOffObject
- mRoot.setPosition(cur_position_world);
- mRoot.setRotation(cur_rotation_world);
- mRoot.getXform()->update();
+ mRoot->getXform()->setParent(NULL); // LLVOAvatar::getOffObject
+ mRoot->setPosition(cur_position_world);
+ mRoot->setRotation(cur_rotation_world);
+ mRoot->getXform()->update();
startMotion(ANIM_AGENT_BODY_NOISE);
@@ -6352,26 +5796,53 @@ S32 LLVOAvatar::getAttachmentCount()
return count;
}
-LLColor4 LLVOAvatar::getGlobalColor( const std::string& color_name ) const
+BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const
{
- if (color_name=="skin_color" && mTexSkinColor)
- {
- return mTexSkinColor->getColor();
- }
- else if(color_name=="hair_color" && mTexHairColor)
+ if (mIsDummy) return TRUE;
+
+ if (isSelf())
{
- return mTexHairColor->getColor();
+ return LLAvatarAppearance::isWearingWearableType(type);
}
- if(color_name=="eye_color" && mTexEyeColor)
+
+ switch(type)
{
- return mTexEyeColor->getColor();
+ case LLWearableType::WT_SHAPE:
+ case LLWearableType::WT_SKIN:
+ case LLWearableType::WT_HAIR:
+ case LLWearableType::WT_EYES:
+ return TRUE; // everyone has all bodyparts
+ default:
+ break; // Do nothing
}
- else
+
+ /* switch(type)
+ case LLWearableType::WT_SHIRT:
+ indicator_te = TEX_UPPER_SHIRT; */
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator tex_iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ tex_iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
+ ++tex_iter)
{
- return LLColor4( 0.f, 1.f, 1.f, 1.f ); // good debugging color
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = tex_iter->second;
+ if (texture_dict->mWearableType == type)
+ {
+ // Thus, you must check to see if the corresponding baked texture is defined.
+ // NOTE: this is a poor substitute if you actually want to know about individual pieces of clothing
+ // this works for detecting a skirt (most important), but is ineffective at any piece of clothing that
+ // gets baked into a texture that always exists (upper or lower).
+ if (texture_dict->mIsUsedByBakedTexture)
+ {
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ return isTextureDefined(LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex);
+ }
+ return FALSE;
+ }
}
+ return FALSE;
}
+
+
// virtual
void LLVOAvatar::invalidateComposite( LLTexLayerSet* layerset, BOOL upload_result )
{
@@ -6381,6 +5852,7 @@ void LLVOAvatar::invalidateAll()
{
}
+// virtual
void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake )
{
if (global_color == mTexSkinColor)
@@ -6399,9 +5871,15 @@ void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL
if (!isTextureDefined(mBakedTextureDatas[BAKED_HAIR].mTextureIndex))
{
LLColor4 color = mTexHairColor->getColor();
- for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[BAKED_HAIR].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[BAKED_HAIR].mJointMeshes.end();
+ for (; iter != end; ++iter)
{
- mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setColor( color );
+ }
}
}
}
@@ -6444,42 +5922,170 @@ BOOL LLVOAvatar::getIsCloud() const
void LLVOAvatar::updateRezzedStatusTimers()
{
- // State machine for rezzed status. Statuses are 0 = cloud, 1 = gray, 2 = textured.
- // Purpose is to collect time data for each period of cloud or cloud+gray.
+ // State machine for rezzed status. Statuses are -1 on startup, 0
+ // = cloud, 1 = gray, 2 = textured, 3 = textured_and_downloaded.
+ // Purpose is to collect time data for each it takes avatar to reach
+ // various loading landmarks: gray, textured (partial), textured fully.
+
S32 rez_status = getRezzedStatus();
if (rez_status != mLastRezzedStatus)
{
LL_DEBUGS("Avatar") << avString() << "rez state change: " << mLastRezzedStatus << " -> " << rez_status << LL_ENDL;
- bool is_cloud_or_gray = (rez_status==0 || rez_status==1);
- bool was_cloud_or_gray = (mLastRezzedStatus==0 || mLastRezzedStatus==1);
- bool is_cloud = (rez_status==0);
- bool was_cloud = (mLastRezzedStatus==0);
- // Non-cloud to cloud
- if (is_cloud && !was_cloud)
+ if (mLastRezzedStatus == -1 && rez_status != -1)
+ {
+ // First time initialization, start all timers.
+ for (S32 i = 1; i < 4; i++)
+ {
+ startPhase("load_" + LLVOAvatar::rezStatusToString(i));
+ startPhase("first_load_" + LLVOAvatar::rezStatusToString(i));
+ }
+ }
+ if (rez_status < mLastRezzedStatus)
+ {
+ // load level has decreased. start phase timers for higher load levels.
+ for (S32 i = rez_status+1; i <= mLastRezzedStatus; i++)
+ {
+ startPhase("load_" + LLVOAvatar::rezStatusToString(i));
+ }
+ }
+ else if (rez_status > mLastRezzedStatus)
+ {
+ // load level has increased. stop phase timers for lower and equal load levels.
+ for (S32 i = llmax(mLastRezzedStatus+1,1); i <= rez_status; i++)
+ {
+ stopPhase("load_" + LLVOAvatar::rezStatusToString(i));
+ stopPhase("first_load_" + LLVOAvatar::rezStatusToString(i), false);
+ }
+ if (rez_status == 3)
+ {
+ // "fully loaded", mark any pending appearance change complete.
+ selfStopPhase("update_appearance_from_cof");
+ selfStopPhase("wear_inventory_category", false);
+ selfStopPhase("process_initial_wearables_update", false);
+ }
+ }
+
+ mLastRezzedStatus = rez_status;
+ }
+}
+
+void LLVOAvatar::clearPhases()
+{
+ getPhases().clearPhases();
+}
+
+void LLVOAvatar::startPhase(const std::string& phase_name)
+{
+ F32 elapsed;
+ bool completed;
+ if (getPhases().getPhaseValues(phase_name, elapsed, completed))
+ {
+ if (!completed)
{
- // start cloud timer.
- getPhases().startPhase("cloud");
+ LL_DEBUGS("Avatar") << avString() << "no-op, start when started already for " << phase_name << llendl;
+ return;
}
- else if (was_cloud && !is_cloud)
+ }
+ LL_DEBUGS("Avatar") << "started phase " << phase_name << llendl;
+ getPhases().startPhase(phase_name);
+}
+
+void LLVOAvatar::stopPhase(const std::string& phase_name, bool err_check)
+{
+ F32 elapsed;
+ bool completed;
+ if (getPhases().getPhaseValues(phase_name, elapsed, completed))
+ {
+ if (!completed)
{
- // stop cloud timer, which will capture stats.
- getPhases().stopPhase("cloud");
+ getPhases().stopPhase(phase_name);
+ completed = true;
+ logMetricsTimerRecord(phase_name, elapsed, completed);
+ LL_DEBUGS("Avatar") << avString() << "stopped phase " << phase_name << " elapsed " << elapsed << llendl;
}
+ else
+ {
+ if (err_check)
+ {
+ LL_DEBUGS("Avatar") << "no-op, stop when stopped already for " << phase_name << llendl;
+ }
+ }
+ }
+ else
+ {
+ if (err_check)
+ {
+ LL_DEBUGS("Avatar") << "no-op, stop when not started for " << phase_name << llendl;
+ }
+ }
+}
- // Non-cloud-or-gray to cloud-or-gray
- if (is_cloud_or_gray && !was_cloud_or_gray)
+void LLVOAvatar::logPendingPhases()
+{
+ if (!isAgentAvatarValid())
+ {
+ return;
+ }
+
+ for (LLViewerStats::phase_map_t::iterator it = getPhases().begin();
+ it != getPhases().end();
+ ++it)
+ {
+ const std::string& phase_name = it->first;
+ F32 elapsed;
+ bool completed;
+ if (getPhases().getPhaseValues(phase_name, elapsed, completed))
{
- // start cloud-or-gray timer.
- getPhases().startPhase("cloud-or-gray");
+ if (!completed)
+ {
+ logMetricsTimerRecord(phase_name, elapsed, completed);
+ }
}
- else if (was_cloud_or_gray && !is_cloud_or_gray)
+ }
+}
+
+//static
+void LLVOAvatar::logPendingPhasesAllAvatars()
+{
+ for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
+ iter != LLCharacter::sInstances.end(); ++iter)
+ {
+ LLVOAvatar* inst = (LLVOAvatar*) *iter;
+ if( inst->isDead() )
{
- // stop cloud-or-gray timer, which will capture stats.
- getPhases().stopPhase("cloud-or-gray");
+ continue;
}
-
- mLastRezzedStatus = rez_status;
+ inst->logPendingPhases();
+ }
+}
+
+void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapsed, bool completed)
+{
+ if (!isAgentAvatarValid())
+ {
+ return;
+ }
+
+ LLSD record;
+ record["timer_name"] = phase_name;
+ record["avatar_id"] = getID();
+ record["elapsed"] = elapsed;
+ record["completed"] = completed;
+ U32 grid_x(0), grid_y(0);
+ if (getRegion())
+ {
+ record["central_bake_version"] = LLSD::Integer(getRegion()->getCentralBakeVersion());
+ grid_from_region_handle(getRegion()->getHandle(), &grid_x, &grid_y);
+ }
+ record["grid_x"] = LLSD::Integer(grid_x);
+ record["grid_y"] = LLSD::Integer(grid_y);
+ record["is_using_server_bakes"] = ((bool) isUsingServerBakes());
+ record["is_self"] = isSelf();
+
+ if (isAgentAvatarValid())
+ {
+ gAgentAvatarp->addMetricsTimerRecord(record);
}
}
@@ -6576,24 +6182,49 @@ LLMotion* LLVOAvatar::findMotion(const LLUUID& id) const
return mMotionController.findMotion(id);
}
+// This is a semi-deprecated debugging tool - meshes will not show as
+// colorized if using deferred rendering.
+void LLVOAvatar::debugColorizeSubMeshes(U32 i, const LLColor4& color)
+{
+ if (gSavedSettings.getBOOL("DebugAvatarCompositeBaked"))
+ {
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
+ for (; iter != end; ++iter)
+ {
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ {
+ mesh->setColor(color);
+ }
+ }
+ }
+ }
+}
+
//-----------------------------------------------------------------------------
// updateMeshTextures()
// Uses the current TE values to set the meshes' and layersets' textures.
//-----------------------------------------------------------------------------
+// virtual
void LLVOAvatar::updateMeshTextures()
{
- // llinfos << "updateMeshTextures" << llendl;
+ static S32 update_counter = 0;
+ mBakedTextureDebugText.clear();
+
// if user has never specified a texture, assign the default
for (U32 i=0; i < getNumTEs(); i++)
{
const LLViewerTexture* te_image = getImage(i, 0);
if(!te_image || te_image->getID().isNull() || (te_image->getID() == IMG_DEFAULT))
{
- setImage(i, LLViewerTextureManager::getFetchedTexture(i == TEX_HAIR ? IMG_DEFAULT : IMG_DEFAULT_AVATAR), 0); // IMG_DEFAULT_AVATAR = a special texture that's never rendered.
+ // IMG_DEFAULT_AVATAR = a special texture that's never rendered.
+ const LLUUID& image_id = (i == TEX_HAIR ? IMG_DEFAULT : IMG_DEFAULT_AVATAR);
+ setImage(i, LLViewerTextureManager::getFetchedTexture(image_id), 0);
}
}
- const BOOL self_customizing = isSelf() && gAgentCamera.cameraCustomizeAvatar(); // During face edit mode, we don't use baked textures
const BOOL other_culled = !isSelf() && mCulled;
LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ;
BOOL paused = FALSE;
@@ -6609,71 +6240,97 @@ void LLVOAvatar::updateMeshTextures()
std::vector<BOOL> use_lkg_baked_layer; // lkg = "last known good"
use_lkg_baked_layer.resize(mBakedTextureDatas.size(), false);
+ mBakedTextureDebugText += llformat("%06d\n",update_counter++);
+ mBakedTextureDebugText += "indx layerset linvld ltda ilb ulkg ltid\n";
for (U32 i=0; i < mBakedTextureDatas.size(); i++)
{
is_layer_baked[i] = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
-
+ LLViewerTexLayerSet* layerset = NULL;
+ bool layerset_invalid = false;
if (!other_culled)
{
// When an avatar is changing clothes and not in Appearance mode,
- // use the last-known good baked texture until it finish the first
+ // use the last-known good baked texture until it finishes the first
// render of the new layerset.
- const BOOL layerset_invalid = mBakedTextureDatas[i].mTexLayerSet
- && ( !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized()
- || !mBakedTextureDatas[i].mTexLayerSet->isLocalTextureDataAvailable() );
+ layerset = getTexLayerSet(i);
+ layerset_invalid = layerset && ( !layerset->getViewerComposite()->isInitialized()
+ || !layerset->isLocalTextureDataAvailable() );
use_lkg_baked_layer[i] = (!is_layer_baked[i]
- && (mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR)
+ && (mBakedTextureDatas[i].mLastTextureID != IMG_DEFAULT_AVATAR)
&& layerset_invalid);
if (use_lkg_baked_layer[i])
{
- mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE);
+ layerset->setUpdatesEnabled(TRUE);
}
}
else
{
use_lkg_baked_layer[i] = (!is_layer_baked[i]
- && mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR);
- if (mBakedTextureDatas[i].mTexLayerSet)
- {
- mBakedTextureDatas[i].mTexLayerSet->destroyComposite();
- }
+ && mBakedTextureDatas[i].mLastTextureID != IMG_DEFAULT_AVATAR);
}
- }
-
- // Turn on alpha masking correctly for yourself and other avatars on 1.23+
- mSupportsAlphaLayers = isSelf() || is_layer_baked[BAKED_HAIR];
-
- // Baked textures should be requested from the sim this avatar is on. JC
- const LLHost target_host = getObjectHost();
- if (!target_host.isOk())
- {
- llwarns << "updateMeshTextures: invalid host for object: " << getID() << llendl;
+ std::string last_id_string;
+ if (mBakedTextureDatas[i].mLastTextureID == IMG_DEFAULT_AVATAR)
+ last_id_string = "A";
+ else if (mBakedTextureDatas[i].mLastTextureID == IMG_DEFAULT)
+ last_id_string = "D";
+ else if (mBakedTextureDatas[i].mLastTextureID == IMG_INVISIBLE)
+ last_id_string = "I";
+ else
+ last_id_string = "*";
+ bool is_ltda = layerset
+ && layerset->getViewerComposite()->isInitialized()
+ && layerset->isLocalTextureDataAvailable();
+ mBakedTextureDebugText += llformat("%4d %4s %4d %4d %4d %4d %4s\n",
+ i,
+ (layerset?"*":"0"),
+ layerset_invalid,
+ is_ltda,
+ is_layer_baked[i],
+ use_lkg_baked_layer[i],
+ last_id_string.c_str());
}
for (U32 i=0; i < mBakedTextureDatas.size(); i++)
{
- if (use_lkg_baked_layer[i] && !self_customizing )
+ debugColorizeSubMeshes(i, LLColor4::white);
+
+ LLViewerTexLayerSet* layerset = getTexLayerSet(i);
+ if (use_lkg_baked_layer[i] && !isUsingLocalAppearance() )
{
- LLViewerFetchedTexture* baked_img = LLViewerTextureManager::getFetchedTextureFromHost( mBakedTextureDatas[i].mLastTextureIndex, target_host );
+ LLViewerFetchedTexture* baked_img = LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[i].mLastTextureID);
mBakedTextureDatas[i].mIsUsed = TRUE;
- for (U32 k=0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
+
+ debugColorizeSubMeshes(i,LLColor4::red);
+
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
+ for (; iter != end; ++iter)
{
- mBakedTextureDatas[i].mMeshes[k]->setTexture( baked_img );
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setTexture( baked_img );
+ }
}
}
- else if (!self_customizing && is_layer_baked[i])
+ else if (!isUsingLocalAppearance() && is_layer_baked[i])
{
- LLViewerFetchedTexture* baked_img = LLViewerTextureManager::staticCastToFetchedTexture(getImage( mBakedTextureDatas[i].mTextureIndex, 0 ), TRUE) ;
- if( baked_img->getID() == mBakedTextureDatas[i].mLastTextureIndex )
+ LLViewerFetchedTexture* baked_img =
+ LLViewerTextureManager::staticCastToFetchedTexture(
+ getImage( mBakedTextureDatas[i].mTextureIndex, 0 ), TRUE) ;
+ if( baked_img->getID() == mBakedTextureDatas[i].mLastTextureID )
{
- // Even though the file may not be finished loading, we'll consider it loaded and use it (rather than doing compositing).
+ // Even though the file may not be finished loading,
+ // we'll consider it loaded and use it (rather than
+ // doing compositing).
useBakedTexture( baked_img->getID() );
}
else
{
mBakedTextureDatas[i].mIsLoaded = FALSE;
- if ( (baked_img->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )
+ if ( (baked_img->getID() != IMG_INVISIBLE) &&
+ ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )
{
baked_img->setLoadedCallback(onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),
src_callback_list, paused);
@@ -6682,40 +6339,59 @@ void LLVOAvatar::updateMeshTextures()
src_callback_list, paused );
}
}
- else if (mBakedTextureDatas[i].mTexLayerSet
- && !other_culled)
+ else if (layerset && isUsingLocalAppearance())
{
- mBakedTextureDatas[i].mTexLayerSet->createComposite();
- mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled( TRUE );
+ debugColorizeSubMeshes(i,LLColor4::yellow );
+
+ layerset->createComposite();
+ layerset->setUpdatesEnabled( TRUE );
mBakedTextureDatas[i].mIsUsed = FALSE;
- for (U32 k=0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
+
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
+ for (; iter != end; ++iter)
{
- mBakedTextureDatas[i].mMeshes[k]->setLayerSet( mBakedTextureDatas[i].mTexLayerSet );
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setLayerSet( layerset );
+ }
}
}
+ else
+ {
+ debugColorizeSubMeshes(i,LLColor4::blue);
+ }
}
// set texture and color of hair manually if we are not using a baked image.
// This can happen while loading hair for yourself, or for clients that did not
// bake a hair texture. Still needed for yourself after 1.22 is depricated.
- if (!is_layer_baked[BAKED_HAIR] || self_customizing)
+ if (!is_layer_baked[BAKED_HAIR] || isEditingAppearance())
{
const LLColor4 color = mTexHairColor ? mTexHairColor->getColor() : LLColor4(1,1,1,1);
LLViewerTexture* hair_img = getImage( TEX_HAIR, 0 );
- for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[BAKED_HAIR].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[BAKED_HAIR].mJointMeshes.end();
+ for (; iter != end; ++iter)
{
- mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
- mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setTexture( hair_img );
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setColor( color );
+ mesh->setTexture( hair_img );
+ }
}
}
- for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter =
+ LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
const EBakedTextureIndex baked_index = baked_iter->first;
- const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second;
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
@@ -6743,7 +6419,7 @@ void LLVOAvatar::setLocalTexture( ETextureIndex type, LLViewerTexture* in_tex, B
}
//virtual
-void LLVOAvatar::setBakedReady(LLVOAvatarDefines::ETextureIndex type, BOOL baked_version_exists, U32 index)
+void LLVOAvatar::setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index)
{
// invalid for anyone but self
llassert(0);
@@ -6778,18 +6454,30 @@ void LLVOAvatar::clearChat()
mChats.clear();
}
-// adds a morph mask to the appropriate baked texture structure
-void LLVOAvatar::addMaskedMorph(EBakedTextureIndex index, LLPolyMorphTarget* morph_target, BOOL invert, std::string layer)
+
+void LLVOAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLAvatarAppearanceDefines::EBakedTextureIndex index)
{
- if (index < BAKED_NUM_INDICES)
+ if (index >= BAKED_NUM_INDICES)
{
- LLMaskedMorph *morph = new LLMaskedMorph(morph_target, invert, layer);
- mBakedTextureDatas[index].mMaskedMorphs.push_front(morph);
+ llwarns << "invalid baked texture index passed to applyMorphMask" << llendl;
+ return;
+ }
+
+ for (morph_list_t::const_iterator iter = mBakedTextureDatas[index].mMaskedMorphs.begin();
+ iter != mBakedTextureDatas[index].mMaskedMorphs.end(); ++iter)
+ {
+ const LLMaskedMorph* maskedMorph = (*iter);
+ LLPolyMorphTarget* morph_target = dynamic_cast<LLPolyMorphTarget*>(maskedMorph->mMorphTarget);
+ if (morph_target)
+ {
+ morph_target->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert);
+ }
}
}
+
// returns TRUE if morph masks are present and not valid for a given baked texture, FALSE otherwise
-BOOL LLVOAvatar::morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex index)
+BOOL LLVOAvatar::morphMaskNeedsUpdate(LLAvatarAppearanceDefines::EBakedTextureIndex index)
{
if (index >= BAKED_NUM_INDICES)
{
@@ -6800,7 +6488,7 @@ BOOL LLVOAvatar::morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex inde
{
if (isSelf())
{
- LLTexLayerSet *layer_set = mBakedTextureDatas[index].mTexLayerSet;
+ LLViewerTexLayerSet *layer_set = getTexLayerSet(index);
if (layer_set)
{
return !layer_set->isMorphValid();
@@ -6815,23 +6503,6 @@ BOOL LLVOAvatar::morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex inde
return FALSE;
}
-void LLVOAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLVOAvatarDefines::EBakedTextureIndex index)
-{
- if (index >= BAKED_NUM_INDICES)
- {
- llwarns << "invalid baked texture index passed to applyMorphMask" << llendl;
- return;
- }
-
- for (morph_list_t::const_iterator iter = mBakedTextureDatas[index].mMaskedMorphs.begin();
- iter != mBakedTextureDatas[index].mMaskedMorphs.end(); ++iter)
- {
- const LLMaskedMorph* maskedMorph = (*iter);
- maskedMorph->mMorphTarget->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert);
- }
-}
-
-
//-----------------------------------------------------------------------------
// releaseComponentTextures()
// release any component texture UUIDs for which we have a baked texture
@@ -6854,7 +6525,7 @@ void LLVOAvatar::releaseComponentTextures()
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
- const LLVOAvatarDictionary::BakedEntry * bakedDicEntry = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
+ const LLAvatarAppearanceDictionary::BakedEntry * bakedDicEntry = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
// skip if this is a skirt and av is not wearing one, or if we don't have a baked texture UUID
if (!isTextureDefined(bakedDicEntry->mTextureIndex)
&& ( (baked_index != BAKED_SKIRT) || isWearingWearableType(LLWearableType::WT_SKIRT) ))
@@ -6870,120 +6541,14 @@ void LLVOAvatar::releaseComponentTextures()
}
}
-//static
-BOOL LLVOAvatar::teToColorParams( ETextureIndex te, U32 *param_name )
-{
- switch( te )
- {
- case TEX_UPPER_SHIRT:
- param_name[0] = 803; //"shirt_red";
- param_name[1] = 804; //"shirt_green";
- param_name[2] = 805; //"shirt_blue";
- break;
-
- case TEX_LOWER_PANTS:
- param_name[0] = 806; //"pants_red";
- param_name[1] = 807; //"pants_green";
- param_name[2] = 808; //"pants_blue";
- break;
-
- case TEX_LOWER_SHOES:
- param_name[0] = 812; //"shoes_red";
- param_name[1] = 813; //"shoes_green";
- param_name[2] = 817; //"shoes_blue";
- break;
-
- case TEX_LOWER_SOCKS:
- param_name[0] = 818; //"socks_red";
- param_name[1] = 819; //"socks_green";
- param_name[2] = 820; //"socks_blue";
- break;
-
- case TEX_UPPER_JACKET:
- case TEX_LOWER_JACKET:
- param_name[0] = 834; //"jacket_red";
- param_name[1] = 835; //"jacket_green";
- param_name[2] = 836; //"jacket_blue";
- break;
-
- case TEX_UPPER_GLOVES:
- param_name[0] = 827; //"gloves_red";
- param_name[1] = 829; //"gloves_green";
- param_name[2] = 830; //"gloves_blue";
- break;
-
- case TEX_UPPER_UNDERSHIRT:
- param_name[0] = 821; //"undershirt_red";
- param_name[1] = 822; //"undershirt_green";
- param_name[2] = 823; //"undershirt_blue";
- break;
-
- case TEX_LOWER_UNDERPANTS:
- param_name[0] = 824; //"underpants_red";
- param_name[1] = 825; //"underpants_green";
- param_name[2] = 826; //"underpants_blue";
- break;
-
- case TEX_SKIRT:
- param_name[0] = 921; //"skirt_red";
- param_name[1] = 922; //"skirt_green";
- param_name[2] = 923; //"skirt_blue";
- break;
-
- case TEX_HEAD_TATTOO:
- case TEX_LOWER_TATTOO:
- case TEX_UPPER_TATTOO:
- param_name[0] = 1071; //"tattoo_red";
- param_name[1] = 1072; //"tattoo_green";
- param_name[2] = 1073; //"tattoo_blue";
- break;
-
- default:
- llassert(0);
- return FALSE;
- }
-
- return TRUE;
-}
-
-void LLVOAvatar::setClothesColor( ETextureIndex te, const LLColor4& new_color, BOOL upload_bake )
-{
- U32 param_name[3];
- if( teToColorParams( te, param_name ) )
- {
- setVisualParamWeight( param_name[0], new_color.mV[VX], upload_bake );
- setVisualParamWeight( param_name[1], new_color.mV[VY], upload_bake );
- setVisualParamWeight( param_name[2], new_color.mV[VZ], upload_bake );
- }
-}
-
-LLColor4 LLVOAvatar::getClothesColor( ETextureIndex te )
-{
- LLColor4 color;
- U32 param_name[3];
- if( teToColorParams( te, param_name ) )
- {
- color.mV[VX] = getVisualParamWeight( param_name[0] );
- color.mV[VY] = getVisualParamWeight( param_name[1] );
- color.mV[VZ] = getVisualParamWeight( param_name[2] );
- }
- return color;
-}
-
-// static
-LLColor4 LLVOAvatar::getDummyColor()
-{
- return DUMMY_COLOR;
-}
-
void LLVOAvatar::dumpAvatarTEs( const std::string& context ) const
{
LL_DEBUGS("Avatar") << avString() << (isSelf() ? "Self: " : "Other: ") << context << LL_ENDL;
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
// TODO: MULTI-WEARABLE: handle multiple textures for self
const LLViewerTexture* te_image = getImage(iter->first,0);
if( !te_image )
@@ -7009,48 +6574,6 @@ void LLVOAvatar::dumpAvatarTEs( const std::string& context ) const
}
}
-// Unlike most wearable functions, this works for both self and other.
-BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const
-{
- if (mIsDummy) return TRUE;
-
- switch(type)
- {
- case LLWearableType::WT_SHAPE:
- case LLWearableType::WT_SKIN:
- case LLWearableType::WT_HAIR:
- case LLWearableType::WT_EYES:
- return TRUE; // everyone has all bodyparts
- default:
- break; // Do nothing
- }
-
- /* switch(type)
- case LLWearableType::WT_SHIRT:
- indicator_te = TEX_UPPER_SHIRT; */
- for (LLVOAvatarDictionary::Textures::const_iterator tex_iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- tex_iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
- ++tex_iter)
- {
- const LLVOAvatarDictionary::TextureEntry *texture_dict = tex_iter->second;
- if (texture_dict->mWearableType == type)
- {
- // If you're checking another avatar's clothing, you don't have component textures.
- // Thus, you must check to see if the corresponding baked texture is defined.
- // NOTE: this is a poor substitute if you actually want to know about individual pieces of clothing
- // this works for detecting a skirt (most important), but is ineffective at any piece of clothing that
- // gets baked into a texture that always exists (upper or lower).
- if (texture_dict->mIsUsedByBakedTexture)
- {
- const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
- return isTextureDefined(LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex);
- }
- return FALSE;
- }
- }
- return FALSE;
-}
-
//-----------------------------------------------------------------------------
// clampAttachmentPositions()
//-----------------------------------------------------------------------------
@@ -7131,7 +6654,7 @@ LLBBox LLVOAvatar::getHUDBBox() const
//-----------------------------------------------------------------------------
void LLVOAvatar::onFirstTEMessageReceived()
{
- LL_INFOS("Avatar") << avString() << LL_ENDL;
+ LL_DEBUGS("Avatar") << avString() << LL_ENDL;
if( !mFirstTEMessageReceived )
{
mFirstTEMessageReceived = TRUE;
@@ -7153,7 +6676,7 @@ void LLVOAvatar::onFirstTEMessageReceived()
if (layer_baked)
{
LLViewerFetchedTexture* image = LLViewerTextureManager::staticCastToFetchedTexture(getImage( mBakedTextureDatas[i].mTextureIndex, 0 ), TRUE) ;
- mBakedTextureDatas[i].mLastTextureIndex = image->getID();
+ mBakedTextureDatas[i].mLastTextureID = image->getID();
// If we have more than one texture for the other baked layers, we'll want to call this for them too.
if ( (image->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )
{
@@ -7205,85 +6728,106 @@ bool LLVOAvatar::visualParamWeightsAreDefault()
return rtn;
}
-
-//-----------------------------------------------------------------------------
-// processAvatarAppearance()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
+void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value)
{
- if (gSavedSettings.getBOOL("BlockAvatarAppearanceMessages"))
+ std::string type_string = "unknown";
+ if (dynamic_cast<LLTexLayerParamAlpha*>(viewer_param))
+ type_string = "param_alpha";
+ if (dynamic_cast<LLTexLayerParamColor*>(viewer_param))
+ type_string = "param_color";
+ if (dynamic_cast<LLDriverParam*>(viewer_param))
+ type_string = "param_driver";
+ if (dynamic_cast<LLPolyMorphTarget*>(viewer_param))
+ type_string = "param_morph";
+ if (dynamic_cast<LLPolySkeletalDistortion*>(viewer_param))
+ type_string = "param_skeleton";
+ S32 wtype = -1;
+ LLViewerVisualParam *vparam = dynamic_cast<LLViewerVisualParam*>(viewer_param);
+ if (vparam)
{
- llwarns << "Blocking AvatarAppearance message" << llendl;
- return;
+ wtype = vparam->getWearableType();
}
-
- BOOL is_first_appearance_message = !mFirstAppearanceMessageReceived;
- mFirstAppearanceMessageReceived = TRUE;
+ S32 u8_value = F32_to_U8(value,viewer_param->getMinWeight(),viewer_param->getMaxWeight());
+ apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\" u8=\"%d\" type=\"%s\" wearable=\"%s\"/>\n",
+ viewer_param->getID(), viewer_param->getName().c_str(), value, u8_value, type_string.c_str(),
+ LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str()
+// param_location_name(vparam->getParamLocation()).c_str()
+ );
+}
- LL_INFOS("Avatar") << avString() << "processAvatarAppearance start " << mID
- << " first? " << is_first_appearance_message << " self? " << isSelf() << LL_ENDL;
+void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
+ const LLAppearanceMessageContents& contents)
+{
+ std::string outfilename = get_sequential_numbered_file_name(dump_prefix,".xml");
+ const std::vector<F32>& params_for_dump = contents.mParamWeights;
+ const LLTEContents& tec = contents.mTEContents;
- if( isSelf() )
+ LLAPRFile outfile;
+ std::string fullpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,outfilename);
+ outfile.open(fullpath, LL_APR_WB );
+ apr_file_t* file = outfile.getFileHandle();
+ if (!file)
{
- llwarns << avString() << "Received AvatarAppearance for self" << llendl;
- if( mFirstTEMessageReceived )
- {
-// llinfos << "processAvatarAppearance end " << mID << llendl;
- return;
- }
+ return;
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << "dumping appearance message to " << fullpath << llendl;
}
- ESex old_sex = getSex();
-
-// llinfos << "LLVOAvatar::processAvatarAppearance()" << llendl;
-// dumpAvatarTEs( "PRE processAvatarAppearance()" );
- unpackTEMessage(mesgsys, _PREHASH_ObjectData);
-// dumpAvatarTEs( "POST processAvatarAppearance()" );
+ apr_file_printf(file, "<header>\n");
+ apr_file_printf(file, "\t\t<cof_version %i />\n", contents.mCOFVersion);
+ apr_file_printf(file, "\t\t<appearance_version %i />\n", contents.mAppearanceVersion);
+ apr_file_printf(file, "</header>\n");
- // prevent the overwriting of valid baked textures with invalid baked textures
- for (U8 baked_index = 0; baked_index < mBakedTextureDatas.size(); baked_index++)
+ apr_file_printf(file, "\n<params>\n");
+ LLVisualParam* param = getFirstVisualParam();
+ for (S32 i = 0; i < params_for_dump.size(); i++)
{
- if (!isTextureDefined(mBakedTextureDatas[baked_index].mTextureIndex)
- && mBakedTextureDatas[baked_index].mLastTextureIndex != IMG_DEFAULT
- && baked_index != BAKED_SKIRT)
+ while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
{
- setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,
- LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureIndex,
- TRUE,
- LLViewerTexture::BOOST_NONE,
- LLViewerTexture::LOD_TEXTURE));
+ param = getNextVisualParam();
}
+ LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
+ F32 value = params_for_dump[i];
+ dump_visual_param(file, viewer_param, value);
+ param = getNextVisualParam();
}
+ apr_file_printf(file, "</params>\n");
-
- // runway - was
- // if (!is_first_appearance_message )
- // which means it would be called on second appearance message - probably wrong.
- if (is_first_appearance_message )
+ apr_file_printf(file, "\n<textures>\n");
+ for (U32 i = 0; i < tec.face_count; i++)
{
- onFirstTEMessageReceived();
+ std::string uuid_str;
+ ((LLUUID*)tec.image_data)[i].toString(uuid_str);
+ apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", i, uuid_str.c_str());
}
+ apr_file_printf(file, "</textures>\n");
+}
- setCompositeUpdatesEnabled( FALSE );
- mMeshTexturesDirty = TRUE;
- gPipeline.markGLRebuild(this);
+void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMessageContents& contents)
+{
+ parseTEMessage(mesgsys, _PREHASH_ObjectData, -1, contents.mTEContents);
- // ! BACKWARDS COMPATIBILITY !
- // Non-self avatars will no longer have component textures
- if (!isSelf())
+ // Parse the AppearanceData field, if any.
+ if (mesgsys->has(_PREHASH_AppearanceData))
{
- releaseComponentTextures();
+ U8 av_u8;
+ mesgsys->getU8Fast(_PREHASH_AppearanceData, _PREHASH_AppearanceVersion, av_u8, 0);
+ contents.mAppearanceVersion = av_u8;
+ LL_DEBUGS("Avatar") << "appversion set by AppearanceData field: " << contents.mAppearanceVersion << llendl;
+ mesgsys->getS32Fast(_PREHASH_AppearanceData, _PREHASH_CofVersion, contents.mCOFVersion, 0);
+ // For future use:
+ //mesgsys->getU32Fast(_PREHASH_AppearanceData, _PREHASH_Flags, appearance_flags, 0);
}
-
- // parse visual params
+
+ // Parse visual params, if any.
S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_VisualParam);
bool drop_visual_params_debug = gSavedSettings.getBOOL("BlockSomeAvatarAppearanceVisualParams") && (ll_rand(2) == 0); // pretend that ~12% of AvatarAppearance messages arrived without a VisualParam block, for testing
if( num_blocks > 1 && !drop_visual_params_debug)
{
LL_DEBUGS("Avatar") << avString() << " handle visual params, num_blocks " << num_blocks << LL_ENDL;
- BOOL params_changed = FALSE;
- BOOL interp_params = FALSE;
LLVisualParam* param = getFirstVisualParam();
llassert(param); // if this ever fires, we should do the same as when num_blocks<=1
@@ -7309,21 +6853,9 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
U8 value;
mesgsys->getU8Fast(_PREHASH_VisualParam, _PREHASH_ParamValue, value, i);
F32 newWeight = U8_to_F32(value, param->getMinWeight(), param->getMaxWeight());
+ contents.mParamWeights.push_back(newWeight);
+ contents.mParams.push_back(param);
- if (is_first_appearance_message || (param->getWeight() != newWeight))
- {
- //llinfos << "Received update for param " << param->getDisplayName() << " at value " << newWeight << llendl;
- params_changed = TRUE;
- if(is_first_appearance_message)
- {
- param->setWeight(newWeight, FALSE);
- }
- else
- {
- interp_params = TRUE;
- param->setAnimationTarget(newWeight, FALSE);
- }
- }
param = getNextVisualParam();
}
}
@@ -7331,7 +6863,210 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
if (num_blocks != expected_tweakable_count)
{
- llinfos << "Number of params in AvatarAppearance msg (" << num_blocks << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. object: " << getID() << llendl;
+ LL_DEBUGS("Avatar") << "Number of params in AvatarAppearance msg (" << num_blocks << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. object: " << getID() << llendl;
+ }
+ }
+ else
+ {
+ if (drop_visual_params_debug)
+ {
+ llinfos << "Debug-faked lack of parameters on AvatarAppearance for object: " << getID() << llendl;
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << "AvatarAppearance msg received without any parameters, object: " << getID() << llendl;
+ }
+ }
+
+ LLVisualParam* appearance_version_param = getVisualParam(11000);
+ if (appearance_version_param)
+ {
+ std::vector<LLVisualParam*>::iterator it = std::find(contents.mParams.begin(), contents.mParams.end(),appearance_version_param);
+ if (it != contents.mParams.end())
+ {
+ S32 index = it - contents.mParams.begin();
+ contents.mParamAppearanceVersion = llround(contents.mParamWeights[index]);
+ LL_DEBUGS("Avatar") << "appversion req by appearance_version param: " << contents.mParamAppearanceVersion << llendl;
+ }
+ }
+}
+
+bool resolve_appearance_version(const LLAppearanceMessageContents& contents, S32& appearance_version)
+{
+ appearance_version = -1;
+
+ if ((contents.mAppearanceVersion) >= 0 &&
+ (contents.mParamAppearanceVersion >= 0) &&
+ (contents.mAppearanceVersion != contents.mParamAppearanceVersion))
+ {
+ llwarns << "inconsistent appearance_version settings - field: " <<
+ contents.mAppearanceVersion << ", param: " << contents.mParamAppearanceVersion << llendl;
+ return false;
+ }
+ if (contents.mParamAppearanceVersion >= 0) // use visual param if available.
+ {
+ appearance_version = contents.mParamAppearanceVersion;
+ }
+ if (contents.mAppearanceVersion >= 0)
+ {
+ appearance_version = contents.mAppearanceVersion;
+ }
+ if (appearance_version < 0) // still not set, go with 0.
+ {
+ appearance_version = 0;
+ }
+ LL_DEBUGS("Avatar") << "appearance version info - field " << contents.mAppearanceVersion
+ << " param: " << contents.mParamAppearanceVersion
+ << " final: " << appearance_version << llendl;
+ return true;
+}
+
+//-----------------------------------------------------------------------------
+// processAvatarAppearance()
+//-----------------------------------------------------------------------------
+void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
+{
+ LL_DEBUGS("Avatar") << "starts" << llendl;
+
+ bool enable_verbose_dumps = gSavedSettings.getBOOL("DebugAvatarAppearanceMessage");
+ std::string dump_prefix = getFullname() + "_" + (isSelf()?"s":"o") + "_";
+ if (gSavedSettings.getBOOL("BlockAvatarAppearanceMessages"))
+ {
+ llwarns << "Blocking AvatarAppearance message" << llendl;
+ return;
+ }
+
+ ESex old_sex = getSex();
+
+ LLAppearanceMessageContents contents;
+ parseAppearanceMessage(mesgsys, contents);
+ if (enable_verbose_dumps)
+ {
+ dumpAppearanceMsgParams(dump_prefix + "appearance_msg", contents);
+ }
+
+ S32 appearance_version;
+ if (!resolve_appearance_version(contents, appearance_version))
+ {
+ llwarns << "bad appearance version info, discarding" << llendl;
+ return;
+ }
+ S32 this_update_cof_version = contents.mCOFVersion;
+ S32 last_update_request_cof_version = mLastUpdateRequestCOFVersion;
+
+ // Only now that we have result of appearance_version can we decide whether to bail out.
+ if( isSelf() )
+ {
+ LL_DEBUGS("Avatar") << "this_update_cof_version " << this_update_cof_version
+ << " last_update_request_cof_version " << last_update_request_cof_version
+ << " my_cof_version " << LLAppearanceMgr::instance().getCOFVersion() << llendl;
+
+ if (getRegion() && (getRegion()->getCentralBakeVersion()==0))
+ {
+ llwarns << avString() << "Received AvatarAppearance message for self in non-server-bake region" << llendl;
+ }
+ if( mFirstTEMessageReceived && (appearance_version == 0))
+ {
+ return;
+ }
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << "appearance message received" << llendl;
+ }
+
+ // Check for stale update.
+ if (isSelf()
+ && (appearance_version>0)
+ && (this_update_cof_version < last_update_request_cof_version))
+ {
+ llwarns << "Stale appearance update, wanted version " << last_update_request_cof_version
+ << ", got " << this_update_cof_version << llendl;
+ return;
+ }
+
+ if (isSelf() && isEditingAppearance())
+ {
+ LL_DEBUGS("Avatar") << "ignoring appearance message while in appearance edit" << llendl;
+ return;
+ }
+
+ S32 num_params = contents.mParamWeights.size();
+ if (num_params <= 1)
+ {
+ // In this case, we have no reliable basis for knowing
+ // appearance version, which may cause us to look for baked
+ // textures in the wrong place and flag them as missing
+ // assets.
+ LL_DEBUGS("Avatar") << "ignoring appearance message due to lack of params" << llendl;
+ return;
+ }
+
+ mLastUpdateReceivedCOFVersion = this_update_cof_version;
+
+ setIsUsingServerBakes(appearance_version > 0);
+
+ applyParsedTEMessage(contents.mTEContents);
+
+ // prevent the overwriting of valid baked textures with invalid baked textures
+ for (U8 baked_index = 0; baked_index < mBakedTextureDatas.size(); baked_index++)
+ {
+ if (!isTextureDefined(mBakedTextureDatas[baked_index].mTextureIndex)
+ && mBakedTextureDatas[baked_index].mLastTextureID != IMG_DEFAULT
+ && baked_index != BAKED_SKIRT)
+ {
+ setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,
+ LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
+ }
+ }
+
+ // runway - was
+ // if (!is_first_appearance_message )
+ // which means it would be called on second appearance message - probably wrong.
+ BOOL is_first_appearance_message = !mFirstAppearanceMessageReceived;
+ mFirstAppearanceMessageReceived = TRUE;
+
+ LL_DEBUGS("Avatar") << avString() << "processAvatarAppearance start " << mID
+ << " first? " << is_first_appearance_message << " self? " << isSelf() << LL_ENDL;
+
+ if (is_first_appearance_message )
+ {
+ onFirstTEMessageReceived();
+ }
+
+ setCompositeUpdatesEnabled( FALSE );
+ gPipeline.markGLRebuild(this);
+
+ // Apply visual params
+ if( num_params > 1)
+ {
+ LL_DEBUGS("Avatar") << avString() << " handle visual params, num_params " << num_params << LL_ENDL;
+ BOOL params_changed = FALSE;
+ BOOL interp_params = FALSE;
+
+ for( S32 i = 0; i < num_params; i++ )
+ {
+ LLVisualParam* param = contents.mParams[i];
+ F32 newWeight = contents.mParamWeights[i];
+
+ if (is_first_appearance_message || (param->getWeight() != newWeight))
+ {
+ params_changed = TRUE;
+ if(is_first_appearance_message)
+ {
+ param->setWeight(newWeight, FALSE);
+ }
+ else
+ {
+ interp_params = TRUE;
+ param->setAnimationTarget(newWeight, FALSE);
+ }
+ }
+ }
+ const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
+ if (num_params != expected_tweakable_count)
+ {
+ LL_DEBUGS("Avatar") << "Number of params in AvatarAppearance msg (" << num_params << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. object: " << getID() << llendl;
}
if (params_changed)
@@ -7355,14 +7090,6 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
{
// AvatarAppearance message arrived without visual params
LL_DEBUGS("Avatar") << avString() << "no visual params" << LL_ENDL;
- if (drop_visual_params_debug)
- {
- llinfos << "Debug-faked lack of parameters on AvatarAppearance for object: " << getID() << llendl;
- }
- else
- {
- llinfos << "AvatarAppearance msg received without any parameters, object: " << getID() << llendl;
- }
const F32 LOADING_TIMEOUT_SECONDS = 60.f;
// this isn't really a problem if we already have a non-default shape
@@ -7385,7 +7112,14 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
// If all of the avatars are completely baked, release the global image caches to conserve memory.
LLVOAvatar::cullAvatarsByPixelArea();
-// llinfos << "processAvatarAppearance end " << mID << llendl;
+ if (isSelf())
+ {
+ mUseLocalAppearance = false;
+ }
+
+ updateMeshTextures();
+
+ //if (enable_verbose_dumps) dumpArchetypeXML(dump_prefix + "process_end");
}
// static
@@ -7415,6 +7149,7 @@ void LLVOAvatar::getAnimNames( LLDynamicArray<std::string>* names )
names->put( "enter_away_from_keyboard_state" );
}
+// static
void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
{
if (!userdata) return;
@@ -7433,7 +7168,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
{
if (!aux_src->getData())
{
- llerrs << "No auxiliary source data for onBakedTextureMasksLoaded" << llendl;
+ llerrs << "No auxiliary source (morph mask) data for image id " << id << llendl;
return;
}
@@ -7458,12 +7193,12 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
self->mBakedTextureDatas[BAKED_HEAD].mTexLayerSet->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1);
maskData->mLastDiscardLevel = discard_level; */
BOOL found_texture_id = false;
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (texture_dict->mIsUsedByBakedTexture)
{
const ETextureIndex texture_index = iter->first;
@@ -7485,7 +7220,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
}
if (!found_texture_id)
{
- llinfos << "onBakedTextureMasksLoaded(): unexpected image id: " << id << llendl;
+ llinfos << "unexpected image id: " << id << llendl;
}
self->dirtyMesh();
}
@@ -7493,7 +7228,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
{
// this can happen when someone uses an old baked texture possibly provided by
// viewer-side baked texture caching
- llwarns << "Masks loaded callback but NO aux source!" << llendl;
+ llwarns << "Masks loaded callback but NO aux source, id " << id << llendl;
}
}
@@ -7531,7 +7266,7 @@ void LLVOAvatar::onBakedTextureLoaded(BOOL success,
LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src,
S32 discard_level, BOOL final, void* userdata)
{
- //llinfos << "onBakedTextureLoaded: " << src_vi->getID() << llendl;
+ LL_DEBUGS("Avatar") << "onBakedTextureLoaded: " << src_vi->getID() << LL_ENDL;
LLUUID id = src_vi->getID();
LLUUID *avatar_idp = (LLUUID *)userdata;
@@ -7568,17 +7303,31 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
{
LL_DEBUGS("Avatar") << avString() << " i " << i << " id " << id << LL_ENDL;
mBakedTextureDatas[i].mIsLoaded = true;
- mBakedTextureDatas[i].mLastTextureIndex = id;
+ mBakedTextureDatas[i].mLastTextureID = id;
mBakedTextureDatas[i].mIsUsed = true;
- for (U32 k = 0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
+
+ if (isUsingLocalAppearance())
{
- mBakedTextureDatas[i].mMeshes[k]->setTexture( image_baked );
+ llinfos << "not changing to baked texture while isUsingLocalAppearance" << llendl;
}
- if (mBakedTextureDatas[i].mTexLayerSet)
+ else
{
- //mBakedTextureDatas[i].mTexLayerSet->destroyComposite();
+ debugColorizeSubMeshes(i,LLColor4::green);
+
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
+ for (; iter != end; ++iter)
+ {
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setTexture( image_baked );
+ }
+ }
}
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict =
+ LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
@@ -7591,9 +7340,15 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
// This is paired with similar code in updateMeshTextures that sets hair mesh color.
if (i == BAKED_HAIR)
{
- for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
+ avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
+ avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
+ for (; iter != end; ++iter)
{
- mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( 1.f, 1.f, 1.f, 1.f );
+ LLAvatarJointMesh* mesh = (*iter);
+ if (mesh)
+ {
+ mesh->setColor( LLColor4::white );
+ }
}
}
}
@@ -7602,11 +7357,39 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
dirtyMesh();
}
-// static
-void LLVOAvatar::dumpArchetypeXML( void* )
+std::string get_sequential_numbered_file_name(const std::string& prefix,
+ const std::string& suffix)
+{
+ typedef std::map<std::string,S32> file_num_type;
+ static file_num_type file_nums;
+ file_num_type::iterator it = file_nums.find(prefix);
+ S32 num = 0;
+ if (it != file_nums.end())
+ {
+ num = it->second;
+ }
+ file_nums[prefix] = num+1;
+ std::string outfilename = prefix + " " + llformat("%04d",num) + ".xml";
+ std::replace(outfilename.begin(),outfilename.end(),' ','_');
+ return outfilename;
+}
+
+void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_wearables )
{
+ std::string outprefix(prefix);
+ if (outprefix.empty())
+ {
+ outprefix = getFullname() + (isSelf()?"_s":"_o");
+ }
+ if (outprefix.empty())
+ {
+ outprefix = std::string("new_archetype");
+ }
+ std::string outfilename = get_sequential_numbered_file_name(outprefix,".xml");
+
LLAPRFile outfile;
- outfile.open(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,"new archetype.xml"), LL_APR_WB );
+ std::string fullpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,outfilename);
+ outfile.open(fullpath, LL_APR_WB );
apr_file_t* file = outfile.getFileHandle();
if (!file)
{
@@ -7614,36 +7397,60 @@ void LLVOAvatar::dumpArchetypeXML( void* )
}
else
{
- llinfos << "xmlfile write handle obtained : " << gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,"new archetype.xml") << llendl;
+ llinfos << "xmlfile write handle obtained : " << fullpath << llendl;
}
apr_file_printf( file, "<?xml version=\"1.0\" encoding=\"US-ASCII\" standalone=\"yes\"?>\n" );
apr_file_printf( file, "<linden_genepool version=\"1.0\">\n" );
apr_file_printf( file, "\n\t<archetype name=\"???\">\n" );
- // only body parts, not clothing.
- for (S32 type = LLWearableType::WT_SHAPE; type <= LLWearableType::WT_EYES; type++)
+ if (group_by_wearables)
{
- const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type);
- apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() );
-
- for (LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam())
+ for (S32 type = LLWearableType::WT_SHAPE; type < LLWearableType::WT_COUNT; type++)
{
- LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
- if( (viewer_param->getWearableType() == type) &&
- (viewer_param->isTweakable() ) )
+ const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type);
+ apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() );
+
+ for (LLVisualParam* param = getFirstVisualParam(); param; param = getNextVisualParam())
+ {
+ LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
+ if( (viewer_param->getWearableType() == type) &&
+ (viewer_param->isTweakable() ) )
+ {
+ dump_visual_param(file, viewer_param, viewer_param->getWeight());
+ }
+ }
+
+ for (U8 te = 0; te < TEX_NUM_INDICES; te++)
{
- apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
- viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight());
+ if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type)
+ {
+ // MULTIPLE_WEARABLES: extend to multiple wearables?
+ LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
+ if( te_image )
+ {
+ std::string uuid_str;
+ te_image->getID().toString( uuid_str );
+ apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", te, uuid_str.c_str());
+ }
+ }
}
}
+ }
+ else
+ {
+ // Just dump all params sequentially.
+ for (LLVisualParam* param = getFirstVisualParam(); param; param = getNextVisualParam())
+ {
+ LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
+ dump_visual_param(file, viewer_param, viewer_param->getWeight());
+ }
for (U8 te = 0; te < TEX_NUM_INDICES; te++)
{
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex)te) == type)
{
// MULTIPLE_WEARABLES: extend to multiple wearables?
- LLViewerTexture* te_image = ((LLVOAvatar *)(gAgentAvatarp))->getImage((ETextureIndex)te, 0);
+ LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
if( te_image )
{
std::string uuid_str;
@@ -7652,14 +7459,18 @@ void LLVOAvatar::dumpArchetypeXML( void* )
}
}
}
+
}
apr_file_printf( file, "\t</archetype>\n" );
apr_file_printf( file, "\n</linden_genepool>\n" );
- //explictly close the file if it is still open which it should be
- if (file)
+
+ bool ultra_verbose = false;
+ if (isSelf() && ultra_verbose)
{
- outfile.close();
+ // show the cloned params inside the wearables as well.
+ gAgentAvatarp->dumpWearableInfo(outfile);
}
+ // File will close when handle goes out of scope
}
@@ -7741,15 +7552,9 @@ void LLVOAvatar::cullAvatarsByPixelArea()
}
}
- // runway - this doesn't detect gray/grey state.
- // think we just need to be checking self av since it's the only
- // one with lltexlayer stuff.
+ // runway - this doesn't really detect gray/grey state.
S32 grey_avatars = 0;
- if (LLVOAvatar::areAllNearbyInstancesBaked(grey_avatars))
- {
- LLVOAvatar::deleteCachedImages(false);
- }
- else
+ if (!LLVOAvatar::areAllNearbyInstancesBaked(grey_avatars))
{
if (gFrameTimeSeconds != sUnbakedUpdateTime) // only update once per frame
{
@@ -7777,501 +7582,44 @@ void LLVOAvatar::startAppearanceAnimation()
}
}
-// virtual
-void LLVOAvatar::removeMissingBakedTextures()
-{
-}
-
-//-----------------------------------------------------------------------------
-// LLVOAvatarXmlInfo
-//-----------------------------------------------------------------------------
-
-LLVOAvatar::LLVOAvatarXmlInfo::LLVOAvatarXmlInfo()
- : mTexSkinColorInfo(0), mTexHairColorInfo(0), mTexEyeColorInfo(0)
-{
-}
-
-LLVOAvatar::LLVOAvatarXmlInfo::~LLVOAvatarXmlInfo()
-{
- std::for_each(mMeshInfoList.begin(), mMeshInfoList.end(), DeletePointer());
- std::for_each(mSkeletalDistortionInfoList.begin(), mSkeletalDistortionInfoList.end(), DeletePointer());
- std::for_each(mAttachmentInfoList.begin(), mAttachmentInfoList.end(), DeletePointer());
- deleteAndClear(mTexSkinColorInfo);
- deleteAndClear(mTexHairColorInfo);
- deleteAndClear(mTexEyeColorInfo);
- std::for_each(mLayerInfoList.begin(), mLayerInfoList.end(), DeletePointer());
- std::for_each(mDriverInfoList.begin(), mDriverInfoList.end(), DeletePointer());
- std::for_each(mMorphMaskInfoList.begin(), mMorphMaskInfoList.end(), DeletePointer());
-}
-
-////-----------------------------------------------------------------------------
-//// LLVOAvatarBoneInfo::parseXml()
-////-----------------------------------------------------------------------------
-//BOOL LLVOAvatarBoneInfo::parseXml(LLXmlTreeNode* node)
-//{
-// if (node->hasName("bone"))
-// {
-// mIsJoint = TRUE;
-// static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
-// if (!node->getFastAttributeString(name_string, mName))
-// {
-// llwarns << "Bone without name" << llendl;
-// return FALSE;
-// }
-// }
-// else if (node->hasName("collision_volume"))
-// {
-// mIsJoint = FALSE;
-// static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
-// if (!node->getFastAttributeString(name_string, mName))
-// {
-// mName = "Collision Volume";
-// }
-// }
-// else
-// {
-// llwarns << "Invalid node " << node->getName() << llendl;
-// return FALSE;
-// }
-//
-// static LLStdStringHandle pos_string = LLXmlTree::addAttributeString("pos");
-// if (!node->getFastAttributeVector3(pos_string, mPos))
-// {
-// llwarns << "Bone without position" << llendl;
-// return FALSE;
-// }
-//
-// static LLStdStringHandle rot_string = LLXmlTree::addAttributeString("rot");
-// if (!node->getFastAttributeVector3(rot_string, mRot))
-// {
-// llwarns << "Bone without rotation" << llendl;
-// return FALSE;
-// }
-//
-// static LLStdStringHandle scale_string = LLXmlTree::addAttributeString("scale");
-// if (!node->getFastAttributeVector3(scale_string, mScale))
-// {
-// llwarns << "Bone without scale" << llendl;
-// return FALSE;
-// }
-//
-// if (mIsJoint)
-// {
-// static LLStdStringHandle pivot_string = LLXmlTree::addAttributeString("pivot");
-// if (!node->getFastAttributeVector3(pivot_string, mPivot))
-// {
-// llwarns << "Bone without pivot" << llendl;
-// return FALSE;
-// }
-// }
-//
-// // parse children
-// LLXmlTreeNode* child;
-// for( child = node->getFirstChild(); child; child = node->getNextChild() )
-// {
-// LLVOAvatarBoneInfo *child_info = new LLVOAvatarBoneInfo;
-// if (!child_info->parseXml(child))
-// {
-// delete child_info;
-// return FALSE;
-// }
-// mChildList.push_back(child_info);
-// }
-// return TRUE;
-//}
-//
-////-----------------------------------------------------------------------------
-//// LLVOAvatarSkeletonInfo::parseXml()
-////-----------------------------------------------------------------------------
-//BOOL LLVOAvatarSkeletonInfo::parseXml(LLXmlTreeNode* node)
-//{
-// static LLStdStringHandle num_bones_string = LLXmlTree::addAttributeString("num_bones");
-// if (!node->getFastAttributeS32(num_bones_string, mNumBones))
-// {
-// llwarns << "Couldn't find number of bones." << llendl;
-// return FALSE;
-// }
-//
-// static LLStdStringHandle num_collision_volumes_string = LLXmlTree::addAttributeString("num_collision_volumes");
-// node->getFastAttributeS32(num_collision_volumes_string, mNumCollisionVolumes);
-//
-// LLXmlTreeNode* child;
-// for( child = node->getFirstChild(); child; child = node->getNextChild() )
-// {
-// LLVOAvatarBoneInfo *info = new LLVOAvatarBoneInfo;
-// if (!info->parseXml(child))
-// {
-// delete info;
-// llwarns << "Error parsing bone in skeleton file" << llendl;
-// return FALSE;
-// }
-// mBoneInfoList.push_back(info);
-// }
-// return TRUE;
-//}
-
-//-----------------------------------------------------------------------------
-// parseXmlSkeletonNode(): parses <skeleton> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
-{
- LLXmlTreeNode* node = root->getChildByName( "skeleton" );
- if( !node )
- {
- llwarns << "avatar file: missing <skeleton>" << llendl;
- return FALSE;
- }
-
- LLXmlTreeNode* child;
-
- // SKELETON DISTORTIONS
- for (child = node->getChildByName( "param" );
- child;
- child = node->getNextNamedChild())
- {
- if (!child->getChildByName("param_skeleton"))
- {
- if (child->getChildByName("param_morph"))
- {
- llwarns << "Can't specify morph param in skeleton definition." << llendl;
- }
- else
- {
- llwarns << "Unknown param type." << llendl;
- }
- continue;
- }
-
- LLPolySkeletalDistortionInfo *info = new LLPolySkeletalDistortionInfo;
- if (!info->parseXml(child))
- {
- delete info;
- return FALSE;
- }
-
- mSkeletalDistortionInfoList.push_back(info);
- }
-
- // ATTACHMENT POINTS
- for (child = node->getChildByName( "attachment_point" );
- child;
- child = node->getNextNamedChild())
- {
- LLVOAvatarAttachmentInfo* info = new LLVOAvatarAttachmentInfo();
-
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if (!child->getFastAttributeString(name_string, info->mName))
- {
- llwarns << "No name supplied for attachment point." << llendl;
- delete info;
- continue;
- }
-
- static LLStdStringHandle joint_string = LLXmlTree::addAttributeString("joint");
- if (!child->getFastAttributeString(joint_string, info->mJointName))
- {
- llwarns << "No bone declared in attachment point " << info->mName << llendl;
- delete info;
- continue;
- }
-
- static LLStdStringHandle position_string = LLXmlTree::addAttributeString("position");
- if (child->getFastAttributeVector3(position_string, info->mPosition))
- {
- info->mHasPosition = TRUE;
- }
-
- static LLStdStringHandle rotation_string = LLXmlTree::addAttributeString("rotation");
- if (child->getFastAttributeVector3(rotation_string, info->mRotationEuler))
- {
- info->mHasRotation = TRUE;
- }
- static LLStdStringHandle group_string = LLXmlTree::addAttributeString("group");
- if (child->getFastAttributeS32(group_string, info->mGroup))
- {
- if (info->mGroup == -1)
- info->mGroup = -1111; // -1 = none parsed, < -1 = bad value
- }
-
- static LLStdStringHandle id_string = LLXmlTree::addAttributeString("id");
- if (!child->getFastAttributeS32(id_string, info->mAttachmentID))
- {
- llwarns << "No id supplied for attachment point " << info->mName << llendl;
- delete info;
- continue;
- }
-
- static LLStdStringHandle slot_string = LLXmlTree::addAttributeString("pie_slice");
- child->getFastAttributeS32(slot_string, info->mPieMenuSlice);
-
- static LLStdStringHandle visible_in_first_person_string = LLXmlTree::addAttributeString("visible_in_first_person");
- child->getFastAttributeBOOL(visible_in_first_person_string, info->mVisibleFirstPerson);
-
- static LLStdStringHandle hud_attachment_string = LLXmlTree::addAttributeString("hud");
- child->getFastAttributeBOOL(hud_attachment_string, info->mIsHUDAttachment);
-
- mAttachmentInfoList.push_back(info);
- }
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// parseXmlMeshNodes(): parses <mesh> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
+//virtual
+void LLVOAvatar::bodySizeChanged()
{
- for (LLXmlTreeNode* node = root->getChildByName( "mesh" );
- node;
- node = root->getNextNamedChild())
- {
- LLVOAvatarMeshInfo *info = new LLVOAvatarMeshInfo;
-
- // attribute: type
- static LLStdStringHandle type_string = LLXmlTree::addAttributeString("type");
- if( !node->getFastAttributeString( type_string, info->mType ) )
- {
- llwarns << "Avatar file: <mesh> is missing type attribute. Ignoring element. " << llendl;
- delete info;
- return FALSE; // Ignore this element
- }
-
- static LLStdStringHandle lod_string = LLXmlTree::addAttributeString("lod");
- if (!node->getFastAttributeS32( lod_string, info->mLOD ))
- {
- llwarns << "Avatar file: <mesh> is missing lod attribute. Ignoring element. " << llendl;
- delete info;
- return FALSE; // Ignore this element
- }
-
- static LLStdStringHandle file_name_string = LLXmlTree::addAttributeString("file_name");
- if( !node->getFastAttributeString( file_name_string, info->mMeshFileName ) )
- {
- llwarns << "Avatar file: <mesh> is missing file_name attribute. Ignoring: " << info->mType << llendl;
- delete info;
- return FALSE; // Ignore this element
- }
-
- static LLStdStringHandle reference_string = LLXmlTree::addAttributeString("reference");
- node->getFastAttributeString( reference_string, info->mReferenceMeshName );
-
- // attribute: min_pixel_area
- static LLStdStringHandle min_pixel_area_string = LLXmlTree::addAttributeString("min_pixel_area");
- static LLStdStringHandle min_pixel_width_string = LLXmlTree::addAttributeString("min_pixel_width");
- if (!node->getFastAttributeF32( min_pixel_area_string, info->mMinPixelArea ))
- {
- F32 min_pixel_area = 0.1f;
- if (node->getFastAttributeF32( min_pixel_width_string, min_pixel_area ))
- {
- // this is square root of pixel area (sensible to use linear space in defining lods)
- min_pixel_area = min_pixel_area * min_pixel_area;
- }
- info->mMinPixelArea = min_pixel_area;
- }
-
- // Parse visual params for this node only if we haven't already
- for (LLXmlTreeNode* child = node->getChildByName( "param" );
- child;
- child = node->getNextNamedChild())
- {
- if (!child->getChildByName("param_morph"))
- {
- if (child->getChildByName("param_skeleton"))
- {
- llwarns << "Can't specify skeleton param in a mesh definition." << llendl;
- }
- else
- {
- llwarns << "Unknown param type." << llendl;
- }
- continue;
- }
-
- LLPolyMorphTargetInfo *morphinfo = new LLPolyMorphTargetInfo();
- if (!morphinfo->parseXml(child))
- {
- delete morphinfo;
- delete info;
- return -1;
- }
- BOOL shared = FALSE;
- static LLStdStringHandle shared_string = LLXmlTree::addAttributeString("shared");
- child->getFastAttributeBOOL(shared_string, shared);
-
- info->mPolyMorphTargetInfoList.push_back(LLVOAvatarMeshInfo::morph_info_pair_t(morphinfo, shared));
- }
-
- mMeshInfoList.push_back(info);
+ if (isSelf() && !LLAppearanceMgr::instance().isInUpdateAppearanceFromCOF())
+ { // notify simulator of change in size
+ // but not if we are in the middle of updating appearance
+ gAgent.sendAgentSetAppearance();
}
- return TRUE;
}
-//-----------------------------------------------------------------------------
-// parseXmlColorNodes(): parses <global_color> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
+BOOL LLVOAvatar::isUsingServerBakes() const
{
- for (LLXmlTreeNode* color_node = root->getChildByName( "global_color" );
- color_node;
- color_node = root->getNextNamedChild())
+#if 1
+ // Sanity check - visual param for appearance version should match mUseServerBakes
+ LLVisualParam* appearance_version_param = getVisualParam(11000);
+ llassert(appearance_version_param);
+ F32 wt = appearance_version_param->getWeight();
+ F32 expect_wt = mUseServerBakes ? 1.0 : 0.0;
+ if (!is_approx_equal(wt,expect_wt))
{
- std::string global_color_name;
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if (color_node->getFastAttributeString( name_string, global_color_name ) )
- {
- if( global_color_name == "skin_color" )
- {
- if (mTexSkinColorInfo)
- {
- llwarns << "avatar file: multiple instances of skin_color" << llendl;
- return FALSE;
- }
- mTexSkinColorInfo = new LLTexGlobalColorInfo;
- if( !mTexSkinColorInfo->parseXml( color_node ) )
- {
- deleteAndClear(mTexSkinColorInfo);
- llwarns << "avatar file: mTexSkinColor->parseXml() failed" << llendl;
- return FALSE;
- }
- }
- else if( global_color_name == "hair_color" )
- {
- if (mTexHairColorInfo)
- {
- llwarns << "avatar file: multiple instances of hair_color" << llendl;
- return FALSE;
- }
- mTexHairColorInfo = new LLTexGlobalColorInfo;
- if( !mTexHairColorInfo->parseXml( color_node ) )
- {
- deleteAndClear(mTexHairColorInfo);
- llwarns << "avatar file: mTexHairColor->parseXml() failed" << llendl;
- return FALSE;
- }
- }
- else if( global_color_name == "eye_color" )
- {
- if (mTexEyeColorInfo)
- {
- llwarns << "avatar file: multiple instances of eye_color" << llendl;
- return FALSE;
- }
- mTexEyeColorInfo = new LLTexGlobalColorInfo;
- if( !mTexEyeColorInfo->parseXml( color_node ) )
- {
- llwarns << "avatar file: mTexEyeColor->parseXml() failed" << llendl;
- return FALSE;
- }
- }
- }
+ llwarns << "wt " << wt << " differs from expected " << expect_wt << llendl;
}
- return TRUE;
-}
+#endif
-//-----------------------------------------------------------------------------
-// parseXmlLayerNodes(): parses <layer_set> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
-{
- for (LLXmlTreeNode* layer_node = root->getChildByName( "layer_set" );
- layer_node;
- layer_node = root->getNextNamedChild())
- {
- LLTexLayerSetInfo* layer_info = new LLTexLayerSetInfo();
- if( layer_info->parseXml( layer_node ) )
- {
- mLayerInfoList.push_back(layer_info);
- }
- else
- {
- delete layer_info;
- llwarns << "avatar file: layer_set->parseXml() failed" << llendl;
- return FALSE;
- }
- }
- return TRUE;
+ return mUseServerBakes;
}
-//-----------------------------------------------------------------------------
-// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
+void LLVOAvatar::setIsUsingServerBakes(BOOL newval)
{
- LLXmlTreeNode* driver = root->getChildByName( "driver_parameters" );
- if( driver )
- {
- for (LLXmlTreeNode* grand_child = driver->getChildByName( "param" );
- grand_child;
- grand_child = driver->getNextNamedChild())
- {
- if( grand_child->getChildByName( "param_driver" ) )
- {
- LLDriverParamInfo* driver_info = new LLDriverParamInfo();
- if( driver_info->parseXml( grand_child ) )
- {
- mDriverInfoList.push_back(driver_info);
- }
- else
- {
- delete driver_info;
- llwarns << "avatar file: driver_param->parseXml() failed" << llendl;
- return FALSE;
- }
- }
- }
- }
- return TRUE;
+ mUseServerBakes = newval;
+ LLVisualParam* appearance_version_param = getVisualParam(11000);
+ llassert(appearance_version_param);
+ appearance_version_param->setWeight(newval ? 1.0 : 0.0, false);
}
-//-----------------------------------------------------------------------------
-// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root)
-{
- LLXmlTreeNode* masks = root->getChildByName( "morph_masks" );
- if( !masks )
- {
- return FALSE;
- }
-
- for (LLXmlTreeNode* grand_child = masks->getChildByName( "mask" );
- grand_child;
- grand_child = masks->getNextNamedChild())
- {
- LLVOAvatarMorphInfo* info = new LLVOAvatarMorphInfo();
-
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("morph_name");
- if (!grand_child->getFastAttributeString(name_string, info->mName))
- {
- llwarns << "No name supplied for morph mask." << llendl;
- delete info;
- continue;
- }
-
- static LLStdStringHandle region_string = LLXmlTree::addAttributeString("body_region");
- if (!grand_child->getFastAttributeString(region_string, info->mRegion))
- {
- llwarns << "No region supplied for morph mask." << llendl;
- delete info;
- continue;
- }
-
- static LLStdStringHandle layer_string = LLXmlTree::addAttributeString("layer");
- if (!grand_child->getFastAttributeString(layer_string, info->mLayer))
- {
- llwarns << "No layer supplied for morph mask." << llendl;
- delete info;
- continue;
- }
-
- // optional parameter. don't throw a warning if not present.
- static LLStdStringHandle invert_string = LLXmlTree::addAttributeString("invert");
- grand_child->getFastAttributeBOOL(invert_string, info->mInvert);
-
- mMorphMaskInfoList.push_back(info);
- }
-
- return TRUE;
+// virtual
+void LLVOAvatar::removeMissingBakedTextures()
+{
}
//virtual
@@ -8447,7 +7795,7 @@ void LLVOAvatar::idleUpdateRenderCost()
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
ETextureIndex tex_index = baked_dict->mTextureIndex;
if ((tex_index != TEX_SKIRT_BAKED) || (isWearingWearableType(LLWearableType::WT_SKIRT)))
{
@@ -8527,11 +7875,11 @@ void LLVOAvatar::idleUpdateRenderCost()
}
// print any avatar textures we didn't already know about
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
// TODO: MULTI-WEARABLE: handle multiple textures for self
const LLViewerTexture* te_image = getImage(iter->first,0);
if (!te_image)
@@ -8560,26 +7908,26 @@ void LLVOAvatar::idleUpdateRenderCost()
BOOL LLVOAvatar::isIndexLocalTexture(ETextureIndex index)
{
if (index < 0 || index >= TEX_NUM_INDICES) return false;
- return LLVOAvatarDictionary::getInstance()->getTexture(index)->mIsLocalTexture;
+ return LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mIsLocalTexture;
}
// static
BOOL LLVOAvatar::isIndexBakedTexture(ETextureIndex index)
{
if (index < 0 || index >= TEX_NUM_INDICES) return false;
- return LLVOAvatarDictionary::getInstance()->getTexture(index)->mIsBakedTexture;
+ return LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mIsBakedTexture;
}
const std::string LLVOAvatar::getBakedStatusForPrintout() const
{
std::string line;
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (texture_dict->mIsBakedTexture)
{
line += texture_dict->mName;
@@ -8611,7 +7959,7 @@ F32 calc_bouncy_animation(F32 x)
}
//virtual
-BOOL LLVOAvatar::isTextureDefined(LLVOAvatarDefines::ETextureIndex te, U32 index ) const
+BOOL LLVOAvatar::isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex te, U32 index ) const
{
if (isIndexLocalTexture(te))
{
@@ -8629,7 +7977,7 @@ BOOL LLVOAvatar::isTextureDefined(LLVOAvatarDefines::ETextureIndex te, U32 index
}
//virtual
-BOOL LLVOAvatar::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 index) const
+BOOL LLVOAvatar::isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const
{
if (isIndexLocalTexture(type))
{
@@ -8645,9 +7993,11 @@ BOOL LLVOAvatar::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 ind
}
//virtual
-BOOL LLVOAvatar::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, LLWearable *wearable) const
+BOOL LLVOAvatar::isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const
{
// non-self avatars don't have wearables
return FALSE;
}
+
+
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index c59a3a150c..85f6f25009 100644..100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -25,8 +25,8 @@
* $/LicenseInfo$
*/
-#ifndef LL_LLVOAVATAR_H
-#define LL_LLVOAVATAR_H
+#ifndef LL_VOAVATAR_H
+#define LL_VOAVATAR_H
#include <map>
#include <deque>
@@ -36,6 +36,7 @@
#include <boost/signals2.hpp>
#include "imageids.h" // IMG_INVISIBLE
+#include "llavatarappearance.h"
#include "llchat.h"
#include "lldrawpoolalpha.h"
#include "llviewerobject.h"
@@ -44,9 +45,10 @@
#include "llviewerjointmesh.h"
#include "llviewerjointattachment.h"
#include "llrendertarget.h"
-#include "llvoavatardefines.h"
+#include "llavatarappearancedefines.h"
#include "lltexglobalcolor.h"
#include "lldriverparam.h"
+#include "llviewertexlayer.h"
#include "material_codes.h" // LL_MCODE_END
#include "llviewerstats.h"
@@ -62,13 +64,15 @@ extern const LLUUID ANIM_AGENT_PELVIS_FIX;
extern const LLUUID ANIM_AGENT_TARGET;
extern const LLUUID ANIM_AGENT_WALK_ADJUST;
-class LLTexLayerSet;
+class LLViewerWearable;
class LLVoiceVisualizer;
class LLHUDNameTag;
class LLHUDEffectSpiral;
class LLTexGlobalColor;
struct LLVOAvatarBoneInfo;
struct LLVOAvatarChildJoint;
+//class LLViewerJoint;
+struct LLAppearanceMessageContents;
struct LLVOAvatarSkeletonInfo;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -76,17 +80,14 @@ struct LLVOAvatarSkeletonInfo;
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLVOAvatar :
+ public LLAvatarAppearance,
public LLViewerObject,
- public LLCharacter,
public boost::signals2::trackable
{
LOG_CLASS(LLVOAvatar);
public:
friend class LLVOAvatarSelf;
-protected:
- struct LLVOAvatarXmlInfo;
- struct LLMaskedMorph;
/********************************************************************************
** **
@@ -111,9 +112,6 @@ public:
virtual void initInstance(); // Called after construction to initialize the class.
protected:
virtual ~LLVOAvatar();
- BOOL loadSkeletonNode();
- BOOL loadMeshNodes();
- virtual BOOL loadLayersets();
/** Initialization
** **
@@ -128,31 +126,43 @@ protected:
// LLViewerObject interface and related
//--------------------------------------------------------------------
public:
- virtual void updateGL();
- virtual LLVOAvatar* asAvatar();
- virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
+ /*virtual*/ void updateGL();
+ /*virtual*/ LLVOAvatar* asAvatar();
+ virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
void **user_data,
U32 block_num,
const EObjectUpdateType update_type,
LLDataPacker *dp);
- virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
- virtual BOOL updateLOD();
- BOOL updateJointLODs();
- void updateLODRiggedAttachments( void );
- virtual BOOL isActive() const; // Whether this object needs to do an idleUpdate.
- virtual void updateTextures();
- virtual S32 setTETexture(const U8 te, const LLUUID& uuid); // If setting a baked texture, need to request it from a non-local sim.
- virtual void onShift(const LLVector4a& shift_vector);
- virtual U32 getPartitionType() const;
- virtual const LLVector3 getRenderPosition() const;
- virtual void updateDrawable(BOOL force_damped);
- virtual LLDrawable* createDrawable(LLPipeline *pipeline);
- virtual BOOL updateGeometry(LLDrawable *drawable);
- virtual void setPixelAreaAndAngle(LLAgent &agent);
- virtual void updateRegion(LLViewerRegion *regionp);
- virtual void updateSpatialExtents(LLVector4a& newMin, LLVector4a &newMax);
- virtual void getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax);
- virtual BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
+ virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
+ /*virtual*/ BOOL updateLOD();
+ BOOL updateJointLODs();
+ void updateLODRiggedAttachments( void );
+ /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
+ S32 totalTextureMemForUUIDS(std::set<LLUUID>& ids);
+ bool allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const;
+ bool allLocalTexturesCompletelyDownloaded() const;
+ bool allBakedTexturesCompletelyDownloaded() const;
+ void bakedTextureOriginCounts(S32 &sb_count, S32 &host_count,
+ S32 &both_count, S32 &neither_count);
+ std::string bakedTextureOriginInfo();
+ void collectLocalTextureUUIDs(std::set<LLUUID>& ids) const;
+ void collectBakedTextureUUIDs(std::set<LLUUID>& ids) const;
+ void collectTextureUUIDs(std::set<LLUUID>& ids);
+ void releaseOldTextures();
+ /*virtual*/ void updateTextures();
+ LLViewerFetchedTexture* getBakedTextureImage(const U8 te, const LLUUID& uuid);
+ /*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid); // If setting a baked texture, need to request it from a non-local sim.
+ /*virtual*/ void onShift(const LLVector4a& shift_vector);
+ /*virtual*/ U32 getPartitionType() const;
+ /*virtual*/ const LLVector3 getRenderPosition() const;
+ /*virtual*/ void updateDrawable(BOOL force_damped);
+ /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline);
+ /*virtual*/ BOOL updateGeometry(LLDrawable *drawable);
+ /*virtual*/ void setPixelAreaAndAngle(LLAgent &agent);
+ /*virtual*/ void updateRegion(LLViewerRegion *regionp);
+ /*virtual*/ void updateSpatialExtents(LLVector4a& newMin, LLVector4a &newMax);
+ /*virtual*/ void getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax);
+ /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
S32 face = -1, // which face to check, -1 = ALL_SIDES
BOOL pick_transparent = FALSE,
S32* face_hit = NULL, // which face was hit
@@ -173,16 +183,14 @@ public:
// LLCharacter interface and related
//--------------------------------------------------------------------
public:
- virtual LLVector3 getCharacterPosition();
- virtual LLQuaternion getCharacterRotation();
- virtual LLVector3 getCharacterVelocity();
- virtual LLVector3 getCharacterAngularVelocity();
- virtual LLJoint* getCharacterJoint(U32 num);
- virtual BOOL allocateCharacterJoints(U32 num);
-
- virtual LLUUID remapMotionID(const LLUUID& id);
- virtual BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
- virtual BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
+ /*virtual*/ LLVector3 getCharacterPosition();
+ /*virtual*/ LLQuaternion getCharacterRotation();
+ /*virtual*/ LLVector3 getCharacterVelocity();
+ /*virtual*/ LLVector3 getCharacterAngularVelocity();
+
+ /*virtual*/ LLUUID remapMotionID(const LLUUID& id);
+ /*virtual*/ BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
+ /*virtual*/ BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
virtual void stopMotionFromSource(const LLUUID& source_id);
virtual void requestStopMotion(LLMotion* motion);
LLMotion* findMotion(const LLUUID& id) const;
@@ -190,25 +198,18 @@ public:
void dumpAnimationState();
virtual LLJoint* getJoint(const std::string &name);
- virtual LLJoint* getRootJoint() { return &mRoot; }
void resetJointPositions( void );
void resetJointPositionsToDefault( void );
void resetSpecificJointPosition( const std::string& name );
- virtual const char* getAnimationPrefix() { return "avatar"; }
- virtual const LLUUID& getID() const;
- virtual LLVector3 getVolumePos(S32 joint_index, LLVector3& volume_offset);
- virtual LLJoint* findCollisionVolume(U32 volume_id);
- virtual S32 getCollisionVolumeID(std::string &name);
- virtual void addDebugText(const std::string& text);
- virtual F32 getTimeDilation();
- virtual void getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
- virtual F32 getPixelArea() const;
- virtual LLPolyMesh* getHeadMesh();
- virtual LLPolyMesh* getUpperBodyMesh();
- virtual LLVector3d getPosGlobalFromAgent(const LLVector3 &position);
- virtual LLVector3 getPosAgentFromGlobal(const LLVector3d &position);
+ /*virtual*/ const LLUUID& getID() const;
+ /*virtual*/ void addDebugText(const std::string& text);
+ /*virtual*/ F32 getTimeDilation();
+ /*virtual*/ void getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
+ /*virtual*/ F32 getPixelArea() const;
+ /*virtual*/ LLVector3d getPosGlobalFromAgent(const LLVector3 &position);
+ /*virtual*/ LLVector3 getPosAgentFromGlobal(const LLVector3d &position);
virtual void updateVisualParams();
@@ -223,14 +224,10 @@ public:
public:
virtual bool isSelf() const { return false; } // True if this avatar is for this viewer's agent
- bool isBuilt() const { return mIsBuilt; }
private: //aligned members
LL_ALIGN_16(LLVector4a mImpostorExtents[2]);
-private:
- BOOL mSupportsAlphaLayers; // For backwards compatibility, TRUE for 1.23+ clients
-
//--------------------------------------------------------------------
// Updates
//--------------------------------------------------------------------
@@ -293,17 +290,21 @@ public:
virtual BOOL getIsCloud() const;
BOOL isFullyTextured() const;
BOOL hasGray() const;
- S32 getRezzedStatus() const; // 0 = cloud, 1 = gray, 2 = fully textured.
+ S32 getRezzedStatus() const; // 0 = cloud, 1 = gray, 2 = textured, 3 = textured and fully downloaded.
void updateRezzedStatusTimers();
S32 mLastRezzedStatus;
- LLViewerStats::PhaseMap& getPhases()
- {
- return mPhases;
- }
+
+ void startPhase(const std::string& phase_name);
+ void stopPhase(const std::string& phase_name, bool err_check = true);
+ void clearPhases();
+ void logPendingPhases();
+ static void logPendingPhasesAllAvatars();
+ void logMetricsTimerRecord(const std::string& phase_name, F32 elapsed, bool completed);
protected:
+ LLViewerStats::PhaseMap& getPhases() { return mPhases; }
BOOL updateIsFullyLoaded();
BOOL processFullyLoadedChange(bool loading);
void updateRuthTimer(bool loading);
@@ -318,24 +319,6 @@ private:
LLFrameTimer mFullyLoadedTimer;
LLFrameTimer mRuthTimer;
-public:
- class ScopedPhaseSetter
- {
- public:
- ScopedPhaseSetter(LLVOAvatar *avatarp, std::string phase_name):
- mAvatar(avatarp), mPhaseName(phase_name)
- {
- if (mAvatar) { mAvatar->getPhases().startPhase(mPhaseName); }
- }
- ~ScopedPhaseSetter()
- {
- if (mAvatar) { mAvatar->getPhases().stopPhase(mPhaseName); }
- }
- private:
- std::string mPhaseName;
- LLVOAvatar* mAvatar;
- };
-
private:
LLViewerStats::PhaseMap mPhases;
@@ -345,20 +328,25 @@ protected:
/** State
** **
*******************************************************************************/
-
/********************************************************************************
** **
** SKELETON
**/
+protected:
+ /*virtual*/ LLAvatarJoint* createAvatarJoint(); // Returns LLViewerJoint
+ /*virtual*/ LLAvatarJoint* createAvatarJoint(S32 joint_num); // Returns LLViewerJoint
+ /*virtual*/ LLAvatarJointMesh* createAvatarJointMesh(); // Returns LLViewerJointMesh
public:
void updateHeadOffset();
- F32 getPelvisToFoot() const { return mPelvisToFoot; }
void setPelvisOffset( bool hasOffset, const LLVector3& translation, F32 offset ) ;
bool hasPelvisOffset( void ) { return mHasPelvisOffset; }
void postPelvisSetRecalc( void );
void setPelvisOffset( F32 pelvixFixupAmount );
+ /*virtual*/ BOOL loadSkeletonNode();
+ /*virtual*/ void buildCharacter();
+
bool mHasPelvisOffset;
LLVector3 mPelvisOffset;
F32 mLastPelvisToFoot;
@@ -367,62 +355,8 @@ public:
LLVector3 mCurRootToHeadOffset;
LLVector3 mTargetRootToHeadOffset;
- LLVector3 mHeadOffset; // current head position
- LLViewerJoint mRoot;
-
- typedef std::map<std::string, LLJoint*> joint_map_t;
- joint_map_t mJointMap;
-
-protected:
- static BOOL parseSkeletonFile(const std::string& filename);
- void buildCharacter();
- virtual BOOL loadAvatar();
-
- BOOL setupBone(const LLVOAvatarChildJoint& info, LLViewerJoint* parent, S32 &current_volume_num, S32 &current_joint_num);
- BOOL buildSkeleton(const LLVOAvatarSkeletonInfo *info);
-private:
- BOOL mIsBuilt; // state of deferred character building
- S32 mNumJoints;
- LLViewerJoint* mSkeleton;
-
- //--------------------------------------------------------------------
- // Pelvis height adjustment members.
- //--------------------------------------------------------------------
-public:
- LLVector3 mBodySize;
S32 mLastSkeletonSerialNum;
-private:
- F32 mPelvisToFoot;
- //--------------------------------------------------------------------
- // Cached pointers to well known joints
- //--------------------------------------------------------------------
-public:
- LLViewerJoint* mPelvisp;
- LLViewerJoint* mTorsop;
- LLViewerJoint* mChestp;
- LLViewerJoint* mNeckp;
- LLViewerJoint* mHeadp;
- LLViewerJoint* mSkullp;
- LLViewerJoint* mEyeLeftp;
- LLViewerJoint* mEyeRightp;
- LLViewerJoint* mHipLeftp;
- LLViewerJoint* mHipRightp;
- LLViewerJoint* mKneeLeftp;
- LLViewerJoint* mKneeRightp;
- LLViewerJoint* mAnkleLeftp;
- LLViewerJoint* mAnkleRightp;
- LLViewerJoint* mFootLeftp;
- LLViewerJoint* mFootRightp;
- LLViewerJoint* mWristLeftp;
- LLViewerJoint* mWristRightp;
-
- //--------------------------------------------------------------------
- // XML parse tree
- //--------------------------------------------------------------------
-private:
- static LLXmlTree sXMLTree; // avatar config file
- static LLXMLNodePtr sSkeletonXMLTree; // avatar skeleton file
/** Skeleton
** **
@@ -445,7 +379,6 @@ public:
static void deleteCachedImages(bool clearAll=true);
static void destroyGL();
static void restoreGL();
- BOOL mIsDummy; // for special views
S32 mSpecialRenderMode; // special lighting
U32 mAttachmentGeometryBytes; //number of bytes in attached geometry
F32 mAttachmentSurfaceArea; //estimated surface area of attachments
@@ -463,9 +396,15 @@ private:
// Morph masks
//--------------------------------------------------------------------
public:
- BOOL morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
- void addMaskedMorph(LLVOAvatarDefines::EBakedTextureIndex index, LLPolyMorphTarget* morph_target, BOOL invert, std::string layer);
- void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
+ /*virtual*/ void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLAvatarAppearanceDefines::EBakedTextureIndex index = LLAvatarAppearanceDefines::BAKED_NUM_INDICES);
+ BOOL morphMaskNeedsUpdate(LLAvatarAppearanceDefines::EBakedTextureIndex index = LLAvatarAppearanceDefines::BAKED_NUM_INDICES);
+
+
+ //--------------------------------------------------------------------
+ // Global colors
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/void onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake);
//--------------------------------------------------------------------
// Visibility
@@ -548,10 +487,10 @@ private:
// Constants
//--------------------------------------------------------------------
public:
- virtual LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLViewerTexture::BOOST_AVATAR; }
- virtual LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLViewerTexture::BOOST_AVATAR_BAKED; }
+ virtual LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLGLTexture::BOOST_AVATAR; }
+ virtual LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLGLTexture::BOOST_AVATAR_BAKED; }
virtual S32 getTexImageSize() const;
- virtual S32 getTexImageArea() const { return getTexImageSize()*getTexImageSize(); }
+ /*virtual*/ S32 getTexImageArea() const { return getTexImageSize()*getTexImageSize(); }
/** Rendering
** **
@@ -566,9 +505,9 @@ public:
// Loading status
//--------------------------------------------------------------------
public:
- virtual BOOL isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
- virtual BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
- virtual BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, LLWearable *wearable) const;
+ virtual BOOL isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const;
+ virtual BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const;
+ virtual BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const;
BOOL isFullyBaked();
static BOOL areAllNearbyInstancesBaked(S32& grey_avatars);
@@ -579,6 +518,7 @@ public:
// Baked textures
//--------------------------------------------------------------------
public:
+ /*virtual*/ LLTexLayerSet* createTexLayerSet(); // Return LLViewerTexLayerSet
void releaseComponentTextures(); // ! BACKWARDS COMPATIBILITY !
protected:
static void onBakedTextureMasksLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
@@ -586,32 +526,20 @@ protected:
static void onBakedTextureLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
virtual void removeMissingBakedTextures();
void useBakedTexture(const LLUUID& id);
+ LLViewerTexLayerSet* getTexLayerSet(const U32 index) const { return dynamic_cast<LLViewerTexLayerSet*>(mBakedTextureDatas[index].mTexLayerSet); }
+
- typedef std::deque<LLMaskedMorph *> morph_list_t;
- struct BakedTextureData
- {
- LLUUID mLastTextureIndex;
- LLTexLayerSet* mTexLayerSet; // Only exists for self
- bool mIsLoaded;
- bool mIsUsed;
- LLVOAvatarDefines::ETextureIndex mTextureIndex;
- U32 mMaskTexName;
- // Stores pointers to the joint meshes that this baked texture deals with
- std::vector< LLViewerJointMesh * > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
- morph_list_t mMaskedMorphs;
- };
- typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
- bakedtexturedata_vec_t mBakedTextureDatas;
LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList ;
BOOL mLoadedCallbacksPaused;
+ std::set<LLUUID> mTextureIDs;
//--------------------------------------------------------------------
// Local Textures
//--------------------------------------------------------------------
protected:
- virtual void setLocalTexture(LLVOAvatarDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index = 0);
- virtual void addLocalTextureStats(LLVOAvatarDefines::ETextureIndex type, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked, U32 index = 0);
+ virtual void setLocalTexture(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index = 0);
+ virtual void addLocalTextureStats(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked);
// MULTI-WEARABLE: make self-only?
- virtual void setBakedReady(LLVOAvatarDefines::ETextureIndex type, BOOL baked_version_exists, U32 index = 0);
+ virtual void setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index = 0);
//--------------------------------------------------------------------
// Texture accessors
@@ -619,6 +547,7 @@ protected:
private:
virtual void setImage(const U8 te, LLViewerTexture *imagep, const U32 index);
virtual LLViewerTexture* getImage(const U8 te, const U32 index) const;
+ const std::string getImageURL(const U8 te, const LLUUID &uuid);
virtual const LLTextureEntry* getTexEntry(const U8 te_num) const;
virtual void setTexEntry(const U8 index, const LLTextureEntry &te);
@@ -645,13 +574,11 @@ public:
// Static texture/mesh/baked dictionary
//--------------------------------------------------------------------
public:
- static BOOL isIndexLocalTexture(LLVOAvatarDefines::ETextureIndex i);
- static BOOL isIndexBakedTexture(LLVOAvatarDefines::ETextureIndex i);
+ static BOOL isIndexLocalTexture(LLAvatarAppearanceDefines::ETextureIndex i);
+ static BOOL isIndexBakedTexture(LLAvatarAppearanceDefines::ETextureIndex i);
private:
- static const LLVOAvatarDefines::LLVOAvatarDictionary *getDictionary() { return sAvatarDictionary; }
- static LLVOAvatarDefines::LLVOAvatarDictionary* sAvatarDictionary;
- static LLVOAvatarSkeletonInfo* sAvatarSkeletonInfo;
- static LLVOAvatarXmlInfo* sAvatarXmlInfo;
+ static const LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary *getDictionary() { return sAvatarDictionary; }
+ static LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary* sAvatarDictionary;
//--------------------------------------------------------------------
// Messaging
@@ -672,22 +599,20 @@ private:
**/
public:
- void updateMeshTextures();
+ void debugColorizeSubMeshes(U32 i, const LLColor4& color);
+ virtual void updateMeshTextures();
void updateSexDependentLayerSets(BOOL upload_bake);
- void dirtyMesh(); // Dirty the avatar mesh
+ virtual void dirtyMesh(); // Dirty the avatar mesh
void updateMeshData();
protected:
void releaseMeshData();
virtual void restoreMeshData();
private:
- void dirtyMesh(S32 priority); // Dirty the avatar mesh, with priority
+ virtual void dirtyMesh(S32 priority); // Dirty the avatar mesh, with priority
+ LLViewerJoint* getViewerJoint(S32 idx);
S32 mDirtyMesh; // 0 -- not dirty, 1 -- morphed, 2 -- LOD
BOOL mMeshTexturesDirty;
- typedef std::multimap<std::string, LLPolyMesh*> polymesh_map_t;
- polymesh_map_t mMeshes;
- std::vector<LLViewerJoint *> mMeshLOD;
-
//--------------------------------------------------------------------
// Destroy invisible mesh
//--------------------------------------------------------------------
@@ -705,38 +630,42 @@ protected:
**/
public:
+ void parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMessageContents& msg);
void processAvatarAppearance(LLMessageSystem* mesgsys);
void hideSkirt();
void startAppearanceAnimation();
+ /*virtual*/ void bodySizeChanged();
//--------------------------------------------------------------------
// Appearance morphing
//--------------------------------------------------------------------
public:
BOOL getIsAppearanceAnimating() const { return mAppearanceAnimating; }
+
+ // True if we are computing our appearance via local compositing
+ // instead of baked textures, as for example during wearable
+ // editing or when waiting for a subsequent server rebake.
+ /*virtual*/ BOOL isUsingLocalAppearance() const { return mUseLocalAppearance; }
+
+ // True if this avatar should fetch its baked textures via the new
+ // appearance mechanism.
+ BOOL isUsingServerBakes() const;
+ void setIsUsingServerBakes(BOOL newval);
+
+
+ // True if we are currently in appearance editing mode. Often but
+ // not always the same as isUsingLocalAppearance().
+ /*virtual*/ BOOL isEditingAppearance() const { return mIsEditingAppearance; }
+
+ // FIXME review isUsingLocalAppearance uses, some should be isEditing instead.
+
private:
BOOL mAppearanceAnimating;
LLFrameTimer mAppearanceMorphTimer;
F32 mLastAppearanceBlendTime;
-
- //--------------------------------------------------------------------
- // Clothing colors (convenience functions to access visual parameters)
- //--------------------------------------------------------------------
-public:
- void setClothesColor(LLVOAvatarDefines::ETextureIndex te, const LLColor4& new_color, BOOL upload_bake);
- LLColor4 getClothesColor(LLVOAvatarDefines::ETextureIndex te);
- static BOOL teToColorParams(LLVOAvatarDefines::ETextureIndex te, U32 *param_name);
-
- //--------------------------------------------------------------------
- // Global colors
- //--------------------------------------------------------------------
-public:
- LLColor4 getGlobalColor(const std::string& color_name ) const;
- void onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake);
-private:
- LLTexGlobalColor* mTexSkinColor;
- LLTexGlobalColor* mTexHairColor;
- LLTexGlobalColor* mTexEyeColor;
+ BOOL mIsEditingAppearance; // flag for if we're actively in appearance editing mode
+ BOOL mUseLocalAppearance; // flag for if we're using a local composite
+ BOOL mUseServerBakes; // flag for if baked textures should be fetched from baking service (false if they're temporary uploads)
//--------------------------------------------------------------------
// Visibility
@@ -746,7 +675,6 @@ public:
void setVisibilityRank(U32 rank);
U32 getVisibilityRank() const { return mVisibilityRank; } // unused
static S32 sNumVisibleAvatars; // Number of instances of this class
- static LLColor4 getDummyColor();
/** Appearance
** **
*******************************************************************************/
@@ -756,9 +684,6 @@ public:
** WEARABLES
**/
-public:
- virtual BOOL isWearingWearableType(LLWearableType::EType type ) const;
-
//--------------------------------------------------------------------
// Attachments
//--------------------------------------------------------------------
@@ -768,6 +693,7 @@ public:
virtual BOOL detachObject(LLViewerObject *viewer_object);
void cleanupAttachedMesh( LLViewerObject* pVO );
static LLVOAvatar* findAvatarFromAttachment(LLViewerObject* obj);
+ /*virtual*/ BOOL isWearingWearableType(LLWearableType::EType type ) const;
protected:
LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);
void lazyAttach();
@@ -869,15 +795,6 @@ private:
F32 mSpeed; // misc. animation repeated state
//--------------------------------------------------------------------
- // Collision volumes
- //--------------------------------------------------------------------
-public:
- S32 mNumCollisionVolumes;
- LLViewerJointCollisionVolume* mCollisionVolumes;
-protected:
- BOOL allocateCollisionVolumes(U32 num);
-
- //--------------------------------------------------------------------
// Dimensions
//--------------------------------------------------------------------
public:
@@ -887,7 +804,6 @@ public:
void resolveRayCollisionAgent(const LLVector3d start_pt, const LLVector3d end_pt, LLVector3d &out_pos, LLVector3 &out_norm);
void slamPosition(); // Slam position to transmitted position (for teleport);
protected:
- void computeBodySize();
//--------------------------------------------------------------------
// Material being stepped on
@@ -907,9 +823,9 @@ private:
**/
public:
- virtual BOOL setParent(LLViewerObject* parent);
- virtual void addChild(LLViewerObject *childp);
- virtual void removeChild(LLViewerObject *childp);
+ /*virtual*/ BOOL setParent(LLViewerObject* parent);
+ /*virtual*/ void addChild(LLViewerObject *childp);
+ /*virtual*/ void removeChild(LLViewerObject *childp);
//--------------------------------------------------------------------
// Sitting
@@ -939,7 +855,7 @@ protected:
static void getAnimLabels(LLDynamicArray<std::string>* labels);
static void getAnimNames(LLDynamicArray<std::string>* names);
private:
- std::string mNameString; // UTF-8 title + name + status
+ bool mNameIsSet;
std::string mTitle;
bool mNameAway;
bool mNameDoNotDisturb;
@@ -1013,7 +929,9 @@ private:
// General
//--------------------------------------------------------------------
public:
- static void dumpArchetypeXML(void*);
+ void dumpArchetypeXML(const std::string& prefix, bool group_by_wearables = false);
+ void dumpAppearanceMsgParams( const std::string& dump_prefix,
+ const LLAppearanceMessageContents& contents);
static void dumpBakedStatus();
const std::string getBakedStatusForPrintout() const;
void dumpAvatarTEs(const std::string& context) const;
@@ -1030,6 +948,7 @@ private:
F32 mMaxPixelArea;
F32 mAdjustedPixelArea;
std::string mDebugText;
+ std::string mBakedTextureDebugText;
//--------------------------------------------------------------------
@@ -1043,6 +962,17 @@ protected:
LLFrameTimer mRuthDebugTimer; // For tracking how long it takes for av to rez
LLFrameTimer mDebugExistenceTimer; // Debugging for how long the avatar has been in memory.
+ //--------------------------------------------------------------------
+ // COF monitoring
+ //--------------------------------------------------------------------
+
+public:
+ // COF version of last viewer-initiated appearance update request. For non-self avs, this will remain at default.
+ S32 mLastUpdateRequestCOFVersion;
+
+ // COF version of last appearance message received for this av.
+ S32 mLastUpdateReceivedCOFVersion;
+
/** Diagnostics
** **
*******************************************************************************/
@@ -1054,105 +984,6 @@ protected:
protected: // Shared with LLVOAvatarSelf
- struct LLVOAvatarXmlInfo
- {
- LLVOAvatarXmlInfo();
- ~LLVOAvatarXmlInfo();
-
- BOOL parseXmlSkeletonNode(LLXmlTreeNode* root);
- BOOL parseXmlMeshNodes(LLXmlTreeNode* root);
- BOOL parseXmlColorNodes(LLXmlTreeNode* root);
- BOOL parseXmlLayerNodes(LLXmlTreeNode* root);
- BOOL parseXmlDriverNodes(LLXmlTreeNode* root);
- BOOL parseXmlMorphNodes(LLXmlTreeNode* root);
-
- struct LLVOAvatarMeshInfo
- {
- typedef std::pair<LLPolyMorphTargetInfo*,BOOL> morph_info_pair_t;
- typedef std::vector<morph_info_pair_t> morph_info_list_t;
-
- LLVOAvatarMeshInfo() : mLOD(0), mMinPixelArea(.1f) {}
- ~LLVOAvatarMeshInfo()
- {
- morph_info_list_t::iterator iter;
- for (iter = mPolyMorphTargetInfoList.begin(); iter != mPolyMorphTargetInfoList.end(); iter++)
- {
- delete iter->first;
- }
- mPolyMorphTargetInfoList.clear();
- }
-
- std::string mType;
- S32 mLOD;
- std::string mMeshFileName;
- std::string mReferenceMeshName;
- F32 mMinPixelArea;
- morph_info_list_t mPolyMorphTargetInfoList;
- };
- typedef std::vector<LLVOAvatarMeshInfo*> mesh_info_list_t;
- mesh_info_list_t mMeshInfoList;
-
- typedef std::vector<LLPolySkeletalDistortionInfo*> skeletal_distortion_info_list_t;
- skeletal_distortion_info_list_t mSkeletalDistortionInfoList;
-
- struct LLVOAvatarAttachmentInfo
- {
- LLVOAvatarAttachmentInfo()
- : mGroup(-1), mAttachmentID(-1), mPieMenuSlice(-1), mVisibleFirstPerson(FALSE),
- mIsHUDAttachment(FALSE), mHasPosition(FALSE), mHasRotation(FALSE) {}
- std::string mName;
- std::string mJointName;
- LLVector3 mPosition;
- LLVector3 mRotationEuler;
- S32 mGroup;
- S32 mAttachmentID;
- S32 mPieMenuSlice;
- BOOL mVisibleFirstPerson;
- BOOL mIsHUDAttachment;
- BOOL mHasPosition;
- BOOL mHasRotation;
- };
- typedef std::vector<LLVOAvatarAttachmentInfo*> attachment_info_list_t;
- attachment_info_list_t mAttachmentInfoList;
-
- LLTexGlobalColorInfo *mTexSkinColorInfo;
- LLTexGlobalColorInfo *mTexHairColorInfo;
- LLTexGlobalColorInfo *mTexEyeColorInfo;
-
- typedef std::vector<LLTexLayerSetInfo*> layer_info_list_t;
- layer_info_list_t mLayerInfoList;
-
- typedef std::vector<LLDriverParamInfo*> driver_info_list_t;
- driver_info_list_t mDriverInfoList;
-
- struct LLVOAvatarMorphInfo
- {
- LLVOAvatarMorphInfo()
- : mInvert(FALSE) {}
- std::string mName;
- std::string mRegion;
- std::string mLayer;
- BOOL mInvert;
- };
-
- typedef std::vector<LLVOAvatarMorphInfo*> morph_info_list_t;
- morph_info_list_t mMorphMaskInfoList;
- };
-
- struct LLMaskedMorph
- {
- LLMaskedMorph(LLPolyMorphTarget *morph_target, BOOL invert, std::string layer) :
- mMorphTarget(morph_target),
- mInvert(invert),
- mLayer(layer)
- {
- morph_target->addPendingMorphMask();
- }
-
- LLPolyMorphTarget *mMorphTarget;
- BOOL mInvert;
- std::string mLayer;
- };
/** Support classes
** **
@@ -1162,4 +993,9 @@ protected: // Shared with LLVOAvatarSelf
extern const F32 SELF_ADDITIONAL_PRI;
extern const S32 MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL;
-#endif // LL_VO_AVATAR_H
+std::string get_sequential_numbered_file_name(const std::string& prefix,
+ const std::string& suffix);
+void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value);
+
+#endif // LL_VOAVATAR_H
+
diff --git a/indra/newview/llvoavatardefines.cpp b/indra/newview/llvoavatardefines.cpp
deleted file mode 100644
index 1ed4e3b61c..0000000000
--- a/indra/newview/llvoavatardefines.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/**
- * @file llvoavatar.cpp
- * @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "llvoavatardefines.h"
-#include "llviewercontrol.h" // gSavedSettings
-
-const S32 LLVOAvatarDefines::SCRATCH_TEX_WIDTH = 512;
-const S32 LLVOAvatarDefines::SCRATCH_TEX_HEIGHT = 512;
-const S32 LLVOAvatarDefines::IMPOSTOR_PERIOD = 2;
-
-using namespace LLVOAvatarDefines;
-
-/*********************************************************************************
- * Edit this function to add/remove/change textures and mesh definitions for avatars.
- */
-
-LLVOAvatarDictionary::Textures::Textures()
-{
- addEntry(TEX_HEAD_BODYPAINT, new TextureEntry("head_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
- addEntry(TEX_UPPER_SHIRT, new TextureEntry("upper_shirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShirtUUID", LLWearableType::WT_SHIRT));
- addEntry(TEX_LOWER_PANTS, new TextureEntry("lower_pants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultPantsUUID", LLWearableType::WT_PANTS));
- addEntry(TEX_EYES_IRIS, new TextureEntry("eyes_iris", TRUE, BAKED_NUM_INDICES, "UIImgDefaultEyesUUID", LLWearableType::WT_EYES));
- addEntry(TEX_HAIR, new TextureEntry("hair_grain", TRUE, BAKED_NUM_INDICES, "UIImgDefaultHairUUID", LLWearableType::WT_HAIR));
- addEntry(TEX_UPPER_BODYPAINT, new TextureEntry("upper_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
- addEntry(TEX_LOWER_BODYPAINT, new TextureEntry("lower_bodypaint", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_SKIN));
- addEntry(TEX_LOWER_SHOES, new TextureEntry("lower_shoes", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShoesUUID", LLWearableType::WT_SHOES));
- addEntry(TEX_LOWER_SOCKS, new TextureEntry("lower_socks", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSocksUUID", LLWearableType::WT_SOCKS));
- addEntry(TEX_UPPER_JACKET, new TextureEntry("upper_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
- addEntry(TEX_LOWER_JACKET, new TextureEntry("lower_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", LLWearableType::WT_JACKET));
- addEntry(TEX_UPPER_GLOVES, new TextureEntry("upper_gloves", TRUE, BAKED_NUM_INDICES, "UIImgDefaultGlovesUUID", LLWearableType::WT_GLOVES));
- addEntry(TEX_UPPER_UNDERSHIRT, new TextureEntry("upper_undershirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERSHIRT));
- addEntry(TEX_LOWER_UNDERPANTS, new TextureEntry("lower_underpants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", LLWearableType::WT_UNDERPANTS));
- addEntry(TEX_SKIRT, new TextureEntry("skirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSkirtUUID", LLWearableType::WT_SKIRT));
-
- addEntry(TEX_LOWER_ALPHA, new TextureEntry("lower_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
- addEntry(TEX_UPPER_ALPHA, new TextureEntry("upper_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
- addEntry(TEX_HEAD_ALPHA, new TextureEntry("head_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
- addEntry(TEX_EYES_ALPHA, new TextureEntry("eyes_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
- addEntry(TEX_HAIR_ALPHA, new TextureEntry("hair_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", LLWearableType::WT_ALPHA));
-
- addEntry(TEX_HEAD_TATTOO, new TextureEntry("head_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
- addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
- addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
-
- addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", FALSE, BAKED_HEAD));
- addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", FALSE, BAKED_UPPER));
- addEntry(TEX_LOWER_BAKED, new TextureEntry("lower-baked", FALSE, BAKED_LOWER));
- addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", FALSE, BAKED_EYES));
- addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", FALSE, BAKED_HAIR));
- addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", FALSE, BAKED_SKIRT));
-}
-
-LLVOAvatarDictionary::BakedTextures::BakedTextures()
-{
- // Baked textures
- addEntry(BAKED_HEAD, new BakedEntry(TEX_HEAD_BAKED,
- "head", "a4b9dc38-e13b-4df9-b284-751efb0566ff",
- 3, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA,
- 5, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
-
- addEntry(BAKED_UPPER, new BakedEntry(TEX_UPPER_BAKED,
- "upper_body", "5943ff64-d26c-4a90-a8c0-d61f56bd98d4",
- 7, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
- TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA,
- 8, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_SHIRT, LLWearableType::WT_JACKET, LLWearableType::WT_GLOVES, LLWearableType::WT_UNDERSHIRT, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
-
- addEntry(BAKED_LOWER, new BakedEntry(TEX_LOWER_BAKED,
- "lower_body", "2944ee70-90a7-425d-a5fb-d749c782ed7d",
- 8, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
- TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA,
- 9, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_PANTS, LLWearableType::WT_SHOES, LLWearableType::WT_SOCKS, LLWearableType::WT_JACKET, LLWearableType::WT_UNDERPANTS, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
-
- addEntry(BAKED_EYES, new BakedEntry(TEX_EYES_BAKED,
- "eyes", "27b1bc0f-979f-4b13-95fe-b981c2ba9788",
- 2, TEX_EYES_IRIS, TEX_EYES_ALPHA,
- 2, LLWearableType::WT_EYES, LLWearableType::WT_ALPHA));
-
- addEntry(BAKED_SKIRT, new BakedEntry(TEX_SKIRT_BAKED,
- "skirt", "03e7e8cb-1368-483b-b6f3-74850838ba63",
- 1, TEX_SKIRT,
- 1, LLWearableType::WT_SKIRT));
-
- addEntry(BAKED_HAIR, new BakedEntry(TEX_HAIR_BAKED,
- "hair", "a60e85a9-74e8-48d8-8a2d-8129f28d9b61",
- 2, TEX_HAIR, TEX_HAIR_ALPHA,
- 2, LLWearableType::WT_HAIR, LLWearableType::WT_ALPHA));
-}
-
-LLVOAvatarDictionary::Meshes::Meshes()
-{
- // Meshes
- addEntry(MESH_ID_HAIR, new MeshEntry(BAKED_HAIR, "hairMesh", 6, LLViewerJoint::PN_4));
- addEntry(MESH_ID_HEAD, new MeshEntry(BAKED_HEAD, "headMesh", 5, LLViewerJoint::PN_5));
- addEntry(MESH_ID_EYELASH, new MeshEntry(BAKED_HEAD, "eyelashMesh", 1, LLViewerJoint::PN_0)); // no baked mesh associated currently
- addEntry(MESH_ID_UPPER_BODY, new MeshEntry(BAKED_UPPER, "upperBodyMesh", 5, LLViewerJoint::PN_1));
- addEntry(MESH_ID_LOWER_BODY, new MeshEntry(BAKED_LOWER, "lowerBodyMesh", 5, LLViewerJoint::PN_2));
- addEntry(MESH_ID_EYEBALL_LEFT, new MeshEntry(BAKED_EYES, "eyeBallLeftMesh", 2, LLViewerJoint::PN_3));
- addEntry(MESH_ID_EYEBALL_RIGHT, new MeshEntry(BAKED_EYES, "eyeBallRightMesh", 2, LLViewerJoint::PN_3));
- addEntry(MESH_ID_SKIRT, new MeshEntry(BAKED_SKIRT, "skirtMesh", 5, LLViewerJoint::PN_5));
-}
-
-/*
- *
- *********************************************************************************/
-
-LLVOAvatarDictionary::LLVOAvatarDictionary()
-{
- createAssociations();
-}
-
-//virtual
-LLVOAvatarDictionary::~LLVOAvatarDictionary()
-{
-}
-
-// Baked textures are composites of textures; for each such composited texture,
-// map it to the baked texture.
-void LLVOAvatarDictionary::createAssociations()
-{
- for (BakedTextures::const_iterator iter = mBakedTextures.begin(); iter != mBakedTextures.end(); iter++)
- {
- const EBakedTextureIndex baked_index = (iter->first);
- const BakedEntry *dict = (iter->second);
-
- // For each texture that this baked texture index affects, associate those textures
- // with this baked texture index.
- for (texture_vec_t::const_iterator local_texture_iter = dict->mLocalTextures.begin();
- local_texture_iter != dict->mLocalTextures.end();
- local_texture_iter++)
- {
- const ETextureIndex local_texture_index = (ETextureIndex) *local_texture_iter;
- mTextures[local_texture_index]->mIsUsedByBakedTexture = true;
- mTextures[local_texture_index]->mBakedTextureIndex = baked_index;
- }
- }
-
-}
-
-LLVOAvatarDictionary::TextureEntry::TextureEntry(const std::string &name,
- bool is_local_texture,
- EBakedTextureIndex baked_texture_index,
- const std::string &default_image_name,
- LLWearableType::EType wearable_type) :
- LLDictionaryEntry(name),
- mIsLocalTexture(is_local_texture),
- mIsBakedTexture(!is_local_texture),
- mIsUsedByBakedTexture(baked_texture_index != BAKED_NUM_INDICES),
- mBakedTextureIndex(baked_texture_index),
- mDefaultImageName(default_image_name),
- mWearableType(wearable_type)
-{
-}
-
-LLVOAvatarDictionary::MeshEntry::MeshEntry(EBakedTextureIndex baked_index,
- const std::string &name,
- U8 level,
- LLViewerJoint::PickName pick) :
- LLDictionaryEntry(name),
- mBakedID(baked_index),
- mLOD(level),
- mPickName(pick)
-{
-}
-LLVOAvatarDictionary::BakedEntry::BakedEntry(ETextureIndex tex_index,
- const std::string &name,
- const std::string &hash_name,
- U32 num_local_textures,
- ... ) :
- LLDictionaryEntry(name),
- mWearablesHashID(LLUUID(hash_name)),
- mTextureIndex(tex_index)
-{
- va_list argp;
-
- va_start(argp, num_local_textures);
-
- // Read in local textures
- for (U8 i=0; i < num_local_textures; i++)
- {
- ETextureIndex t = (ETextureIndex)va_arg(argp,int);
- mLocalTextures.push_back(t);
- }
-
- // Read in number of wearables
- const U32 num_wearables = (U32)va_arg(argp,int);
- // Read in wearables
- for (U8 i=0; i < num_wearables; i++)
- {
- LLWearableType::EType t = (LLWearableType::EType)va_arg(argp,int);
- mWearables.push_back(t);
- }
-}
-
-// static
-ETextureIndex LLVOAvatarDictionary::bakedToLocalTextureIndex(EBakedTextureIndex index)
-{
- return LLVOAvatarDictionary::getInstance()->getBakedTexture(index)->mTextureIndex;
-}
-
-//static
-EBakedTextureIndex LLVOAvatarDictionary::findBakedByRegionName(std::string name)
-{
- U8 index = 0;
- while (index < BAKED_NUM_INDICES)
- {
- const BakedEntry *be = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex) index);
- if (be && be->mName.compare(name) == 0)
- {
- // baked texture found
- return (EBakedTextureIndex) index;
- }
- index++;
- }
- // baked texture could not be found
- return BAKED_NUM_INDICES;
-}
-
-//static
-const LLUUID LLVOAvatarDictionary::getDefaultTextureImageID(ETextureIndex index)
-{
- const TextureEntry *texture_dict = getInstance()->getTexture(index);
- const std::string &default_image_name = texture_dict->mDefaultImageName;
- if (default_image_name == "")
- {
- return IMG_DEFAULT_AVATAR;
- }
- else
- {
- return LLUUID(gSavedSettings.getString(default_image_name));
- }
-}
-
-// static
-LLWearableType::EType LLVOAvatarDictionary::getTEWearableType(ETextureIndex index )
-{
- return getInstance()->getTexture(index)->mWearableType;
-}
-
diff --git a/indra/newview/llvoavatardefines.h b/indra/newview/llvoavatardefines.h
deleted file mode 100644
index 35bb37463a..0000000000
--- a/indra/newview/llvoavatardefines.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * @file llvoavatar.h
- * @brief Declaration of LLVOAvatar class which is a derivation fo
- * LLViewerObject
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LLVOAVATAR_DEFINES_H
-#define LLVOAVATAR_DEFINES_H
-
-#include <vector>
-#include "llwearable.h"
-#include "llviewerjoint.h"
-#include "lldictionary.h"
-
-namespace LLVOAvatarDefines
-{
-
-extern const S32 SCRATCH_TEX_WIDTH;
-extern const S32 SCRATCH_TEX_HEIGHT;
-extern const S32 IMPOSTOR_PERIOD;
-
-//--------------------------------------------------------------------
-// Enums
-//--------------------------------------------------------------------
-enum ETextureIndex
-{
- TEX_HEAD_BODYPAINT = 0,
- TEX_UPPER_SHIRT,
- TEX_LOWER_PANTS,
- TEX_EYES_IRIS,
- TEX_HAIR,
- TEX_UPPER_BODYPAINT,
- TEX_LOWER_BODYPAINT,
- TEX_LOWER_SHOES,
- TEX_HEAD_BAKED, // Pre-composited
- TEX_UPPER_BAKED, // Pre-composited
- TEX_LOWER_BAKED, // Pre-composited
- TEX_EYES_BAKED, // Pre-composited
- TEX_LOWER_SOCKS,
- TEX_UPPER_JACKET,
- TEX_LOWER_JACKET,
- TEX_UPPER_GLOVES,
- TEX_UPPER_UNDERSHIRT,
- TEX_LOWER_UNDERPANTS,
- TEX_SKIRT,
- TEX_SKIRT_BAKED, // Pre-composited
- TEX_HAIR_BAKED, // Pre-composited
- TEX_LOWER_ALPHA,
- TEX_UPPER_ALPHA,
- TEX_HEAD_ALPHA,
- TEX_EYES_ALPHA,
- TEX_HAIR_ALPHA,
- TEX_HEAD_TATTOO,
- TEX_UPPER_TATTOO,
- TEX_LOWER_TATTOO,
- TEX_NUM_INDICES
-};
-
-enum EBakedTextureIndex
-{
- BAKED_HEAD = 0,
- BAKED_UPPER,
- BAKED_LOWER,
- BAKED_EYES,
- BAKED_SKIRT,
- BAKED_HAIR,
- BAKED_NUM_INDICES
-};
-
-// Reference IDs for each mesh. Used as indices for vector of joints
-enum EMeshIndex
-{
- MESH_ID_HAIR = 0,
- MESH_ID_HEAD,
- MESH_ID_EYELASH,
- MESH_ID_UPPER_BODY,
- MESH_ID_LOWER_BODY,
- MESH_ID_EYEBALL_LEFT,
- MESH_ID_EYEBALL_RIGHT,
- MESH_ID_SKIRT,
- MESH_ID_NUM_INDICES
-};
-
-//--------------------------------------------------------------------
-// Vector Types
-//--------------------------------------------------------------------
-typedef std::vector<ETextureIndex> texture_vec_t;
-typedef std::vector<EBakedTextureIndex> bakedtexture_vec_t;
-typedef std::vector<EMeshIndex> mesh_vec_t;
-typedef std::vector<LLWearableType::EType> wearables_vec_t;
-
-//------------------------------------------------------------------------
-// LLVOAvatarDictionary
-//
-// Holds dictionary static entries for textures, baked textures, meshes, etc.; i.e.
-// information that is common to all avatars.
-//
-// This holds const data - it is initialized once and the contents never change after that.
-//------------------------------------------------------------------------
-class LLVOAvatarDictionary : public LLSingleton<LLVOAvatarDictionary>
-{
- //--------------------------------------------------------------------
- // Constructors and Destructors
- //--------------------------------------------------------------------
-public:
- LLVOAvatarDictionary();
- virtual ~LLVOAvatarDictionary();
-private:
- void createAssociations();
-
- //--------------------------------------------------------------------
- // Local and baked textures
- //--------------------------------------------------------------------
-public:
- struct TextureEntry : public LLDictionaryEntry
- {
- TextureEntry(const std::string &name, // this must match the xml name used by LLTexLayerInfo::parseXml
- bool is_local_texture,
- EBakedTextureIndex baked_texture_index = BAKED_NUM_INDICES,
- const std::string& default_image_name = "",
- LLWearableType::EType wearable_type = LLWearableType::WT_INVALID);
- const std::string mDefaultImageName;
- const LLWearableType::EType mWearableType;
- // It's either a local texture xor baked
- BOOL mIsLocalTexture;
- BOOL mIsBakedTexture;
- // If it's a local texture, it may be used by a baked texture
- BOOL mIsUsedByBakedTexture;
- EBakedTextureIndex mBakedTextureIndex;
- };
-
- struct Textures : public LLDictionary<ETextureIndex, TextureEntry>
- {
- Textures();
- } mTextures;
- const TextureEntry* getTexture(ETextureIndex index) const { return mTextures.lookup(index); }
- const Textures& getTextures() const { return mTextures; }
-
- //--------------------------------------------------------------------
- // Meshes
- //--------------------------------------------------------------------
-public:
- struct MeshEntry : public LLDictionaryEntry
- {
- MeshEntry(EBakedTextureIndex baked_index,
- const std::string &name, // names of mesh types as they are used in avatar_lad.xml
- U8 level,
- LLViewerJoint::PickName pick);
- // Levels of Detail for each mesh. Must match levels of detail present in avatar_lad.xml
- // Otherwise meshes will be unable to be found, or levels of detail will be ignored
- const U8 mLOD;
- const EBakedTextureIndex mBakedID;
- const LLViewerJoint::PickName mPickName;
- };
-
- struct Meshes : public LLDictionary<EMeshIndex, MeshEntry>
- {
- Meshes();
- } mMeshes;
- const MeshEntry* getMesh(EMeshIndex index) const { return mMeshes.lookup(index); }
- const Meshes& getMeshes() const { return mMeshes; }
-
- //--------------------------------------------------------------------
- // Baked Textures
- //--------------------------------------------------------------------
-public:
- struct BakedEntry : public LLDictionaryEntry
- {
- BakedEntry(ETextureIndex tex_index,
- const std::string &name, // unused, but necessary for templating.
- const std::string &hash_name,
- U32 num_local_textures, ... ); // # local textures, local texture list, # wearables, wearable list
- // Local Textures
- const ETextureIndex mTextureIndex;
- texture_vec_t mLocalTextures;
- // Wearables
- const LLUUID mWearablesHashID;
- wearables_vec_t mWearables;
- };
-
- struct BakedTextures: public LLDictionary<EBakedTextureIndex, BakedEntry>
- {
- BakedTextures();
- } mBakedTextures;
- const BakedEntry* getBakedTexture(EBakedTextureIndex index) const { return mBakedTextures.lookup(index); }
- const BakedTextures& getBakedTextures() const { return mBakedTextures; }
-
- //--------------------------------------------------------------------
- // Convenience Functions
- //--------------------------------------------------------------------
-public:
- // Convert from baked texture to associated texture; e.g. BAKED_HEAD -> TEX_HEAD_BAKED
- static ETextureIndex bakedToLocalTextureIndex(EBakedTextureIndex t);
-
- // find a baked texture index based on its name
- static EBakedTextureIndex findBakedByRegionName(std::string name);
-
- static const LLUUID getDefaultTextureImageID(ETextureIndex index);
-
- // Given a texture entry, determine which wearable type owns it.
- static LLWearableType::EType getTEWearableType(ETextureIndex index);
-
-}; // End LLVOAvatarDictionary
-
-} // End namespace LLVOAvatarDefines
-
-#endif //LL_VO_AVATARDEFINES_H
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index e32fd3c3c8..d54eb5f040 100644..100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -55,11 +55,14 @@
#include "llviewerobjectlist.h"
#include "llviewerstats.h"
#include "llviewerregion.h"
+#include "llviewertexlayer.h"
+#include "llviewerwearable.h"
#include "llappearancemgr.h"
#include "llmeshrepository.h"
#include "llvovolume.h"
#include "llsdutil.h"
#include "llstartup.h"
+#include "llsdserialize.h"
#if LL_MSVC
// disable boost::lexical_cast warning
@@ -72,24 +75,22 @@ LLPointer<LLVOAvatarSelf> gAgentAvatarp = NULL;
BOOL isAgentAvatarValid()
{
- return (gAgentAvatarp.notNull() &&
- (gAgentAvatarp->getRegion() != NULL) &&
- (!gAgentAvatarp->isDead()));
+ return (gAgentAvatarp.notNull() && gAgentAvatarp->isValid());
}
void selfStartPhase(const std::string& phase_name)
{
if (isAgentAvatarValid())
{
- gAgentAvatarp->getPhases().startPhase(phase_name);
+ gAgentAvatarp->startPhase(phase_name);
}
}
-void selfStopPhase(const std::string& phase_name)
+void selfStopPhase(const std::string& phase_name, bool err_check)
{
if (isAgentAvatarValid())
{
- gAgentAvatarp->getPhases().stopPhase(phase_name);
+ gAgentAvatarp->stopPhase(phase_name, err_check);
}
}
@@ -97,20 +98,11 @@ void selfClearPhases()
{
if (isAgentAvatarValid())
{
- gAgentAvatarp->getPhases().clearPhases();
- gAgentAvatarp->mLastRezzedStatus = -1;
+ gAgentAvatarp->clearPhases();
}
}
-void selfStopAllPhases()
-{
- if (isAgentAvatarValid())
- {
- gAgentAvatarp->getPhases().stopAllPhases();
- }
-}
-
-using namespace LLVOAvatarDefines;
+using namespace LLAvatarAppearanceDefines;
/*********************************************************************************
** **
@@ -176,6 +168,35 @@ LLVOAvatarSelf::LLVOAvatarSelf(const LLUUID& id,
lldebugs << "Marking avatar as self " << id << llendl;
}
+// Called periodically for diagnostics, return true when done.
+bool output_self_av_texture_diagnostics()
+{
+ if (!isAgentAvatarValid())
+ return true; // done checking
+
+ gAgentAvatarp->outputRezDiagnostics();
+
+ return false;
+}
+
+bool update_avatar_rez_metrics()
+{
+ if (!isAgentAvatarValid())
+ return true;
+
+ gAgentAvatarp->updateAvatarRezMetrics(false);
+ return false;
+}
+
+bool check_for_unsupported_baked_appearance()
+{
+ if (!isAgentAvatarValid())
+ return true;
+
+ gAgentAvatarp->checkForUnsupportedServerBakeAppearance();
+ return false;
+}
+
void LLVOAvatarSelf::initInstance()
{
BOOL status = TRUE;
@@ -188,7 +209,7 @@ void LLVOAvatarSelf::initInstance()
llinfos << "Self avatar object created. Starting timer." << llendl;
mDebugSelfLoadTimer.reset();
// clear all times to -1 for debugging
- for (U32 i =0; i < LLVOAvatarDefines::TEX_NUM_INDICES; ++i)
+ for (U32 i =0; i < LLAvatarAppearanceDefines::TEX_NUM_INDICES; ++i)
{
for (U32 j = 0; j <= MAX_DISCARD_LEVEL; ++j)
{
@@ -196,7 +217,7 @@ void LLVOAvatarSelf::initInstance()
}
}
- for (U32 i =0; i < LLVOAvatarDefines::BAKED_NUM_INDICES; ++i)
+ for (U32 i =0; i < LLAvatarAppearanceDefines::BAKED_NUM_INDICES; ++i)
{
mDebugBakedTextureTimes[i][0] = -1.0f;
mDebugBakedTextureTimes[i][1] = -1.0f;
@@ -209,6 +230,10 @@ void LLVOAvatarSelf::initInstance()
llerrs << "Unable to load user's avatar" << llendl;
return;
}
+
+ //doPeriodically(output_self_av_texture_diagnostics, 30.0);
+ doPeriodically(update_avatar_rez_metrics, 5.0);
+ doPeriodically(check_for_unsupported_baked_appearance, 120.0);
}
// virtual
@@ -249,13 +274,11 @@ BOOL LLVOAvatarSelf::loadAvatarSelf()
llwarns << "avatar file: buildSkeleton() failed" << llendl;
return FALSE;
}
- // TODO: make loadLayersets() called only by self.
- //success &= loadLayersets();
return success;
}
-BOOL LLVOAvatarSelf::buildSkeletonSelf(const LLVOAvatarSkeletonInfo *info)
+BOOL LLVOAvatarSelf::buildSkeletonSelf(const LLAvatarSkeletonInfo *info)
{
// add special-purpose "screen" joint
mScreenp = new LLViewerJoint("mScreen", NULL);
@@ -341,7 +364,6 @@ BOOL LLVOAvatarSelf::buildMenus()
}
else
{
- BOOL attachment_found = FALSE;
for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
iter != mAttachmentPoints.end();
++iter)
@@ -369,7 +391,6 @@ BOOL LLVOAvatarSelf::buildMenus()
gAttachPieMenu->addChild(item);
- attachment_found = TRUE;
break;
}
@@ -382,7 +403,6 @@ BOOL LLVOAvatarSelf::buildMenus()
}
else
{
- BOOL attachment_found = FALSE;
for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
iter != mAttachmentPoints.end();
++iter)
@@ -409,7 +429,6 @@ BOOL LLVOAvatarSelf::buildMenus()
gDetachPieMenu->addChild(item);
- attachment_found = TRUE;
break;
}
}
@@ -583,70 +602,6 @@ LLVOAvatarSelf::~LLVOAvatarSelf()
** **
*********************************************************************************/
-//virtual
-BOOL LLVOAvatarSelf::loadLayersets()
-{
- BOOL success = TRUE;
- for (LLVOAvatarXmlInfo::layer_info_list_t::const_iterator iter = sAvatarXmlInfo->mLayerInfoList.begin();
- iter != sAvatarXmlInfo->mLayerInfoList.end();
- ++iter)
- {
- // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such.
- const LLTexLayerSetInfo *info = *iter;
- LLTexLayerSet* layer_set = new LLTexLayerSet( this );
-
- if (!layer_set->setInfo(info))
- {
- stop_glerror();
- delete layer_set;
- llwarns << "avatar file: layer_set->parseData() failed" << llendl;
- return FALSE;
- }
-
- // scan baked textures and associate the layerset with the appropriate one
- EBakedTextureIndex baked_index = BAKED_NUM_INDICES;
- for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
- ++baked_iter)
- {
- const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
- if (layer_set->isBodyRegion(baked_dict->mName))
- {
- baked_index = baked_iter->first;
- // ensure both structures are aware of each other
- mBakedTextureDatas[baked_index].mTexLayerSet = layer_set;
- layer_set->setBakedTexIndex(baked_index);
- break;
- }
- }
- // if no baked texture was found, warn and cleanup
- if (baked_index == BAKED_NUM_INDICES)
- {
- llwarns << "<layer_set> has invalid body_region attribute" << llendl;
- delete layer_set;
- return FALSE;
- }
-
- // scan morph masks and let any affected layers know they have an associated morph
- for (LLVOAvatar::morph_list_t::const_iterator morph_iter = mBakedTextureDatas[baked_index].mMaskedMorphs.begin();
- morph_iter != mBakedTextureDatas[baked_index].mMaskedMorphs.end();
- ++morph_iter)
- {
- LLMaskedMorph *morph = *morph_iter;
- LLTexLayerInterface* layer = layer_set->findLayerByName(morph->mLayer);
- if (layer)
- {
- layer->setHasMorph(TRUE);
- }
- else
- {
- llwarns << "Could not find layer named " << morph->mLayer << " to set morph flag" << llendl;
- success = FALSE;
- }
- }
- }
- return success;
-}
// virtual
BOOL LLVOAvatarSelf::updateCharacter(LLAgent &agent)
{
@@ -664,9 +619,15 @@ BOOL LLVOAvatarSelf::updateCharacter(LLAgent &agent)
}
// virtual
+BOOL LLVOAvatarSelf::isValid() const
+{
+ return ((getRegion() != NULL) && !isDead());
+}
+
+// virtual
void LLVOAvatarSelf::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
{
- if (isAgentAvatarValid())
+ if (isValid())
{
LLVOAvatar::idleUpdate(agent, world, time);
idleUpdateTractorBeam();
@@ -689,7 +650,7 @@ void LLVOAvatarSelf::resetJointPositions( void )
return LLVOAvatar::resetJointPositions();
}
// virtual
-BOOL LLVOAvatarSelf::setVisualParamWeight(LLVisualParam *which_param, F32 weight, BOOL upload_bake )
+BOOL LLVOAvatarSelf::setVisualParamWeight(const LLVisualParam *which_param, F32 weight, BOOL upload_bake )
{
if (!which_param)
{
@@ -717,20 +678,28 @@ BOOL LLVOAvatarSelf::setVisualParamWeight(S32 index, F32 weight, BOOL upload_bak
return setParamWeight(param,weight,upload_bake);
}
-BOOL LLVOAvatarSelf::setParamWeight(LLViewerVisualParam *param, F32 weight, BOOL upload_bake )
+BOOL LLVOAvatarSelf::setParamWeight(const LLViewerVisualParam *param, F32 weight, BOOL upload_bake )
{
if (!param)
{
return FALSE;
}
+#if 0
+ // FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables.
+ if (isUsingServerBakes() && !isUsingLocalAppearance())
+ {
+ return FALSE;
+ }
+#endif
+
if (param->getCrossWearable())
{
LLWearableType::EType type = (LLWearableType::EType)param->getWearableType();
U32 size = gAgentWearables.getWearableCount(type);
for (U32 count = 0; count < size; ++count)
{
- LLWearable *wearable = gAgentWearables.getWearable(type,count);
+ LLViewerWearable *wearable = gAgentWearables.getViewerWearable(type,count);
if (wearable)
{
wearable->setVisualParamWeight(param->getID(), weight, upload_bake);
@@ -759,7 +728,7 @@ void LLVOAvatarSelf::idleUpdateAppearanceAnimation()
LLWearable *wearable = gAgentWearables.getTopWearable((LLWearableType::EType)type);
if (wearable)
{
- wearable->writeToAvatar();
+ wearable->writeToAvatar(this);
}
}
@@ -802,18 +771,30 @@ U32 LLVOAvatarSelf::processUpdateMessage(LLMessageSystem *mesgsys,
{
U32 retval = LLVOAvatar::processUpdateMessage(mesgsys,user_data,block_num,update_type,dp);
- if (mInitialBakesLoaded == false && retval == 0x0)
+#if 0
+ // DRANO - it's not clear this does anything useful. If we wait
+ // until an appearance message has been received, we already have
+ // the texture ids. If we don't wait, we don't yet know where to
+ // look for baked textures, because we haven't received the
+ // appearance version data from the appearance message. This looks
+ // like an old optimization that's incompatible with server-side
+ // texture baking.
+
+ // FIXME DRANO - skipping in the case of !mFirstAppearanceMessageReceived prevents us from trying to
+ // load textures before we know where they come from (ie, from baking service or not);
+ // unknown impact on performance.
+ if (mInitialBakesLoaded == false && retval == 0x0 && mFirstAppearanceMessageReceived)
{
// call update textures to force the images to be created
updateMeshTextures();
// unpack the texture UUIDs to the texture slots
- retval = unpackTEMessage(mesgsys, _PREHASH_ObjectData, block_num);
+ retval = unpackTEMessage(mesgsys, _PREHASH_ObjectData, (S32) block_num);
// need to trigger a few operations to get the avatar to use the new bakes
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- const LLVOAvatarDefines::ETextureIndex te = mBakedTextureDatas[i].mTextureIndex;
+ const LLAvatarAppearanceDefines::ETextureIndex te = mBakedTextureDatas[i].mTextureIndex;
LLUUID texture_id = getTEImage(te)->getID();
setNewBakedTexture(te, texture_id);
mInitialBakeIDs[i] = texture_id;
@@ -823,6 +804,7 @@ U32 LLVOAvatarSelf::processUpdateMessage(LLMessageSystem *mesgsys,
mInitialBakesLoaded = true;
}
+#endif
return retval;
}
@@ -877,11 +859,15 @@ void LLVOAvatarSelf::removeMissingBakedTextures()
{
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE);
- invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, FALSE);
+ LLViewerTexLayerSet *layerset = getTexLayerSet(i);
+ layerset->setUpdatesEnabled(TRUE);
+ invalidateComposite(layerset, FALSE);
}
updateMeshTextures();
- requestLayerSetUploads();
+ if (getRegion() && !getRegion()->getCentralBakeVersion())
+ {
+ requestLayerSetUploads();
+ }
}
}
@@ -938,7 +924,7 @@ void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)
void LLVOAvatarSelf::idleUpdateTractorBeam()
{
// This is only done for yourself (maybe it should be in the agent?)
- if (!needsRenderBeam() || !mIsBuilt)
+ if (!needsRenderBeam() || !isBuilt())
{
mBeam = NULL;
}
@@ -1051,11 +1037,6 @@ void LLVOAvatarSelf::updateAttachmentVisibility(U32 camera_mode)
}
}
-/*virtual*/ BOOL LLVOAvatarSelf::isWearingWearableType(LLWearableType::EType type ) const
-{
- return gAgentWearables.getWearableCount(type) > 0;
-}
-
//-----------------------------------------------------------------------------
// updatedWearable( LLWearableType::EType type )
// forces an update to any baked textures relevant to type.
@@ -1063,26 +1044,27 @@ void LLVOAvatarSelf::updateAttachmentVisibility(U32 camera_mode)
//-----------------------------------------------------------------------------
void LLVOAvatarSelf::wearableUpdated( LLWearableType::EType type, BOOL upload_result )
{
- for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
- const LLVOAvatarDefines::EBakedTextureIndex index = baked_iter->first;
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second;
+ const LLAvatarAppearanceDefines::EBakedTextureIndex index = baked_iter->first;
if (baked_dict)
{
- for (LLVOAvatarDefines::wearables_vec_t::const_iterator type_iter = baked_dict->mWearables.begin();
+ for (LLAvatarAppearanceDefines::wearables_vec_t::const_iterator type_iter = baked_dict->mWearables.begin();
type_iter != baked_dict->mWearables.end();
++type_iter)
{
const LLWearableType::EType comp_type = *type_iter;
if (comp_type == type)
{
- if (mBakedTextureDatas[index].mTexLayerSet)
+ LLViewerTexLayerSet *layerset = getLayerSet(index);
+ if (layerset)
{
- mBakedTextureDatas[index].mTexLayerSet->setUpdatesEnabled(true);
- invalidateComposite(mBakedTextureDatas[index].mTexLayerSet, upload_result);
+ layerset->setUpdatesEnabled(true);
+ invalidateComposite(layerset, upload_result);
}
break;
}
@@ -1246,7 +1228,7 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)
// Make sure the inventory is in sync with the avatar.
// Update COF contents, don't trigger appearance update.
- if (!isAgentAvatarValid())
+ if (!isValid())
{
llinfos << "removeItemLinks skipped, avatar is under destruction" << llendl;
}
@@ -1287,7 +1269,7 @@ BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)
const LLViewerObject *attached_obj = gAgentAvatarp->getWornAttachment(item_id);
if (!attached_obj)
{
- LLAppearanceMgr::instance().removeCOFItemLinks(item_id, false);
+ LLAppearanceMgr::instance().removeCOFItemLinks(item_id);
}
}
return TRUE;
@@ -1295,9 +1277,9 @@ BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)
return FALSE;
}
-U32 LLVOAvatarSelf::getNumWearables(LLVOAvatarDefines::ETextureIndex i) const
+U32 LLVOAvatarSelf::getNumWearables(LLAvatarAppearanceDefines::ETextureIndex i) const
{
- LLWearableType::EType type = LLVOAvatarDictionary::getInstance()->getTEWearableType(i);
+ LLWearableType::EType type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(i);
return gAgentWearables.getWearableCount(type);
}
@@ -1328,11 +1310,8 @@ void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerFetchedTexture *sr
discard_level < local_tex_obj->getDiscard())
{
local_tex_obj->setDiscard(discard_level);
- if (isUsingBakedTextures())
- {
- requestLayerSetUpdate(index);
- }
- else
+ requestLayerSetUpdate(index);
+ if (isEditingAppearance())
{
LLVisualParamHint::requestHintUpdates();
}
@@ -1366,11 +1345,11 @@ BOOL LLVOAvatarSelf::getLocalTextureGL(ETextureIndex type, LLViewerTexture** tex
{
return FALSE;
}
- *tex_pp = local_tex_obj->getImage();
+ *tex_pp = dynamic_cast<LLViewerTexture*> (local_tex_obj->getImage());
return TRUE;
}
-LLViewerFetchedTexture* LLVOAvatarSelf::getLocalTextureGL(LLVOAvatarDefines::ETextureIndex type, U32 index) const
+LLViewerFetchedTexture* LLVOAvatarSelf::getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const
{
if (!isIndexLocalTexture(type))
{
@@ -1386,7 +1365,7 @@ LLViewerFetchedTexture* LLVOAvatarSelf::getLocalTextureGL(LLVOAvatarDefines::ETe
{
return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR);
}
- return local_tex_obj->getImage();
+ return dynamic_cast<LLViewerFetchedTexture*> (local_tex_obj->getImage());
}
const LLUUID& LLVOAvatarSelf::getLocalTextureID(ETextureIndex type, U32 index) const
@@ -1407,29 +1386,30 @@ const LLUUID& LLVOAvatarSelf::getLocalTextureID(ETextureIndex type, U32 index) c
// Returns true if at least the lowest quality discard level exists for every texture
// in the layerset.
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLTexLayerSet* layerset) const
+BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLViewerTexLayerSet* layerset) const
{
/* if (layerset == mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)
return getLocalDiscardLevel(TEX_HEAD_BODYPAINT) >= 0; */
- for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
const EBakedTextureIndex baked_index = baked_iter->first;
if (layerset == mBakedTextureDatas[baked_index].mTexLayerSet)
{
BOOL ret = true;
- const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second;
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
{
const ETextureIndex tex_index = *local_tex_iter;
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(tex_index);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)
{
- ret &= (getLocalDiscardLevel(tex_index, wearable_index) >= 0);
+ BOOL tex_avail = (getLocalDiscardLevel(tex_index, wearable_index) >= 0);
+ ret &= tex_avail;
}
}
return ret;
@@ -1445,7 +1425,7 @@ BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLTexLayerSet* layerset)
// Returns true if the highest quality discard level exists for every texture
// in the layerset.
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLTexLayerSet* layerset) const
+BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset) const
{
const U32 desired_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel");
// const U32 desired_tex_discard_level = 0; // hack to not bake textures on lower discard levels.
@@ -1454,17 +1434,19 @@ BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLTexLayerSet* layerset) cons
{
if (layerset == mBakedTextureDatas[i].mTexLayerSet)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
{
const ETextureIndex tex_index = *local_tex_iter;
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(tex_index);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)
{
- if (getLocalDiscardLevel(*local_tex_iter, wearable_index) > (S32)(desired_tex_discard_level))
+ S32 local_discard_level = getLocalDiscardLevel(*local_tex_iter, wearable_index);
+ if ((local_discard_level > (S32)(desired_tex_discard_level)) ||
+ (local_discard_level < 0 ))
{
return FALSE;
}
@@ -1477,6 +1459,7 @@ BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLTexLayerSet* layerset) cons
return FALSE;
}
+
BOOL LLVOAvatarSelf::isAllLocalTextureDataFinal() const
{
const U32 desired_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel");
@@ -1484,17 +1467,19 @@ BOOL LLVOAvatarSelf::isAllLocalTextureDataFinal() const
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
{
const ETextureIndex tex_index = *local_tex_iter;
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(tex_index);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)
{
- if (getLocalDiscardLevel(*local_tex_iter, wearable_index) > (S32)(desired_tex_discard_level))
+ S32 local_discard_level = getLocalDiscardLevel(*local_tex_iter, wearable_index);
+ if ((local_discard_level > (S32)(desired_tex_discard_level)) ||
+ (local_discard_level < 0 ))
{
return FALSE;
}
@@ -1504,22 +1489,22 @@ BOOL LLVOAvatarSelf::isAllLocalTextureDataFinal() const
return TRUE;
}
-BOOL LLVOAvatarSelf::isBakedTextureFinal(const LLVOAvatarDefines::EBakedTextureIndex index) const
+BOOL LLVOAvatarSelf::isBakedTextureFinal(const LLAvatarAppearanceDefines::EBakedTextureIndex index) const
{
- const LLTexLayerSet *layerset = mBakedTextureDatas[index].mTexLayerSet;
+ const LLViewerTexLayerSet *layerset = getLayerSet(index);
if (!layerset) return FALSE;
- const LLTexLayerSetBuffer *layerset_buffer = layerset->getComposite();
+ const LLViewerTexLayerSetBuffer *layerset_buffer = layerset->getViewerComposite();
if (!layerset_buffer) return FALSE;
return !layerset_buffer->uploadNeeded();
}
-BOOL LLVOAvatarSelf::isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index) const
+BOOL LLVOAvatarSelf::isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const
{
LLUUID id;
BOOL isDefined = TRUE;
if (isIndexLocalTexture(type))
{
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(type);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(type);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
if (index >= wearable_count)
{
@@ -1546,7 +1531,7 @@ BOOL LLVOAvatarSelf::isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32
}
//virtual
-BOOL LLVOAvatarSelf::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 index) const
+BOOL LLVOAvatarSelf::isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const
{
if (isIndexBakedTexture(type))
{
@@ -1559,7 +1544,7 @@ BOOL LLVOAvatarSelf::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32
}
//virtual
-BOOL LLVOAvatarSelf::isTextureVisible(LLVOAvatarDefines::ETextureIndex type, LLWearable *wearable) const
+BOOL LLVOAvatarSelf::isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const
{
if (isIndexBakedTexture(type))
{
@@ -1582,13 +1567,14 @@ void LLVOAvatarSelf::requestLayerSetUploads()
}
}
-void LLVOAvatarSelf::requestLayerSetUpload(LLVOAvatarDefines::EBakedTextureIndex i)
+void LLVOAvatarSelf::requestLayerSetUpload(LLAvatarAppearanceDefines::EBakedTextureIndex i)
{
ETextureIndex tex_index = mBakedTextureDatas[i].mTextureIndex;
const BOOL layer_baked = isTextureDefined(tex_index, gAgentWearables.getWearableCount(tex_index));
- if (!layer_baked && mBakedTextureDatas[i].mTexLayerSet)
+ LLViewerTexLayerSet *layerset = getLayerSet(i);
+ if (!layer_baked && layerset)
{
- mBakedTextureDatas[i].mTexLayerSet->requestUpload();
+ layerset->requestUpload();
}
}
@@ -1602,8 +1588,8 @@ bool LLVOAvatarSelf::hasPendingBakedUploads() const
{
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- LLTexLayerSet* layerset = mBakedTextureDatas[i].mTexLayerSet;
- if (layerset && layerset->getComposite() && layerset->getComposite()->uploadPending())
+ LLViewerTexLayerSet* layerset = getTexLayerSet(i);
+ if (layerset && layerset->getViewerComposite() && layerset->getViewerComposite()->uploadPending())
{
return true;
}
@@ -1613,22 +1599,23 @@ bool LLVOAvatarSelf::hasPendingBakedUploads() const
void LLVOAvatarSelf::invalidateComposite( LLTexLayerSet* layerset, BOOL upload_result )
{
- if( !layerset || !layerset->getUpdatesEnabled() )
+ LLViewerTexLayerSet *layer_set = dynamic_cast<LLViewerTexLayerSet*>(layerset);
+ if( !layer_set || !layer_set->getUpdatesEnabled() )
{
return;
}
// llinfos << "LLVOAvatar::invalidComposite() " << layerset->getBodyRegionName() << llendl;
- layerset->requestUpdate();
- layerset->invalidateMorphMasks();
+ layer_set->requestUpdate();
+ layer_set->invalidateMorphMasks();
- if( upload_result )
+ if( upload_result && (getRegion() && !getRegion()->getCentralBakeVersion()))
{
llassert(isSelf());
- ETextureIndex baked_te = getBakedTE( layerset );
+ ETextureIndex baked_te = getBakedTE( layer_set );
setTEImage( baked_te, LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR) );
- layerset->requestUpload();
+ layer_set->requestUpload();
updateMeshTextures();
}
}
@@ -1637,7 +1624,8 @@ void LLVOAvatarSelf::invalidateAll()
{
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, TRUE);
+ LLViewerTexLayerSet *layerset = getTexLayerSet(i);
+ invalidateComposite(layerset, TRUE);
}
//mDebugSelfLoadTimer.reset();
}
@@ -1655,17 +1643,19 @@ void LLVOAvatarSelf::setCompositeUpdatesEnabled( bool b )
void LLVOAvatarSelf::setCompositeUpdatesEnabled(U32 index, bool b)
{
- if (mBakedTextureDatas[index].mTexLayerSet )
+ LLViewerTexLayerSet *layerset = getTexLayerSet(index);
+ if (layerset )
{
- mBakedTextureDatas[index].mTexLayerSet->setUpdatesEnabled( b );
+ layerset->setUpdatesEnabled( b );
}
}
bool LLVOAvatarSelf::isCompositeUpdateEnabled(U32 index)
{
- if (mBakedTextureDatas[index].mTexLayerSet)
+ LLViewerTexLayerSet *layerset = getTexLayerSet(index);
+ if (layerset)
{
- return mBakedTextureDatas[index].mTexLayerSet->getUpdatesEnabled();
+ return layerset->getUpdatesEnabled();
}
return false;
}
@@ -1676,9 +1666,10 @@ void LLVOAvatarSelf::setupComposites()
{
ETextureIndex tex_index = mBakedTextureDatas[i].mTextureIndex;
BOOL layer_baked = isTextureDefined(tex_index, gAgentWearables.getWearableCount(tex_index));
- if (mBakedTextureDatas[i].mTexLayerSet)
+ LLViewerTexLayerSet *layerset = getTexLayerSet(i);
+ if (layerset)
{
- mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(!layer_baked);
+ layerset->setUpdatesEnabled(!layer_baked);
}
}
}
@@ -1687,10 +1678,11 @@ void LLVOAvatarSelf::updateComposites()
{
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- if (mBakedTextureDatas[i].mTexLayerSet
+ LLViewerTexLayerSet *layerset = getTexLayerSet(i);
+ if (layerset
&& ((i != BAKED_SKIRT) || isWearingWearableType(LLWearableType::WT_SKIRT)))
{
- mBakedTextureDatas[i].mTexLayerSet->updateComposite();
+ layerset->updateComposite();
}
}
}
@@ -1703,11 +1695,12 @@ S32 LLVOAvatarSelf::getLocalDiscardLevel(ETextureIndex type, U32 wearable_index)
const LLLocalTextureObject *local_tex_obj = getLocalTextureObject(type, wearable_index);
if (local_tex_obj)
{
+ const LLViewerFetchedTexture* image = dynamic_cast<LLViewerFetchedTexture*>( local_tex_obj->getImage() );
if (type >= 0
&& local_tex_obj->getID() != IMG_DEFAULT_AVATAR
- && !local_tex_obj->getImage()->isMissingAsset())
+ && !image->isMissingAsset())
{
- return local_tex_obj->getImage()->getDiscardLevel();
+ return image->getDiscardLevel();
}
else
{
@@ -1732,7 +1725,7 @@ void LLVOAvatarSelf::getLocalTextureByteCount(S32* gl_bytes) const
const LLLocalTextureObject *local_tex_obj = getLocalTextureObject((ETextureIndex) type, num);
if (local_tex_obj)
{
- const LLViewerFetchedTexture* image_gl = local_tex_obj->getImage();
+ const LLViewerFetchedTexture* image_gl = dynamic_cast<LLViewerFetchedTexture*>( local_tex_obj->getImage() );
if (image_gl)
{
S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents();
@@ -1767,8 +1760,8 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
llerrs << "Tried to set local texture with invalid type: (" << (U32) type << ", " << index << ")" << llendl;
return;
}
- LLWearableType::EType wearable_type = LLVOAvatarDictionary::getInstance()->getTEWearableType(type);
- if (!gAgentWearables.getWearable(wearable_type,index))
+ LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(type);
+ if (!gAgentWearables.getViewerWearable(wearable_type,index))
{
// no wearable is loaded, cannot set the texture.
return;
@@ -1781,10 +1774,10 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
return;
}
- LLTexLayerSet *layer_set = getLayerSet(type);
+ LLViewerTexLayerSet *layer_set = getLayerSet(type);
if (layer_set)
{
- layer_set->cloneTemplates(local_tex_obj, type, gAgentWearables.getWearable(wearable_type,index));
+ layer_set->cloneTemplates(local_tex_obj, type, gAgentWearables.getViewerWearable(wearable_type,index));
}
}
@@ -1804,16 +1797,13 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
local_tex_obj->setDiscard(tex_discard);
if (isSelf())
{
- if (gAgentAvatarp->isUsingBakedTextures())
- {
requestLayerSetUpdate(type);
- }
- else
- {
- LLVisualParamHint::requestHintUpdates();
+ if (isEditingAppearance())
+ {
+ LLVisualParamHint::requestHintUpdates();
+ }
}
}
- }
else
{
tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL);
@@ -1826,8 +1816,9 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
local_tex_obj->setID(tex->getID());
setBakedReady(type,baked_version_ready,index);
}
+
//virtual
-void LLVOAvatarSelf::setBakedReady(LLVOAvatarDefines::ETextureIndex type, BOOL baked_version_exists, U32 index)
+void LLVOAvatarSelf::setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index)
{
if (!isIndexLocalTexture(type)) return;
LLLocalTextureObject *local_tex_obj = getLocalTextureObject(type,index);
@@ -1846,16 +1837,16 @@ void LLVOAvatarSelf::dumpLocalTextures() const
/* ETextureIndex baked_equiv[] = {
TEX_UPPER_BAKED,
if (isTextureDefined(baked_equiv[i])) */
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
continue;
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
- const ETextureIndex baked_equiv = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex;
+ const ETextureIndex baked_equiv = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex;
const std::string &name = texture_dict->mName;
const LLLocalTextureObject *local_tex_obj = getLocalTextureObject(iter->first, 0);
@@ -1878,7 +1869,7 @@ void LLVOAvatarSelf::dumpLocalTextures() const
}
else
{
- const LLViewerFetchedTexture* image = local_tex_obj->getImage();
+ const LLViewerFetchedTexture* image = dynamic_cast<LLViewerFetchedTexture*>( local_tex_obj->getImage() );
llinfos << "LocTex " << name << ": "
<< "Discard " << image->getDiscardLevel() << ", "
@@ -1955,35 +1946,63 @@ void LLVOAvatarSelf::dumpTotalLocalTextureByteCount()
BOOL LLVOAvatarSelf::getIsCloud() const
{
+ // Let people know why they're clouded without spamming them into oblivion.
+ bool do_warn = false;
+ static LLTimer time_since_notice;
+ F32 update_freq = 30.0;
+ if (time_since_notice.getElapsedTimeF32() > update_freq)
+ {
+ time_since_notice.reset();
+ do_warn = true;
+ }
+
// do we have our body parts?
- if (gAgentWearables.getWearableCount(LLWearableType::WT_SHAPE) == 0 ||
- gAgentWearables.getWearableCount(LLWearableType::WT_HAIR) == 0 ||
- gAgentWearables.getWearableCount(LLWearableType::WT_EYES) == 0 ||
- gAgentWearables.getWearableCount(LLWearableType::WT_SKIN) == 0)
+ S32 shape_count = gAgentWearables.getWearableCount(LLWearableType::WT_SHAPE);
+ S32 hair_count = gAgentWearables.getWearableCount(LLWearableType::WT_HAIR);
+ S32 eye_count = gAgentWearables.getWearableCount(LLWearableType::WT_EYES);
+ S32 skin_count = gAgentWearables.getWearableCount(LLWearableType::WT_SKIN);
+ if (!shape_count || !hair_count || !eye_count || !skin_count)
{
- lldebugs << "No body parts" << llendl;
+ if (do_warn)
+ {
+ llinfos << "Self is clouded due to missing one or more required body parts: "
+ << (shape_count ? "" : "SHAPE ")
+ << (hair_count ? "" : "HAIR ")
+ << (eye_count ? "" : "EYES ")
+ << (skin_count ? "" : "SKIN ")
+ << llendl;
+ }
return TRUE;
}
if (!isTextureDefined(TEX_HAIR, 0))
{
- lldebugs << "No hair texture" << llendl;
+ if (do_warn)
+ {
+ llinfos << "Self is clouded because of no hair texture" << llendl;
+ }
return TRUE;
}
if (!mPreviousFullyLoaded)
{
- if (!isLocalTextureDataAvailable(mBakedTextureDatas[BAKED_LOWER].mTexLayerSet) &&
+ if (!isLocalTextureDataAvailable(getLayerSet(BAKED_LOWER)) &&
(!isTextureDefined(TEX_LOWER_BAKED, 0)))
{
- lldebugs << "Lower textures not baked" << llendl;
+ if (do_warn)
+ {
+ llinfos << "Self is clouded because lower textures not baked" << llendl;
+ }
return TRUE;
}
- if (!isLocalTextureDataAvailable(mBakedTextureDatas[BAKED_UPPER].mTexLayerSet) &&
+ if (!isLocalTextureDataAvailable(getLayerSet(BAKED_UPPER)) &&
(!isTextureDefined(TEX_UPPER_BAKED, 0)))
{
- lldebugs << "Upper textures not baked" << llendl;
+ if (do_warn)
+ {
+ llinfos << "Self is clouded because upper textures not baked" << llendl;
+ }
return TRUE;
}
@@ -2000,7 +2019,11 @@ BOOL LLVOAvatarSelf::getIsCloud() const
const LLViewerTexture* baked_img = getImage( texture_data.mTextureIndex, 0 );
if (!baked_img || !baked_img->hasGLTexture())
{
- lldebugs << "Texture at index " << i << " (texture index is " << texture_data.mTextureIndex << ") is not loaded" << llendl;
+ if (do_warn)
+ {
+ llinfos << "Self is clouded because texture at index " << i
+ << " (texture index is " << texture_data.mTextureIndex << ") is not loaded" << llendl;
+ }
return TRUE;
}
}
@@ -2051,7 +2074,85 @@ void LLVOAvatarSelf::debugBakedTextureUpload(EBakedTextureIndex index, BOOL fini
mDebugBakedTextureTimes[index][done] = mDebugSelfLoadTimer.getElapsedTimeF32();
}
-const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLTexLayerSet* layerset) const
+const std::string LLVOAvatarSelf::verboseDebugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const
+{
+ std::ostringstream outbuf;
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter =
+ LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
+ ++baked_iter)
+ {
+ const EBakedTextureIndex baked_index = baked_iter->first;
+ if (layerset == mBakedTextureDatas[baked_index].mTexLayerSet)
+ {
+ outbuf << "baked_index: " << baked_index << "\n";
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second;
+ for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
+ local_tex_iter != baked_dict->mLocalTextures.end();
+ ++local_tex_iter)
+ {
+ const ETextureIndex tex_index = *local_tex_iter;
+ const std::string tex_name = LLAvatarAppearanceDictionary::getInstance()->getTexture(tex_index)->mName;
+ outbuf << " tex_index " << (S32) tex_index << " name " << tex_name << "\n";
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
+ const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
+ if (wearable_count > 0)
+ {
+ for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)
+ {
+ outbuf << " " << LLWearableType::getTypeName(wearable_type) << " " << wearable_index << ":";
+ const LLLocalTextureObject *local_tex_obj = getLocalTextureObject(tex_index, wearable_index);
+ if (local_tex_obj)
+ {
+ LLViewerFetchedTexture* image = dynamic_cast<LLViewerFetchedTexture*>( local_tex_obj->getImage() );
+ if (tex_index >= 0
+ && local_tex_obj->getID() != IMG_DEFAULT_AVATAR
+ && !image->isMissingAsset())
+ {
+ outbuf << " id: " << image->getID()
+ << " refs: " << image->getNumRefs()
+ << " glocdisc: " << getLocalDiscardLevel(tex_index, wearable_index)
+ << " discard: " << image->getDiscardLevel()
+ << " desired: " << image->getDesiredDiscardLevel()
+ << " decode: " << image->getDecodePriority()
+ << " addl: " << image->getAdditionalDecodePriority()
+ << " ts: " << image->getTextureState()
+ << " bl: " << image->getBoostLevel()
+ << " fl: " << image->isFullyLoaded() // this is not an accessor for mFullyLoaded - see comment there.
+ << " cl: " << (image->isFullyLoaded() && image->getDiscardLevel()==0) // "completely loaded"
+ << " mvs: " << image->getMaxVirtualSize()
+ << " mvsc: " << image->getMaxVirtualSizeResetCounter()
+ << " mem: " << image->getTextureMemory();
+ }
+ }
+ outbuf << "\n";
+ }
+ }
+ }
+ break;
+ }
+ }
+ return outbuf.str();
+}
+
+void LLVOAvatarSelf::dumpAllTextures() const
+{
+ std::string vd_text = "Local textures per baked index and wearable:\n";
+ for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
+ ++baked_iter)
+ {
+ const LLAvatarAppearanceDefines::EBakedTextureIndex baked_index = baked_iter->first;
+ const LLViewerTexLayerSet *layerset = debugGetLayerSet(baked_index);
+ if (!layerset) continue;
+ const LLViewerTexLayerSetBuffer *layerset_buffer = layerset->getViewerComposite();
+ if (!layerset_buffer) continue;
+ vd_text += verboseDebugDumpLocalTextureDataInfo(layerset);
+ }
+ LL_DEBUGS("Avatar") << vd_text << llendl;
+}
+
+const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const
{
std::string text="";
@@ -2059,21 +2160,21 @@ const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLTexLayer
/* if (layerset == mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)
return getLocalDiscardLevel(TEX_HEAD_BODYPAINT) >= 0; */
- for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
const EBakedTextureIndex baked_index = baked_iter->first;
if (layerset == mBakedTextureDatas[baked_index].mTexLayerSet)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second;
text += llformat("%d-%s ( ",baked_index, baked_dict->mName.c_str());
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
{
const ETextureIndex tex_index = *local_tex_iter;
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(tex_index);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
if (wearable_count > 0)
{
@@ -2100,14 +2201,14 @@ const std::string LLVOAvatarSelf::debugDumpAllLocalTextureDataInfo() const
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
BOOL is_texture_final = TRUE;
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
++local_tex_iter)
{
const ETextureIndex tex_index = *local_tex_iter;
- const LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(tex_index);
+ const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index);
const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);
for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)
{
@@ -2119,20 +2220,14 @@ const std::string LLVOAvatarSelf::debugDumpAllLocalTextureDataInfo() const
return text;
}
+
+#if 0
// Dump avatar metrics data.
LLSD LLVOAvatarSelf::metricsData()
{
// runway - add region info
LLSD result;
result["rez_status"] = LLVOAvatar::rezStatusToString(getRezzedStatus());
- std::vector<S32> rez_counts;
- LLVOAvatar::getNearbyRezzedStats(rez_counts);
- result["nearby"] = LLSD::emptyMap();
- for (S32 i=0; i<rez_counts.size(); ++i)
- {
- std::string rez_status_name = LLVOAvatar::rezStatusToString(i);
- result["nearby"][rez_status_name] = rez_counts[i];
- }
result["timers"]["debug_existence"] = mDebugExistenceTimer.getElapsedTimeF32();
result["timers"]["ruth_debug"] = mRuthDebugTimer.getElapsedTimeF32();
result["timers"]["ruth"] = mRuthTimer.getElapsedTimeF32();
@@ -2142,6 +2237,7 @@ LLSD LLVOAvatarSelf::metricsData()
return result;
}
+#endif
class ViewerAppearanceChangeMetricsResponder: public LLCurl::Responder
{
@@ -2159,6 +2255,7 @@ public:
const std::string& reason,
const LLSD& content)
{
+ gPendingMetricsUploads--; // if we add retry, this should be moved to the isGoodStatus case.
if (isGoodStatus(status))
{
LL_DEBUGS("Avatar") << "OK" << LL_ENDL;
@@ -2167,16 +2264,11 @@ public:
else
{
LL_WARNS("Avatar") << "Failed " << status << " reason " << reason << LL_ENDL;
- error(status,reason);
+ errorWithContent(status,reason,content);
}
}
// virtual
- void error(U32 status_num, const std::string & reason)
- {
- }
-
- // virtual
void result(const LLSD & content)
{
if (mLiveSequence == mExpectedSequence)
@@ -2191,19 +2283,121 @@ private:
volatile bool & mReportingStarted;
};
-void LLVOAvatarSelf::sendAppearanceChangeMetrics()
+bool LLVOAvatarSelf::updateAvatarRezMetrics(bool force_send)
+{
+ const F32 AV_METRICS_INTERVAL_QA = 30.0;
+ F32 send_period = 300.0;
+ if (gSavedSettings.getBOOL("QAModeMetrics"))
+ {
+ send_period = AV_METRICS_INTERVAL_QA;
+ }
+
+ if (force_send || mTimeSinceLastRezMessage.getElapsedTimeF32() > send_period)
+ {
+ // Stats for completed phases have been getting logged as they
+ // complete. This will give us stats for any timers that
+ // haven't finished as of the metric's being sent.
+
+ if (force_send)
+ {
+ LLVOAvatar::logPendingPhasesAllAvatars();
+ }
+ sendViewerAppearanceChangeMetrics();
+ }
+
+ return false;
+}
+
+void LLVOAvatarSelf::addMetricsTimerRecord(const LLSD& record)
+{
+ mPendingTimerRecords.push_back(record);
+}
+
+bool operator<(const LLSD& a, const LLSD& b)
+{
+ std::ostringstream aout, bout;
+ aout << LLSDNotationStreamer(a);
+ bout << LLSDNotationStreamer(b);
+ std::string astring = aout.str();
+ std::string bstring = bout.str();
+
+ return astring < bstring;
+
+}
+
+// Given a vector of LLSD records, return an LLSD array of bucketed stats for val_field.
+LLSD summarize_by_buckets(std::vector<LLSD> in_records,
+ std::vector<std::string> by_fields,
+ std::string val_field)
+{
+ LLSD result = LLSD::emptyArray();
+ std::map<LLSD,LLViewerStats::StatsAccumulator> accum;
+ for (std::vector<LLSD>::iterator in_record_iter = in_records.begin();
+ in_record_iter != in_records.end(); ++in_record_iter)
+ {
+ LLSD& record = *in_record_iter;
+ LLSD key;
+ for (std::vector<std::string>::iterator field_iter = by_fields.begin();
+ field_iter != by_fields.end(); ++field_iter)
+ {
+ const std::string& field = *field_iter;
+ key[field] = record[field];
+ }
+ LLViewerStats::StatsAccumulator& stats = accum[key];
+ F32 value = record[val_field].asReal();
+ stats.push(value);
+ }
+ for (std::map<LLSD,LLViewerStats::StatsAccumulator>::iterator accum_it = accum.begin();
+ accum_it != accum.end(); ++accum_it)
+ {
+ LLSD out_record = accum_it->first;
+ out_record["stats"] = accum_it->second.getData();
+ result.append(out_record);
+ }
+ return result;
+}
+
+void LLVOAvatarSelf::sendViewerAppearanceChangeMetrics()
{
// gAgentAvatarp->stopAllPhases();
static volatile bool reporting_started(false);
static volatile S32 report_sequence(0);
- LLSD msg = metricsData();
+ LLSD msg; // = metricsData();
msg["message"] = "ViewerAppearanceChangeMetrics";
msg["session_id"] = gAgentSessionID;
msg["agent_id"] = gAgentID;
msg["sequence"] = report_sequence;
msg["initial"] = !reporting_started;
msg["break"] = false;
+ msg["duration"] = mTimeSinceLastRezMessage.getElapsedTimeF32();
+
+ // Status of our own rezzing.
+ msg["rez_status"] = LLVOAvatar::rezStatusToString(getRezzedStatus());
+
+ // Status of all nearby avs including ourself.
+ msg["nearby"] = LLSD::emptyArray();
+ std::vector<S32> rez_counts;
+ LLVOAvatar::getNearbyRezzedStats(rez_counts);
+ for (S32 rez_stat=0; rez_stat < rez_counts.size(); ++rez_stat)
+ {
+ std::string rez_status_name = LLVOAvatar::rezStatusToString(rez_stat);
+ msg["nearby"][rez_status_name] = rez_counts[rez_stat];
+ }
+
+ // std::vector<std::string> bucket_fields("timer_name","is_self","grid_x","grid_y","is_using_server_bake");
+ std::vector<std::string> by_fields;
+ by_fields.push_back("timer_name");
+ by_fields.push_back("completed");
+ by_fields.push_back("grid_x");
+ by_fields.push_back("grid_y");
+ by_fields.push_back("is_using_server_bakes");
+ by_fields.push_back("is_self");
+ by_fields.push_back("central_bake_version");
+ LLSD summary = summarize_by_buckets(mPendingTimerRecords, by_fields, std::string("elapsed"));
+ msg["timers"] = summary;
+
+ mPendingTimerRecords.clear();
// Update sequence number
if (S32_MAX == ++report_sequence)
@@ -2218,20 +2412,79 @@ void LLVOAvatarSelf::sendAppearanceChangeMetrics()
}
if (!caps_url.empty())
{
+ gPendingMetricsUploads++;
LLCurlRequest::headers_t headers;
LLHTTPClient::post(caps_url,
msg,
new ViewerAppearanceChangeMetricsResponder(report_sequence,
report_sequence,
reporting_started));
+ mTimeSinceLastRezMessage.reset();
}
}
+class CheckAgentAppearanceServiceResponder: public LLHTTPClient::Responder
+{
+public:
+ CheckAgentAppearanceServiceResponder()
+ {
+ }
+
+ virtual ~CheckAgentAppearanceServiceResponder()
+ {
+ }
+
+ /* virtual */ void result(const LLSD& content)
+ {
+ LL_DEBUGS("Avatar") << "status OK" << llendl;
+ }
+
+ // Error
+ /*virtual*/ void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+ {
+ if (isAgentAvatarValid())
+ {
+ LL_DEBUGS("Avatar") << "failed, will rebake [status:"
+ << status << "]: " << content << llendl;
+ forceAppearanceUpdate();
+ }
+ }
+
+ static void forceAppearanceUpdate()
+ {
+ // Trying to rebake immediately after crossing region boundary
+ // seems to be failure prone; adding a delay factor. Yes, this
+ // fix is ad-hoc and not guaranteed to work in all cases.
+ doAfterInterval(boost::bind(&LLVOAvatarSelf::forceBakeAllTextures,
+ gAgentAvatarp.get(), true), 5.0);
+ }
+};
+
+void LLVOAvatarSelf::checkForUnsupportedServerBakeAppearance()
+{
+ // Need to check only if we have a server baked appearance and are
+ // in a non-baking region.
+ if (!gAgentAvatarp->isUsingServerBakes())
+ return;
+ if (!gAgent.getRegion() || gAgent.getRegion()->getCentralBakeVersion()!=0)
+ return;
+
+ // if baked image service is unknown, need to refresh.
+ if (LLAppearanceMgr::instance().getAppearanceServiceURL().empty())
+ {
+ CheckAgentAppearanceServiceResponder::forceAppearanceUpdate();
+ }
+ // query baked image service to check status.
+ std::string image_url = gAgentAvatarp->getImageURL(TEX_HEAD_BAKED,
+ getTE(TEX_HEAD_BAKED)->getID());
+ LLHTTPClient::head(image_url, new CheckAgentAppearanceServiceResponder);
+}
+
const LLUUID& LLVOAvatarSelf::grabBakedTexture(EBakedTextureIndex baked_index) const
{
if (canGrabBakedTexture(baked_index))
{
- ETextureIndex tex_index = LLVOAvatarDictionary::bakedToLocalTextureIndex(baked_index);
+ ETextureIndex tex_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(baked_index);
if (tex_index == TEX_NUM_INDICES)
{
return LLUUID::null;
@@ -2243,7 +2496,7 @@ const LLUUID& LLVOAvatarSelf::grabBakedTexture(EBakedTextureIndex baked_index) c
BOOL LLVOAvatarSelf::canGrabBakedTexture(EBakedTextureIndex baked_index) const
{
- ETextureIndex tex_index = LLVOAvatarDictionary::bakedToLocalTextureIndex(baked_index);
+ ETextureIndex tex_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(baked_index);
if (tex_index == TEX_NUM_INDICES)
{
return FALSE;
@@ -2262,19 +2515,19 @@ BOOL LLVOAvatarSelf::canGrabBakedTexture(EBakedTextureIndex baked_index) const
// baked texture. We don't want people copying people's
// work via baked textures.
- const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index);
+ const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index);
for (texture_vec_t::const_iterator iter = baked_dict->mLocalTextures.begin();
iter != baked_dict->mLocalTextures.end();
++iter)
{
const ETextureIndex t_index = (*iter);
- LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType(t_index);
+ LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(t_index);
U32 count = gAgentWearables.getWearableCount(wearable_type);
lldebugs << "Checking index " << (U32) t_index << " count: " << count << llendl;
for (U32 wearable_index = 0; wearable_index < count; ++wearable_index)
{
- LLWearable *wearable = gAgentWearables.getWearable(wearable_type, wearable_index);
+ LLViewerWearable *wearable = gAgentWearables.getViewerWearable(wearable_type, wearable_index);
if (wearable)
{
const LLLocalTextureObject *texture = wearable->getLocalTextureObject((S32)t_index);
@@ -2316,26 +2569,34 @@ BOOL LLVOAvatarSelf::canGrabBakedTexture(EBakedTextureIndex baked_index) const
}
void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTexture* imagep,
- F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked, U32 index )
+ F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked)
{
if (!isIndexLocalTexture(type)) return;
- if (!covered_by_baked)
+ // Sunshine - ignoring covered_by_baked will force local textures
+ // to always load. Fix for SH-4001 and many related issues. Do
+ // not restore this without some more targetted fix for the local
+ // textures failing to load issue.
+ //if (!covered_by_baked)
{
- if (getLocalTextureID(type, index) != IMG_DEFAULT_AVATAR && imagep->getDiscardLevel() != 0)
+ if (imagep->getID() != IMG_DEFAULT_AVATAR)
{
- F32 desired_pixels;
- desired_pixels = llmin(mPixelArea, (F32)getTexImageArea());
- imagep->setBoostLevel(getAvatarBoostLevel());
-
- imagep->resetTextureStats();
- imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
- imagep->addTextureStats( desired_pixels / texel_area_ratio );
- imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
- imagep->forceUpdateBindStats() ;
- if (imagep->getDiscardLevel() < 0)
+ imagep->setNoDelete();
+ if (imagep->getDiscardLevel() != 0)
{
- mHasGrey = TRUE; // for statistics gathering
+ F32 desired_pixels;
+ desired_pixels = llmin(mPixelArea, (F32)getTexImageArea());
+
+ imagep->setBoostLevel(getAvatarBoostLevel());
+ imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
+ imagep->resetTextureStats();
+ imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
+ imagep->addTextureStats( desired_pixels / texel_area_ratio );
+ imagep->forceUpdateBindStats() ;
+ if (imagep->getDiscardLevel() < 0)
+ {
+ mHasGrey = TRUE; // for statistics gathering
+ }
}
}
else
@@ -2346,10 +2607,10 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe
}
}
-LLLocalTextureObject* LLVOAvatarSelf::getLocalTextureObject(LLVOAvatarDefines::ETextureIndex i, U32 wearable_index) const
+LLLocalTextureObject* LLVOAvatarSelf::getLocalTextureObject(LLAvatarAppearanceDefines::ETextureIndex i, U32 wearable_index) const
{
- LLWearableType::EType type = LLVOAvatarDictionary::getInstance()->getTEWearableType(i);
- LLWearable* wearable = gAgentWearables.getWearable(type, wearable_index);
+ LLWearableType::EType type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(i);
+ LLViewerWearable* wearable = gAgentWearables.getViewerWearable(type, wearable_index);
if (wearable)
{
return wearable->getLocalTextureObject(i);
@@ -2362,7 +2623,7 @@ LLLocalTextureObject* LLVOAvatarSelf::getLocalTextureObject(LLVOAvatarDefines::E
// getBakedTE()
// Used by the LayerSet. (Layer sets don't in general know what textures depend on them.)
//-----------------------------------------------------------------------------
-ETextureIndex LLVOAvatarSelf::getBakedTE( const LLTexLayerSet* layerset ) const
+ETextureIndex LLVOAvatarSelf::getBakedTE( const LLViewerTexLayerSet* layerset ) const
{
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
@@ -2376,9 +2637,9 @@ ETextureIndex LLVOAvatarSelf::getBakedTE( const LLTexLayerSet* layerset ) const
}
-void LLVOAvatarSelf::setNewBakedTexture(LLVOAvatarDefines::EBakedTextureIndex i, const LLUUID &uuid)
+void LLVOAvatarSelf::setNewBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex i, const LLUUID &uuid)
{
- ETextureIndex index = LLVOAvatarDictionary::bakedToLocalTextureIndex(i);
+ ETextureIndex index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(i);
setNewBakedTexture(index, uuid);
}
@@ -2391,7 +2652,7 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
{
// Baked textures live on other sims.
LLHost target_host = getObjectHost();
- setTEImage( te, LLViewerTextureManager::getFetchedTextureFromHost( uuid, target_host ) );
+ setTEImage( te, LLViewerTextureManager::getFetchedTextureFromHost( uuid, FTT_HOST_BAKE, target_host ) );
updateMeshTextures();
dirtyMesh();
@@ -2400,7 +2661,7 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
/* switch(te)
case TEX_HEAD_BAKED:
llinfos << "New baked texture: HEAD" << llendl; */
- const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(te);
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(te);
if (texture_dict->mIsBakedTexture)
{
debugBakedTextureUpload(texture_dict->mBakedTextureIndex, TRUE); // FALSE for start of upload, TRUE for finish.
@@ -2465,7 +2726,7 @@ void LLVOAvatarSelf::outputRezDiagnostics() const
LL_DEBUGS("Avatar") << "\t Time from avatar creation to de-cloud: " << (S32)mDebugTimeAvatarVisible << llendl;
LL_DEBUGS("Avatar") << "\t Time from avatar creation to de-cloud for others: " << (S32)final_time << llendl;
LL_DEBUGS("Avatar") << "\t Load time for each texture: " << llendl;
- for (U32 i = 0; i < LLVOAvatarDefines::TEX_NUM_INDICES; ++i)
+ for (U32 i = 0; i < LLAvatarAppearanceDefines::TEX_NUM_INDICES; ++i)
{
std::stringstream out;
out << "\t\t (" << i << ") ";
@@ -2493,27 +2754,29 @@ void LLVOAvatarSelf::outputRezDiagnostics() const
}
}
LL_DEBUGS("Avatar") << "\t Time points for each upload (start / finish)" << llendl;
- for (U32 i = 0; i < LLVOAvatarDefines::BAKED_NUM_INDICES; ++i)
+ for (U32 i = 0; i < LLAvatarAppearanceDefines::BAKED_NUM_INDICES; ++i)
{
LL_DEBUGS("Avatar") << "\t\t (" << i << ") \t" << (S32)mDebugBakedTextureTimes[i][0] << " / " << (S32)mDebugBakedTextureTimes[i][1] << llendl;
}
- for (LLVOAvatarDefines::LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end();
++baked_iter)
{
- const LLVOAvatarDefines::EBakedTextureIndex baked_index = baked_iter->first;
- const LLTexLayerSet *layerset = debugGetLayerSet(baked_index);
+ const LLAvatarAppearanceDefines::EBakedTextureIndex baked_index = baked_iter->first;
+ const LLViewerTexLayerSet *layerset = debugGetLayerSet(baked_index);
if (!layerset) continue;
- const LLTexLayerSetBuffer *layerset_buffer = layerset->getComposite();
+ const LLViewerTexLayerSetBuffer *layerset_buffer = layerset->getViewerComposite();
if (!layerset_buffer) continue;
LL_DEBUGS("Avatar") << layerset_buffer->dumpTextureInfo() << llendl;
}
+
+ dumpAllTextures();
}
void LLVOAvatarSelf::outputRezTiming(const std::string& msg) const
{
- LL_INFOS("Avatar")
+ LL_DEBUGS("Avatar")
<< avString()
<< llformat("%s. Time from avatar creation: %.2f", msg.c_str(), mDebugSelfLoadTimer.getElapsedTimeF32())
<< LL_ENDL;
@@ -2538,7 +2801,8 @@ void LLVOAvatarSelf::setCachedBakedTexture( ETextureIndex te, const LLUUID& uuid
mHeadLayerSet->cancelUpload(); */
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- if ( mBakedTextureDatas[i].mTextureIndex == te && mBakedTextureDatas[i].mTexLayerSet)
+ LLViewerTexLayerSet *layerset = getTexLayerSet(i);
+ if ( mBakedTextureDatas[i].mTextureIndex == te && layerset)
{
if (mInitialBakeIDs[i] != LLUUID::null)
{
@@ -2552,7 +2816,7 @@ void LLVOAvatarSelf::setCachedBakedTexture( ETextureIndex te, const LLUUID& uuid
}
mInitialBakeIDs[i] = LLUUID::null;
}
- mBakedTextureDatas[i].mTexLayerSet->cancelUpload();
+ layerset->cancelUpload();
}
}
}
@@ -2571,17 +2835,17 @@ void LLVOAvatarSelf::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
/* ETextureIndex baked_texture_indices[BAKED_NUM_INDICES] =
TEX_HEAD_BAKED,
TEX_UPPER_BAKED, */
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (texture_dict->mIsBakedTexture)
{
if (texture_id == gAgentAvatarp->getTEImage(index)->getID())
{
- LLTexLayerSet* layer_set = gAgentAvatarp->getLayerSet(index);
+ LLViewerTexLayerSet* layer_set = gAgentAvatarp->getLayerSet(index);
if (layer_set)
{
llinfos << "TAT: rebake - matched entry " << (S32)index << llendl;
@@ -2605,15 +2869,6 @@ void LLVOAvatarSelf::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
}
}
-BOOL LLVOAvatarSelf::isUsingBakedTextures() const
-{
- // Composite textures are used during appearance mode.
- if (gAgentCamera.cameraCustomizeAvatar())
- return FALSE;
-
- return TRUE;
-}
-
void LLVOAvatarSelf::forceBakeAllTextures(bool slam_for_debug)
{
@@ -2622,7 +2877,7 @@ void LLVOAvatarSelf::forceBakeAllTextures(bool slam_for_debug)
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
ETextureIndex baked_index = mBakedTextureDatas[i].mTextureIndex;
- LLTexLayerSet* layer_set = getLayerSet(baked_index);
+ LLViewerTexLayerSet* layer_set = getLayerSet(baked_index);
if (layer_set)
{
if (slam_for_debug)
@@ -2654,7 +2909,7 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )
case LOCTEX_UPPER_SHIRT:
if( mUpperBodyLayerSet )
mUpperBodyLayerSet->requestUpdate(); */
- const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
return;
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
@@ -2664,22 +2919,22 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )
}
}
-LLTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const
+LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const
{
- /* switch(index)
- case TEX_HEAD_BAKED:
- case TEX_HEAD_BODYPAINT:
- return mHeadLayerSet; */
- const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
- if (texture_dict->mIsUsedByBakedTexture)
- {
- const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
- return mBakedTextureDatas[baked_index].mTexLayerSet;
- }
- return NULL;
+ /* switch(index)
+ case TEX_HEAD_BAKED:
+ case TEX_HEAD_BODYPAINT:
+ return mHeadLayerSet; */
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
+ if (texture_dict->mIsUsedByBakedTexture)
+ {
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ return getLayerSet(baked_index);
+ }
+ return NULL;
}
-LLTexLayerSet* LLVOAvatarSelf::getLayerSet(EBakedTextureIndex baked_index) const
+LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(EBakedTextureIndex baked_index) const
{
/* switch(index)
case TEX_HEAD_BAKED:
@@ -2687,26 +2942,60 @@ LLTexLayerSet* LLVOAvatarSelf::getLayerSet(EBakedTextureIndex baked_index) const
return mHeadLayerSet; */
if (baked_index >= 0 && baked_index < BAKED_NUM_INDICES)
{
- return mBakedTextureDatas[baked_index].mTexLayerSet;
+ return getTexLayerSet(baked_index);
}
return NULL;
}
+
+
// static
-void LLVOAvatarSelf::onCustomizeStart()
+void LLVOAvatarSelf::onCustomizeStart(bool disable_camera_switch)
{
- // We're no longer doing any baking or invalidating on entering
- // appearance editing mode. Leaving function in place in case
- // further changes require us to do something at this point - Nyx
+ if (isAgentAvatarValid())
+ {
+ gAgentAvatarp->mIsEditingAppearance = true;
+ gAgentAvatarp->mUseLocalAppearance = true;
+
+ if (gSavedSettings.getBOOL("AppearanceCameraMovement") && !disable_camera_switch)
+ {
+ gAgentCamera.changeCameraToCustomizeAvatar();
+ }
+
+#if 0
+ gAgentAvatarp->clearVisualParamWeights();
+ gAgentAvatarp->idleUpdateAppearanceAnimation();
+#endif
+
+ gAgentAvatarp->invalidateAll(); // mark all bakes as dirty, request updates
+ gAgentAvatarp->updateMeshTextures(); // make sure correct textures are applied to the avatar mesh.
+ gAgentAvatarp->updateTextures(); // call updateTextureStats
+ }
}
// static
-void LLVOAvatarSelf::onCustomizeEnd()
+void LLVOAvatarSelf::onCustomizeEnd(bool disable_camera_switch)
{
+
if (isAgentAvatarValid())
{
+ gAgentAvatarp->mIsEditingAppearance = false;
+ if (gAgentAvatarp->getRegion() && !gAgentAvatarp->getRegion()->getCentralBakeVersion())
+ {
+ // FIXME DRANO - move to sendAgentSetAppearance, make conditional on upload complete.
+ gAgentAvatarp->mUseLocalAppearance = false;
+ }
+
gAgentAvatarp->invalidateAll();
+
+ if (gSavedSettings.getBOOL("AppearanceCameraMovement") && !disable_camera_switch)
+ {
+ gAgentCamera.changeCameraToDefault();
+ gAgentCamera.resetView();
+ }
+
+ LLAppearanceMgr::instance().updateAppearanceFromCOF();
}
}
@@ -2719,12 +3008,12 @@ bool LLVOAvatarSelf::sendAppearanceMessage(LLMessageSystem *mesgsys) const
{
LLUUID texture_id[TEX_NUM_INDICES];
// pack away current TEs to make sure we don't send them out
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (!texture_dict->mIsBakedTexture)
{
LLTextureEntry* entry = getTE((U8) index);
@@ -2736,12 +3025,12 @@ bool LLVOAvatarSelf::sendAppearanceMessage(LLMessageSystem *mesgsys) const
bool success = packTEMessage(mesgsys);
// unpack TEs to make sure we don't re-trigger a bake
- for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin();
+ iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end();
++iter)
{
const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second;
if (!texture_dict->mIsBakedTexture)
{
LLTextureEntry* entry = getTE((U8) index);
@@ -2797,3 +3086,36 @@ void LLVOAvatarSelf::dumpScratchTextureByteCount()
{
llinfos << "Scratch Texture GL: " << (sScratchTexBytes/1024) << "KB" << llendl;
}
+
+void LLVOAvatarSelf::dumpWearableInfo(LLAPRFile& outfile)
+{
+ apr_file_t* file = outfile.getFileHandle();
+ if (!file)
+ {
+ return;
+ }
+
+
+ apr_file_printf( file, "\n<wearable_info>\n" );
+
+ LLWearableData *wd = getWearableData();
+ for (S32 type = 0; type < LLWearableType::WT_COUNT; type++)
+ {
+ const std::string& type_name = LLWearableType::getTypeName((LLWearableType::EType)type);
+ for (U32 j=0; j< wd->getWearableCount((LLWearableType::EType)type); j++)
+ {
+ LLViewerWearable *wearable = gAgentWearables.getViewerWearable((LLWearableType::EType)type,j);
+ apr_file_printf( file, "\n\t <wearable type=\"%s\" name=\"%s\"/>\n",
+ type_name.c_str(), wearable->getName().c_str() );
+ LLWearable::visual_param_vec_t v_params;
+ wearable->getVisualParams(v_params);
+ for (LLWearable::visual_param_vec_t::iterator it = v_params.begin();
+ it != v_params.end(); ++it)
+ {
+ LLVisualParam *param = *it;
+ dump_visual_param(file, param, param->getWeight());
+ }
+ }
+ }
+ apr_file_printf( file, "\n</wearable_info>\n" );
+}
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index 7bd0c0bf93..3b7b6bac64 100644..100755
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -67,9 +67,8 @@ public:
protected:
/*virtual*/ BOOL loadAvatar();
BOOL loadAvatarSelf();
- BOOL buildSkeletonSelf(const LLVOAvatarSkeletonInfo *info);
+ BOOL buildSkeletonSelf(const LLAvatarSkeletonInfo *info);
BOOL buildMenus();
- /*virtual*/ BOOL loadLayersets();
/** Initialization
** **
@@ -97,7 +96,7 @@ public:
void resetJointPositions( void );
- /*virtual*/ BOOL setVisualParamWeight(LLVisualParam *which_param, F32 weight, BOOL upload_bake = FALSE );
+ /*virtual*/ BOOL setVisualParamWeight(const LLVisualParam *which_param, F32 weight, BOOL upload_bake = FALSE );
/*virtual*/ BOOL setVisualParamWeight(const char* param_name, F32 weight, BOOL upload_bake = FALSE );
/*virtual*/ BOOL setVisualParamWeight(S32 index, F32 weight, BOOL upload_bake = FALSE );
/*virtual*/ void updateVisualParams();
@@ -111,7 +110,7 @@ public:
private:
// helper function. Passed in param is assumed to be in avatar's parameter list.
- BOOL setParamWeight(LLViewerVisualParam *param, F32 weight, BOOL upload_bake = FALSE );
+ BOOL setParamWeight(const LLViewerVisualParam *param, F32 weight, BOOL upload_bake = FALSE );
@@ -131,6 +130,7 @@ private:
public:
/*virtual*/ bool isSelf() const { return true; }
+ /*virtual*/ BOOL isValid() const;
//--------------------------------------------------------------------
// Updates
@@ -177,8 +177,8 @@ private:
// LLVOAvatar Constants
//--------------------------------------------------------------------
public:
- /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLViewerTexture::BOOST_AVATAR_SELF; }
- /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLViewerTexture::BOOST_AVATAR_BAKED_SELF; }
+ /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLGLTexture::BOOST_AVATAR_SELF; }
+ /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLGLTexture::BOOST_AVATAR_BAKED_SELF; }
/*virtual*/ S32 getTexImageSize() const { return LLVOAvatar::getTexImageSize()*4; }
/** Rendering
@@ -195,32 +195,32 @@ public:
//--------------------------------------------------------------------
public:
/*virtual*/ bool hasPendingBakedUploads() const;
- S32 getLocalDiscardLevel(LLVOAvatarDefines::ETextureIndex type, U32 index) const;
+ S32 getLocalDiscardLevel(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const;
bool areTexturesCurrent() const;
- BOOL isLocalTextureDataAvailable(const LLTexLayerSet* layerset) const;
- BOOL isLocalTextureDataFinal(const LLTexLayerSet* layerset) const;
- BOOL isBakedTextureFinal(const LLVOAvatarDefines::EBakedTextureIndex index) const;
+ BOOL isLocalTextureDataAvailable(const LLViewerTexLayerSet* layerset) const;
+ BOOL isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset) const;
+ BOOL isBakedTextureFinal(const LLAvatarAppearanceDefines::EBakedTextureIndex index) const;
// If you want to check all textures of a given type, pass gAgentWearables.getWearableCount() for index
- /*virtual*/ BOOL isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index) const;
- /*virtual*/ BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
- /*virtual*/ BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, LLWearable *wearable) const;
+ /*virtual*/ BOOL isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const;
+ /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const;
+ /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const;
//--------------------------------------------------------------------
// Local Textures
//--------------------------------------------------------------------
public:
- BOOL getLocalTextureGL(LLVOAvatarDefines::ETextureIndex type, LLViewerTexture** image_gl_pp, U32 index) const;
- LLViewerFetchedTexture* getLocalTextureGL(LLVOAvatarDefines::ETextureIndex type, U32 index) const;
- const LLUUID& getLocalTextureID(LLVOAvatarDefines::ETextureIndex type, U32 index) const;
+ BOOL getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture** image_gl_pp, U32 index) const;
+ LLViewerFetchedTexture* getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const;
+ const LLUUID& getLocalTextureID(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const;
void setLocalTextureTE(U8 te, LLViewerTexture* image, U32 index);
- /*virtual*/ void setLocalTexture(LLVOAvatarDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index);
+ /*virtual*/ void setLocalTexture(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index);
protected:
- /*virtual*/ void setBakedReady(LLVOAvatarDefines::ETextureIndex type, BOOL baked_version_exists, U32 index);
+ /*virtual*/ void setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index);
void localTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
void getLocalTextureByteCount(S32* gl_byte_count) const;
- /*virtual*/ void addLocalTextureStats(LLVOAvatarDefines::ETextureIndex i, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked, U32 index);
- LLLocalTextureObject* getLocalTextureObject(LLVOAvatarDefines::ETextureIndex i, U32 index) const;
+ /*virtual*/ void addLocalTextureStats(LLAvatarAppearanceDefines::ETextureIndex i, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked);
+ LLLocalTextureObject* getLocalTextureObject(LLAvatarAppearanceDefines::ETextureIndex i, U32 index) const;
private:
static void onLocalTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
@@ -233,13 +233,12 @@ private:
// Baked textures
//--------------------------------------------------------------------
public:
- LLVOAvatarDefines::ETextureIndex getBakedTE(const LLTexLayerSet* layerset ) const;
- void setNewBakedTexture(LLVOAvatarDefines::EBakedTextureIndex i, const LLUUID &uuid);
- void setNewBakedTexture(LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid);
- void setCachedBakedTexture(LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid);
+ LLAvatarAppearanceDefines::ETextureIndex getBakedTE(const LLViewerTexLayerSet* layerset ) const;
+ void setNewBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex i, const LLUUID &uuid);
+ void setNewBakedTexture(LLAvatarAppearanceDefines::ETextureIndex i, const LLUUID& uuid);
+ void setCachedBakedTexture(LLAvatarAppearanceDefines::ETextureIndex i, const LLUUID& uuid);
void forceBakeAllTextures(bool slam_for_debug = false);
static void processRebakeAvatarTextures(LLMessageSystem* msg, void**);
- BOOL isUsingBakedTextures() const; // e.g. false if in appearance edit mode
protected:
/*virtual*/ void removeMissingBakedTextures();
@@ -248,10 +247,11 @@ protected:
//--------------------------------------------------------------------
public:
void requestLayerSetUploads();
- void requestLayerSetUpload(LLVOAvatarDefines::EBakedTextureIndex i);
- void requestLayerSetUpdate(LLVOAvatarDefines::ETextureIndex i);
- LLTexLayerSet* getLayerSet(LLVOAvatarDefines::ETextureIndex index) const;
- LLTexLayerSet* getLayerSet(LLVOAvatarDefines::EBakedTextureIndex baked_index) const;
+ void requestLayerSetUpload(LLAvatarAppearanceDefines::EBakedTextureIndex i);
+ void requestLayerSetUpdate(LLAvatarAppearanceDefines::ETextureIndex i);
+ LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const;
+ LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::ETextureIndex index) const;
+
//--------------------------------------------------------------------
// Composites
@@ -265,8 +265,8 @@ public:
void setupComposites();
void updateComposites();
- const LLUUID& grabBakedTexture(LLVOAvatarDefines::EBakedTextureIndex baked_index) const;
- BOOL canGrabBakedTexture(LLVOAvatarDefines::EBakedTextureIndex baked_index) const;
+ const LLUUID& grabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const;
+ BOOL canGrabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const;
//--------------------------------------------------------------------
@@ -300,10 +300,9 @@ protected:
**/
public:
- /*virtual*/ BOOL isWearingWearableType(LLWearableType::EType type) const;
void wearableUpdated(LLWearableType::EType type, BOOL upload_result);
protected:
- U32 getNumWearables(LLVOAvatarDefines::ETextureIndex i) const;
+ U32 getNumWearables(LLAvatarAppearanceDefines::ETextureIndex i) const;
//--------------------------------------------------------------------
// Attachments
@@ -340,8 +339,8 @@ private:
**/
public:
- static void onCustomizeStart();
- static void onCustomizeEnd();
+ static void onCustomizeStart(bool disable_camera_switch = false);
+ static void onCustomizeEnd(bool disable_camera_switch = false);
//--------------------------------------------------------------------
// Visibility
@@ -365,6 +364,7 @@ public:
static void dumpTotalLocalTextureByteCount();
void dumpLocalTextures() const;
static void dumpScratchTextureByteCount();
+ void dumpWearableInfo(LLAPRFile& outfile);
//--------------------------------------------------------------------
// Avatar Rez Metrics
@@ -372,34 +372,43 @@ public:
public:
struct LLAvatarTexData
{
- LLAvatarTexData(const LLUUID& id, LLVOAvatarDefines::ETextureIndex index) :
+ LLAvatarTexData(const LLUUID& id, LLAvatarAppearanceDefines::ETextureIndex index) :
mAvatarID(id),
mIndex(index)
{}
LLUUID mAvatarID;
- LLVOAvatarDefines::ETextureIndex mIndex;
+ LLAvatarAppearanceDefines::ETextureIndex mIndex;
};
+
+ LLTimer mTimeSinceLastRezMessage;
+ bool updateAvatarRezMetrics(bool force_send);
+
+ std::vector<LLSD> mPendingTimerRecords;
+ void addMetricsTimerRecord(const LLSD& record);
+
void debugWearablesLoaded() { mDebugTimeWearablesLoaded = mDebugSelfLoadTimer.getElapsedTimeF32(); }
void debugAvatarVisible() { mDebugTimeAvatarVisible = mDebugSelfLoadTimer.getElapsedTimeF32(); }
void outputRezDiagnostics() const;
void outputRezTiming(const std::string& msg) const;
void reportAvatarRezTime() const;
- void debugBakedTextureUpload(LLVOAvatarDefines::EBakedTextureIndex index, BOOL finished);
+ void debugBakedTextureUpload(LLAvatarAppearanceDefines::EBakedTextureIndex index, BOOL finished);
static void debugOnTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
BOOL isAllLocalTextureDataFinal() const;
- const LLTexLayerSet* debugGetLayerSet(LLVOAvatarDefines::EBakedTextureIndex index) const { return mBakedTextureDatas[index].mTexLayerSet; }
- const std::string debugDumpLocalTextureDataInfo(const LLTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer
+ const LLViewerTexLayerSet* debugGetLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex index) const { return (LLViewerTexLayerSet*)(mBakedTextureDatas[index].mTexLayerSet); }
+ const std::string verboseDebugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer
+ void dumpAllTextures() const;
+ const std::string debugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer
const std::string debugDumpAllLocalTextureDataInfo() const; // Lists out which baked textures are at highest LOD
- LLSD metricsData();
- void sendAppearanceChangeMetrics(); // send data associated with completing a change.
+ void sendViewerAppearanceChangeMetrics(); // send data associated with completing a change.
+ void checkForUnsupportedServerBakeAppearance();
private:
LLFrameTimer mDebugSelfLoadTimer;
F32 mDebugTimeWearablesLoaded;
F32 mDebugTimeAvatarVisible;
- F32 mDebugTextureLoadTimes[LLVOAvatarDefines::TEX_NUM_INDICES][MAX_DISCARD_LEVEL+1]; // load time for each texture at each discard level
- F32 mDebugBakedTextureTimes[LLVOAvatarDefines::BAKED_NUM_INDICES][2]; // time to start upload and finish upload of each baked texture
+ F32 mDebugTextureLoadTimes[LLAvatarAppearanceDefines::TEX_NUM_INDICES][MAX_DISCARD_LEVEL+1]; // load time for each texture at each discard level
+ F32 mDebugBakedTextureTimes[LLAvatarAppearanceDefines::BAKED_NUM_INDICES][2]; // time to start upload and finish upload of each baked texture
void debugTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
/** Diagnostics
@@ -413,8 +422,7 @@ extern LLPointer<LLVOAvatarSelf> gAgentAvatarp;
BOOL isAgentAvatarValid();
void selfStartPhase(const std::string& phase_name);
-void selfStopPhase(const std::string& phase_name);
-void selfStopAllPhases();
+void selfStopPhase(const std::string& phase_name, bool err_check = true);
void selfClearPhases();
#endif // LL_VO_AVATARSELF_H
diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 7db19c5c1b..7db19c5c1b 100644..100755
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
diff --git a/indra/newview/llvocache.h b/indra/newview/llvocache.h
index 14e3b4c793..14e3b4c793 100644..100755
--- a/indra/newview/llvocache.h
+++ b/indra/newview/llvocache.h
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index 4dca87652d..6a25b765cf 100644..100755
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -102,7 +102,7 @@ void LLVOGrass::updateSpecies()
SpeciesMap::const_iterator it = sSpeciesTable.begin();
mSpecies = (*it).first;
}
- setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
+ setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
}
diff --git a/indra/newview/llvograss.h b/indra/newview/llvograss.h
index b9835b8802..b9835b8802 100644..100755
--- a/indra/newview/llvograss.h
+++ b/indra/newview/llvograss.h
diff --git a/indra/newview/llvoground.cpp b/indra/newview/llvoground.cpp
index 97b7418b40..97b7418b40 100644..100755
--- a/indra/newview/llvoground.cpp
+++ b/indra/newview/llvoground.cpp
diff --git a/indra/newview/llvoground.h b/indra/newview/llvoground.h
index 290579b4da..290579b4da 100644..100755
--- a/indra/newview/llvoground.h
+++ b/indra/newview/llvoground.h
diff --git a/indra/newview/llvoicecallhandler.cpp b/indra/newview/llvoicecallhandler.cpp
index 2050dab689..2050dab689 100644..100755
--- a/indra/newview/llvoicecallhandler.cpp
+++ b/indra/newview/llvoicecallhandler.cpp
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index ceff75a0cc..ac2a34ba1e 100644..100755
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -56,7 +56,8 @@ class LLVoiceCallCapResponder : public LLHTTPClient::Responder
public:
LLVoiceCallCapResponder(const LLUUID& session_id) : mSessionID(session_id) {};
- virtual void error(U32 status, const std::string& reason); // called with bad status codes
+ // called with bad status codes
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
virtual void result(const LLSD& content);
private:
@@ -64,11 +65,10 @@ private:
};
-void LLVoiceCallCapResponder::error(U32 status, const std::string& reason)
+void LLVoiceCallCapResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("Voice") << "LLVoiceCallCapResponder::error("
- << status << ": " << reason << ")"
- << LL_ENDL;
+ LL_WARNS("Voice") << "LLVoiceCallCapResponder error [status:"
+ << status << "]: " << content << LL_ENDL;
LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(mSessionID);
if ( channelp )
{
diff --git a/indra/newview/llvoicechannel.h b/indra/newview/llvoicechannel.h
index fed44974fd..fed44974fd 100644..100755
--- a/indra/newview/llvoicechannel.h
+++ b/indra/newview/llvoicechannel.h
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index b46c55321c..b46c55321c 100644..100755
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 714dd6a9f2..714dd6a9f2 100644..100755
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
diff --git a/indra/newview/llvoicevisualizer.cpp b/indra/newview/llvoicevisualizer.cpp
index b497f80560..9281334d81 100644..100755
--- a/indra/newview/llvoicevisualizer.cpp
+++ b/indra/newview/llvoicevisualizer.cpp
@@ -125,7 +125,7 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type )
for (int i=0; i<NUM_VOICE_SYMBOL_WAVES; i++)
{
mSoundSymbol.mWaveFadeOutStartTime [i] = mCurrentTime;
- mSoundSymbol.mTexture [i] = LLViewerTextureManager::getFetchedTextureFromFile(sound_level_img[i], FALSE, LLViewerTexture::BOOST_UI);
+ mSoundSymbol.mTexture [i] = LLViewerTextureManager::getFetchedTextureFromFile(sound_level_img[i], FTT_LOCAL_FILE, FALSE, LLGLTexture::BOOST_UI);
mSoundSymbol.mWaveActive [i] = false;
mSoundSymbol.mWaveOpacity [i] = 1.0f;
mSoundSymbol.mWaveExpansion [i] = 1.0f;
diff --git a/indra/newview/llvoicevisualizer.h b/indra/newview/llvoicevisualizer.h
index 36c78252d1..36c78252d1 100644..100755
--- a/indra/newview/llvoicevisualizer.h
+++ b/indra/newview/llvoicevisualizer.h
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index f3342b7ff1..9b5d981aa5 100644..100755
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -130,17 +130,18 @@ public:
mRetries = retries;
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
+ LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, "
+ << ( (mRetries > 0) ? "retrying" : "too many retries (giving up)" )
+ << status << "]: " << content << LL_ENDL;
+
if ( mRetries > 0 )
{
- LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL;
- LLVivoxVoiceClient::getInstance()->requestVoiceAccountProvision(
- mRetries - 1);
+ LLVivoxVoiceClient::getInstance()->requestVoiceAccountProvision(mRetries - 1);
}
else
{
- LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL;
LLVivoxVoiceClient::getInstance()->giveUp();
}
}
@@ -199,18 +200,18 @@ class LLVivoxVoiceClientCapResponder : public LLHTTPClient::Responder
public:
LLVivoxVoiceClientCapResponder(LLVivoxVoiceClient::state requesting_state) : mRequestingState(requesting_state) {};
- virtual void error(U32 status, const std::string& reason); // called with bad status codes
+ // called with bad status codes
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
virtual void result(const LLSD& content);
private:
LLVivoxVoiceClient::state mRequestingState; // state
};
-void LLVivoxVoiceClientCapResponder::error(U32 status, const std::string& reason)
+void LLVivoxVoiceClientCapResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("Voice") << "LLVivoxVoiceClientCapResponder::error("
- << status << ": " << reason << ")"
- << LL_ENDL;
+ LL_WARNS("Voice") << "LLVivoxVoiceClientCapResponder error [status:"
+ << status << "]: " << content << LL_ENDL;
LLVivoxVoiceClient::getInstance()->sessionTerminate();
}
@@ -1258,7 +1259,7 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateCreatingSessionGroup
case stateCreatingSessionGroup:
- if(mSessionTerminateRequested || !mVoiceEnabled && mIsInitialized)
+ if(mSessionTerminateRequested || (!mVoiceEnabled && mIsInitialized))
{
// *TODO: Question: is this the right way out of this state
setState(stateSessionTerminated);
@@ -1274,7 +1275,7 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateRetrievingParcelVoiceInfo
case stateRetrievingParcelVoiceInfo:
// wait until parcel voice info is received.
- if(mSessionTerminateRequested || !mVoiceEnabled && mIsInitialized)
+ if(mSessionTerminateRequested || (!mVoiceEnabled && mIsInitialized))
{
// if a terminate request has been received,
// bail and go to the stateSessionTerminated
@@ -1294,7 +1295,7 @@ void LLVivoxVoiceClient::stateMachine()
// Otherwise, if you log in but don't join a proximal channel (such as when your login location has voice disabled), your friends list won't sync.
sendFriendsListUpdates();
- if(mSessionTerminateRequested || !mVoiceEnabled && mIsInitialized)
+ if(mSessionTerminateRequested || (!mVoiceEnabled && mIsInitialized))
{
// TODO: Question: Is this the right way out of this state?
setState(stateSessionTerminated);
@@ -1442,7 +1443,7 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateRunning
case stateRunning: // steady state
// Disabling voice or disconnect requested.
- if(!mVoiceEnabled && mIsInitialized || mSessionTerminateRequested)
+ if((!mVoiceEnabled && mIsInitialized) || mSessionTerminateRequested)
{
leaveAudioSession();
}
@@ -2249,7 +2250,8 @@ void LLVivoxVoiceClient::giveUp()
static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel)
{
- F32 nat[3], nup[3], nl[3], nvel[3]; // the new at, up, left vectors and the new position and velocity
+ F32 nat[3], nup[3], nl[3]; // the new at, up, left vectors and the new position and velocity
+// F32 nvel[3];
F64 npos[3];
// The original XML command was sent like this:
@@ -2299,9 +2301,9 @@ static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVe
npos[1] = pos.mdV[VZ];
npos[2] = pos.mdV[VY];
- nvel[0] = vel.mV[VX];
- nvel[1] = vel.mV[VZ];
- nvel[2] = vel.mV[VY];
+// nvel[0] = vel.mV[VX];
+// nvel[1] = vel.mV[VZ];
+// nvel[2] = vel.mV[VY];
for(int i=0;i<3;++i) {
at.mV[i] = nat[i];
@@ -2671,33 +2673,19 @@ void LLVivoxVoiceClient::checkFriend(const LLUUID& id)
{
buddyListEntry *buddy = findBuddy(id);
- // Make sure we don't add a name before it's been looked up.
+ // Make sure we don't add a name before it's been looked up in the avatar name cache
LLAvatarName av_name;
- if(LLAvatarNameCache::get(id, &av_name))
+ if (LLAvatarNameCache::get(id, &av_name))
{
- // *NOTE: For now, we feed legacy names to Vivox because I don't know
- // if their service can support a mix of new and old clients with
- // different sorts of names.
+ // *NOTE: We feed legacy names to Vivox because we don't know if their service
+ // can support a mix of new and old clients with different sorts of names.
std::string name = av_name.getAccountName();
-
- const LLRelationship* relationInfo = LLAvatarTracker::instance().getBuddyInfo(id);
- bool canSeeMeOnline = false;
- if(relationInfo && relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS))
- canSeeMeOnline = true;
-
- // When we get here, mNeedsSend is true and mInSLFriends is false. Change them as necessary.
- if(buddy)
+ if (buddy)
{
- // This buddy is already in both lists.
-
- if(name != buddy->mDisplayName)
- {
- // The buddy is in the list with the wrong name. Update it with the correct name.
- LL_WARNS("Voice") << "Buddy " << id << " has wrong name (\"" << buddy->mDisplayName << "\" should be \"" << name << "\"), updating."<< LL_ENDL;
- buddy->mDisplayName = name;
- buddy->mNeedsNameUpdate = true; // This will cause the buddy to be resent.
- }
+ // This buddy is already in both lists (vivox buddies and avatar cache).
+ // Trust the avatar cache more for the display name (vivox display name are notoriously wrong)
+ buddy->mDisplayName = name;
}
else
{
@@ -2706,20 +2694,19 @@ void LLVivoxVoiceClient::checkFriend(const LLUUID& id)
buddy->mUUID = id;
}
- // In all the above cases, the buddy is in the SL friends list (which is how we got here).
- buddy->mInSLFriends = true;
- buddy->mCanSeeMeOnline = canSeeMeOnline;
+ const LLRelationship* relationInfo = LLAvatarTracker::instance().getBuddyInfo(id);
+ buddy->mCanSeeMeOnline = (relationInfo && relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS));
+ // In all the above cases, the buddy is in the SL friends list and tha name has been resolved (which is how we got here).
buddy->mNameResolved = true;
-
+ buddy->mInSLFriends = true;
}
else
{
- // This name hasn't been looked up yet. Don't do anything with this buddy list entry until it has.
- if(buddy)
+ // This name hasn't been looked up yet in the avatar cache. Don't do anything with this buddy list entry until it has.
+ if (buddy)
{
buddy->mNameResolved = false;
}
-
// Initiate a lookup.
// The "lookup completed" callback will ensure that the friends list is rechecked after it completes.
lookupName(id);
@@ -2827,13 +2814,12 @@ void LLVivoxVoiceClient::sendFriendsListUpdates()
{
std::ostringstream stream;
- if(buddy->mInSLFriends && (!buddy->mInVivoxBuddies || buddy->mNeedsNameUpdate))
+ if(buddy->mInSLFriends && !buddy->mInVivoxBuddies)
{
if(mNumberOfAliases > 0)
{
// Add (or update) this entry in the vivox buddy list
buddy->mInVivoxBuddies = true;
- buddy->mNeedsNameUpdate = false;
LL_DEBUGS("Voice") << "add/update " << buddy->mURI << " (" << buddy->mDisplayName << ")" << LL_ENDL;
stream
<< "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.BuddySet.1\">"
@@ -3954,7 +3940,6 @@ void LLVivoxVoiceClient::messageEvent(
bool is_do_not_disturb = gAgent.isDoNotDisturb();
bool is_muted = LLMuteList::getInstance()->isMuted(session->mCallerID, session->mName, LLMute::flagTextChat);
bool is_linden = LLMuteList::getInstance()->isLinden(session->mName);
- bool quiet_chat = false;
LLChat chat;
chat.mMuted = is_muted && !is_linden;
@@ -3967,7 +3952,6 @@ void LLVivoxVoiceClient::messageEvent(
if(is_do_not_disturb && !is_linden)
{
- quiet_chat = true;
// TODO: Question: Return do not disturb mode response here? Or maybe when session is started instead?
}
@@ -5859,7 +5843,6 @@ LLVivoxVoiceClient::buddyListEntry::buddyListEntry(const std::string &uri) :
mNameResolved = false;
mInVivoxBuddies = false;
mInSLFriends = false;
- mNeedsNameUpdate = false;
}
void LLVivoxVoiceClient::processBuddyListEntry(const std::string &uri, const std::string &displayName)
@@ -5884,25 +5867,21 @@ LLVivoxVoiceClient::buddyListEntry *LLVivoxVoiceClient::addBuddy(const std::stri
buddyListEntry *result = NULL;
buddyListMap::iterator iter = mBuddyListMap.find(uri);
- if(iter != mBuddyListMap.end())
+ if (iter != mBuddyListMap.end())
{
// Found a matching buddy already in the map.
LL_DEBUGS("Voice") << "adding existing buddy " << uri << LL_ENDL;
result = iter->second;
}
- if(!result)
+ if (!result)
{
// participant isn't already in one list or the other.
LL_DEBUGS("Voice") << "adding new buddy " << uri << LL_ENDL;
result = new buddyListEntry(uri);
result->mDisplayName = displayName;
- if(IDFromName(uri, result->mUUID))
- {
- // Extracted UUID from name successfully.
- }
- else
+ if (!IDFromName(uri, result->mUUID))
{
LL_DEBUGS("Voice") << "Couldn't find ID for buddy " << uri << " (\"" << displayName << "\")" << LL_ENDL;
}
@@ -7272,7 +7251,7 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr)
void LLVivoxProtocolParser::EndTag(const char *tag)
{
const std::string& string = textBuffer;
-
+
responseDepth--;
if (ignoringTags)
@@ -7371,6 +7350,8 @@ void LLVivoxProtocolParser::EndTag(const char *tag)
}
else if (!stricmp("Buddy", tag))
{
+ // NOTE : Vivox does *not* give reliable display name for Buddy tags
+ // We don't take those very seriously as a result...
LLVivoxVoiceClient::getInstance()->processBuddyListEntry(uriString, displayNameString);
}
else if (!stricmp("BlockRule", tag))
diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h
index 574027de42..a6f40eb3e9 100644..100755
--- a/indra/newview/llvoicevivox.h
+++ b/indra/newview/llvoicevivox.h
@@ -584,7 +584,6 @@ protected:
bool mNameResolved;
bool mInSLFriends;
bool mInVivoxBuddies;
- bool mNeedsNameUpdate;
};
typedef std::map<std::string, buddyListEntry*> buddyListMap;
diff --git a/indra/newview/llvoinventorylistener.cpp b/indra/newview/llvoinventorylistener.cpp
index 1ea90c6a98..1ea90c6a98 100644..100755
--- a/indra/newview/llvoinventorylistener.cpp
+++ b/indra/newview/llvoinventorylistener.cpp
diff --git a/indra/newview/llvoinventorylistener.h b/indra/newview/llvoinventorylistener.h
index bf14d19b01..bf14d19b01 100644..100755
--- a/indra/newview/llvoinventorylistener.h
+++ b/indra/newview/llvoinventorylistener.h
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 0b34bbb90f..0b34bbb90f 100644..100755
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
diff --git a/indra/newview/llvopartgroup.h b/indra/newview/llvopartgroup.h
index 42c1252d01..42c1252d01 100644..100755
--- a/indra/newview/llvopartgroup.h
+++ b/indra/newview/llvopartgroup.h
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index 31358df85f..36793017ed 100644..100755
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -298,7 +298,7 @@ void LLSkyTex::create(const F32 brightness)
void LLSkyTex::createGLImage(S32 which)
{
- mTexture[which]->createGLTexture(0, mImageRaw[which], 0, TRUE, LLViewerTexture::LOCAL);
+ mTexture[which]->createGLTexture(0, mImageRaw[which], 0, TRUE, LLGLTexture::LOCAL);
mTexture[which]->setAddressMode(LLTexUnit::TAM_CLAMP);
}
@@ -384,9 +384,9 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
mSun.setIntensity(SUN_INTENSITY);
mMoon.setIntensity(0.1f * SUN_INTENSITY);
- mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mSunTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
- mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mMoonTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
mBloomTexturep = LLViewerTextureManager::getFetchedTexture(IMG_BLOOM1);
mBloomTexturep->setNoDelete() ;
@@ -478,9 +478,9 @@ void LLVOSky::restoreGL()
{
mSkyTex[i].restoreGL();
}
- mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mSunTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
- mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLViewerTexture::BOOST_UI);
+ mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mMoonTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
mBloomTexturep = LLViewerTextureManager::getFetchedTexture(IMG_BLOOM1);
mBloomTexturep->setNoDelete() ;
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index 2a150eccb9..2a150eccb9 100644..100755
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp
index cb905d02da..de15f0ef43 100644..100755
--- a/indra/newview/llvosurfacepatch.cpp
+++ b/indra/newview/llvosurfacepatch.cpp
@@ -467,7 +467,7 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
S32 vertex_count = 0;
S32 i, x, y;
- S32 num_vertices, num_indices;
+ S32 num_vertices;
U32 render_stride = mLastStride;
S32 patch_size = mPatchp->getSurface()->getGridsPerPatchEdge();
@@ -485,7 +485,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
if (north_stride == render_stride)
{
num_vertices = 2 * length + 1;
- num_indices = length * 6 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(8, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -536,7 +535,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
{
// North stride is longer (has less vertices)
num_vertices = length + length/2 + 1;
- num_indices = half_length*9 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(7, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -595,7 +593,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
length = patch_size / north_stride;
half_length = length / 2;
num_vertices = length + half_length + 1;
- num_indices = 9*half_length - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(15, 7) + mPatchp->getPointAgent(16, 8))*0.5f;
@@ -666,7 +663,7 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
{
S32 i, x, y;
- S32 num_vertices, num_indices;
+ S32 num_vertices;
U32 render_stride = mLastStride;
S32 patch_size = mPatchp->getSurface()->getGridsPerPatchEdge();
@@ -679,7 +676,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
if (east_stride == render_stride)
{
num_vertices = 2 * length + 1;
- num_indices = length * 6 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(8, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -728,7 +724,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
{
// East stride is longer (has less vertices)
num_vertices = length + half_length + 1;
- num_indices = half_length*9 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(7, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -783,7 +778,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
length = patch_size / east_stride;
half_length = length / 2;
num_vertices = length + length/2 + 1;
- num_indices = 9*(length/2) - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(15, 7) + mPatchp->getPointAgent(16, 8))*0.5f;
diff --git a/indra/newview/llvosurfacepatch.h b/indra/newview/llvosurfacepatch.h
index a15878368e..a15878368e 100644..100755
--- a/indra/newview/llvosurfacepatch.h
+++ b/indra/newview/llvosurfacepatch.h
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index 6687ce432f..145a0380d6 100644..100755
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -316,7 +316,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
// Load Species-Specific data
//
static const S32 MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 32 ; //frames.
- mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
mTreeImagep->setMaxVirtualSizeResetInterval(MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL); //allow to wait for at most 16 frames to reset virtual size.
mBranchLength = sSpeciesTable[mSpecies]->mBranchLength;
diff --git a/indra/newview/llvotree.h b/indra/newview/llvotree.h
index 52debc85ab..52debc85ab 100644..100755
--- a/indra/newview/llvotree.h
+++ b/indra/newview/llvotree.h
diff --git a/indra/newview/llvotreenew.h b/indra/newview/llvotreenew.h
index 0bb07008ca..0bb07008ca 100644..100755
--- a/indra/newview/llvotreenew.h
+++ b/indra/newview/llvotreenew.h
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index d94cd01a0b..8730ef66bb 100644..100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -370,7 +370,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
// Unpack texture entry data
//
- S32 result = unpackTEMessage(mesgsys, _PREHASH_ObjectData, block_num);
+ S32 result = unpackTEMessage(mesgsys, _PREHASH_ObjectData, (S32) block_num);
if (result & teDirtyBits)
{
updateTEData();
@@ -747,7 +747,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
{
F32 area = (F32) camera->getScreenPixelArea();
vsize = area;
- imagep->setBoostLevel(LLViewerTexture::BOOST_HUD);
+ imagep->setBoostLevel(LLGLTexture::BOOST_HUD);
face->setPixelArea(area); // treat as full screen
face->setVirtualSize(vsize);
}
@@ -803,7 +803,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
if (mSculptTexture.notNull())
{
mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(),
- (S32)LLViewerTexture::BOOST_SCULPTED));
+ (S32)LLGLTexture::BOOST_SCULPTED));
mSculptTexture->setForSculpt() ;
if(!mSculptTexture->isCachedRawImageReady())
@@ -1006,7 +1006,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &params_in, const S32 detail, bo
if (is404)
{
- setIcon(LLViewerTextureManager::getFetchedTextureFromFile("icons/Inv_Mesh.png", TRUE, LLViewerTexture::BOOST_UI));
+ setIcon(LLViewerTextureManager::getFetchedTextureFromFile("icons/Inv_Mesh.png", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI));
//render prim proxy when mesh loading attempts give up
volume_params.setSculptID(LLUUID::null, LL_SCULPT_TYPE_NONE);
@@ -1090,7 +1090,7 @@ void LLVOVolume::updateSculptTexture()
LLUUID id = sculpt_params->getSculptTexture();
if (id.notNull())
{
- mSculptTexture = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ mSculptTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
}
}
else
@@ -2743,7 +2743,7 @@ void LLVOVolume::updateSpotLightPriority()
if (mLightTexture.notNull())
{
mLightTexture->addTextureStats(mSpotLightPriority);
- mLightTexture->setBoostLevel(LLViewerTexture::BOOST_CLOUDS);
+ mLightTexture->setBoostLevel(LLGLTexture::BOOST_CLOUDS);
}
}
diff --git a/indra/newview/llvovolume.h b/indra/newview/llvovolume.h
index 5482c80f2b..5482c80f2b 100644..100755
--- a/indra/newview/llvovolume.h
+++ b/indra/newview/llvovolume.h
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index e8a1c3d1d6..e8a1c3d1d6 100644..100755
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
diff --git a/indra/newview/llvowater.h b/indra/newview/llvowater.h
index cf9323ef2e..cf9323ef2e 100644..100755
--- a/indra/newview/llvowater.h
+++ b/indra/newview/llvowater.h
diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp
index 7f17fd3e56..4e26587184 100644..100755
--- a/indra/newview/llvowlsky.cpp
+++ b/indra/newview/llvowlsky.cpp
@@ -724,8 +724,8 @@ void LLVOWLSky::updateStarColors()
const F32 var = 0.15f;
const F32 min = 0.5f; //0.75f;
- const F32 sunclose_max = 0.6f;
- const F32 sunclose_range = 1 - sunclose_max;
+ //const F32 sunclose_max = 0.6f;
+ //const F32 sunclose_range = 1 - sunclose_max;
//F32 below_horizon = - llmin(0.0f, gSky.mVOSkyp->getToSunLast().mV[2]);
//F32 brightness_factor = llmin(1.0f, below_horizon * 20);
@@ -739,14 +739,14 @@ void LLVOWLSky::updateStarColors()
U32 x;
for (x = 0; x < getStarsNumVerts(); ++x)
{
- F32 sundir_factor = 1;
+ //F32 sundir_factor = 1;
LLVector3 tostar = *v_p;
tostar.normVec();
- const F32 how_close_to_sun = tostar * gSky.mVOSkyp->getToSunLast();
- if (how_close_to_sun > sunclose_max)
- {
- sundir_factor = (1 - how_close_to_sun) / sunclose_range;
- }
+ //const F32 how_close_to_sun = tostar * gSky.mVOSkyp->getToSunLast();
+ //if (how_close_to_sun > sunclose_max)
+ //{
+ // sundir_factor = (1 - how_close_to_sun) / sunclose_range;
+ //}
intensity = *(v_i);
F32 alpha = v_c->mV[VALPHA] + (ll_frand() - 0.5f) * var * intensity;
if (alpha < min * intensity)
diff --git a/indra/newview/llvowlsky.h b/indra/newview/llvowlsky.h
index 729dced15e..729dced15e 100644..100755
--- a/indra/newview/llvowlsky.h
+++ b/indra/newview/llvowlsky.h
diff --git a/indra/newview/llwatchdog.cpp b/indra/newview/llwatchdog.cpp
index 4f582fc2db..4f582fc2db 100644..100755
--- a/indra/newview/llwatchdog.cpp
+++ b/indra/newview/llwatchdog.cpp
diff --git a/indra/newview/llwatchdog.h b/indra/newview/llwatchdog.h
index fee3ec6f20..fee3ec6f20 100644..100755
--- a/indra/newview/llwatchdog.h
+++ b/indra/newview/llwatchdog.h
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index 4f52ff9778..4f52ff9778 100644..100755
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
diff --git a/indra/newview/llwaterparammanager.h b/indra/newview/llwaterparammanager.h
index dc7d41be2a..dc7d41be2a 100644..100755
--- a/indra/newview/llwaterparammanager.h
+++ b/indra/newview/llwaterparammanager.h
diff --git a/indra/newview/llwaterparamset.cpp b/indra/newview/llwaterparamset.cpp
index 39d366b023..9cc91d2246 100644..100755
--- a/indra/newview/llwaterparamset.cpp
+++ b/indra/newview/llwaterparamset.cpp
@@ -185,8 +185,6 @@ LLVector3 LLWaterParamSet::getVector3(const std::string& paramName, bool& error)
LLVector2 LLWaterParamSet::getVector2(const std::string& paramName, bool& error)
{
// test to see if right type
- int ttest;
- ttest = mParamValues.size();
LLSD cur_val = mParamValues.get(paramName);
if (!cur_val.isArray() || cur_val.size() != 2)
{
diff --git a/indra/newview/llwaterparamset.h b/indra/newview/llwaterparamset.h
index b28585af59..b28585af59 100644..100755
--- a/indra/newview/llwaterparamset.h
+++ b/indra/newview/llwaterparamset.h
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
deleted file mode 100644
index 402504933c..0000000000
--- a/indra/newview/llwearable.cpp
+++ /dev/null
@@ -1,1285 +0,0 @@
-/**
- * @file llwearable.cpp
- * @brief LLWearable class implementation
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "llagent.h"
-#include "llagentcamera.h"
-#include "llagentwearables.h"
-#include "lldictionary.h"
-#include "llfloatersidepanelcontainer.h"
-#include "lllocaltextureobject.h"
-#include "llnotificationsutil.h"
-#include "llviewertexturelist.h"
-#include "llinventorymodel.h"
-#include "llinventoryobserver.h"
-#include "llsidepanelappearance.h"
-#include "lltexlayer.h"
-#include "lltexglobalcolor.h"
-#include "lltrans.h"
-#include "llviewerregion.h"
-#include "llvisualparam.h"
-#include "llvoavatar.h"
-#include "llvoavatarself.h"
-#include "llvoavatardefines.h"
-#include "llwearable.h"
-#include "llviewercontrol.h"
-
-using namespace LLVOAvatarDefines;
-
-// static
-S32 LLWearable::sCurrentDefinitionVersion = 1;
-
-// support class - remove for 2.1 (hackity hack hack)
-class LLOverrideBakedTextureUpdate
-{
-public:
- LLOverrideBakedTextureUpdate(bool temp_state)
- {
- U32 num_bakes = (U32) LLVOAvatarDefines::BAKED_NUM_INDICES;
- for( U32 index = 0; index < num_bakes; ++index )
- {
- composite_enabled[index] = gAgentAvatarp->isCompositeUpdateEnabled(index);
- }
- gAgentAvatarp->setCompositeUpdatesEnabled(temp_state);
- }
-
- ~LLOverrideBakedTextureUpdate()
- {
- U32 num_bakes = (U32)LLVOAvatarDefines::BAKED_NUM_INDICES;
- for( U32 index = 0; index < num_bakes; ++index )
- {
- gAgentAvatarp->setCompositeUpdatesEnabled(index, composite_enabled[index]);
- }
- }
-private:
- bool composite_enabled[LLVOAvatarDefines::BAKED_NUM_INDICES];
-};
-
-// Private local functions
-static std::string terse_F32_to_string(F32 f);
-static std::string asset_id_to_filename(const LLUUID &asset_id);
-
-LLWearable::LLWearable(const LLTransactionID& transaction_id) :
- mDefinitionVersion(LLWearable::sCurrentDefinitionVersion),
- mType(LLWearableType::WT_INVALID)
-{
- mTransactionID = transaction_id;
- mAssetID = mTransactionID.makeAssetID(gAgent.getSecureSessionID());
-}
-
-LLWearable::LLWearable(const LLAssetID& asset_id) :
- mDefinitionVersion( LLWearable::sCurrentDefinitionVersion ),
- mType(LLWearableType::WT_INVALID)
-{
- mAssetID = asset_id;
- mTransactionID.setNull();
-}
-
-LLWearable::~LLWearable()
-{
-}
-
-const std::string& LLWearable::getTypeLabel() const
-{
- return LLWearableType::getTypeLabel(mType);
-}
-
-const std::string& LLWearable::getTypeName() const
-{
- return LLWearableType::getTypeName(mType);
-}
-
-LLAssetType::EType LLWearable::getAssetType() const
-{
- return LLWearableType::getAssetType(mType);
-}
-
-BOOL LLWearable::exportFile(LLFILE* file) const
-{
- // header and version
- if( fprintf( file, "LLWearable version %d\n", mDefinitionVersion ) < 0 )
- {
- return FALSE;
- }
-
- // name
- if( fprintf( file, "%s\n", mName.c_str() ) < 0 )
- {
- return FALSE;
- }
-
- // description
- if( fprintf( file, "%s\n", mDescription.c_str() ) < 0 )
- {
- return FALSE;
- }
-
- // permissions
- if( !mPermissions.exportFile( file ) )
- {
- return FALSE;
- }
-
- // sale info
- if( !mSaleInfo.exportFile( file ) )
- {
- return FALSE;
- }
-
- // wearable type
- S32 type = (S32)mType;
- if( fprintf( file, "type %d\n", type ) < 0 )
- {
- return FALSE;
- }
-
- // parameters
- S32 num_parameters = mVisualParamIndexMap.size();
- if( fprintf( file, "parameters %d\n", num_parameters ) < 0 )
- {
- return FALSE;
- }
-
- for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin();
- iter != mVisualParamIndexMap.end();
- ++iter)
- {
- S32 param_id = iter->first;
- const LLVisualParam* param = iter->second;
- F32 param_weight = param->getWeight();
- if( fprintf( file, "%d %s\n", param_id, terse_F32_to_string( param_weight ).c_str() ) < 0 )
- {
- return FALSE;
- }
- }
-
- // texture entries
- S32 num_textures = mTEMap.size();
- if( fprintf( file, "textures %d\n", num_textures ) < 0 )
- {
- return FALSE;
- }
-
- for (te_map_t::const_iterator iter = mTEMap.begin(); iter != mTEMap.end(); ++iter)
- {
- S32 te = iter->first;
- const LLUUID& image_id = iter->second->getID();
- if( fprintf( file, "%d %s\n", te, image_id.asString().c_str()) < 0 )
- {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-
-void LLWearable::createVisualParams()
-{
- for (LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
- param;
- param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam())
- {
- if (param->getWearableType() == mType)
- {
- addVisualParam(param->cloneParam(this));
- }
- }
-
- // resync driver parameters to point to the newly cloned driven parameters
- for (visual_param_index_map_t::iterator param_iter = mVisualParamIndexMap.begin();
- param_iter != mVisualParamIndexMap.end();
- ++param_iter)
- {
- LLVisualParam* param = param_iter->second;
- LLVisualParam*(LLWearable::*wearable_function)(S32)const = &LLWearable::getVisualParam;
- // need this line to disambiguate between versions of LLCharacter::getVisualParam()
- LLVisualParam*(LLVOAvatarSelf::*avatar_function)(S32)const = &LLVOAvatarSelf::getVisualParam;
- param->resetDrivenParams();
- if(!param->linkDrivenParams(boost::bind(wearable_function,(LLWearable*)this, _1), false))
- {
- if( !param->linkDrivenParams(boost::bind(avatar_function,gAgentAvatarp.get(),_1 ), true))
- {
- llwarns << "could not link driven params for wearable " << getName() << " id: " << param->getID() << llendl;
- continue;
- }
- }
- }
-}
-
-BOOL LLWearable::importFile( LLFILE* file )
-{
- // *NOTE: changing the type or size of this buffer will require
- // changes in the fscanf() code below. You would be better off
- // rewriting this to use streams and not require an open FILE.
- char text_buffer[2048]; /* Flawfinder: ignore */
- S32 fields_read = 0;
-
- // suppress texlayerset updates while wearables are being imported. Layersets will be updated
- // when the wearables are "worn", not loaded. Note state will be restored when this object is destroyed.
- LLOverrideBakedTextureUpdate stop_bakes(false);
-
- // read header and version
- fields_read = fscanf( file, "LLWearable version %d\n", &mDefinitionVersion );
- if( fields_read != 1 )
- {
- // Shouldn't really log the asset id for security reasons, but
- // we need it in this case.
- llwarns << "Bad Wearable asset header: " << mAssetID << llendl;
- //gVFS->dumpMap();
- return FALSE;
- }
-
-
- // Temoprary hack to allow wearables with definition version 24 to still load.
- // This should only affect lindens and NDA'd testers who have saved wearables in 2.0
- // the extra check for version == 24 can be removed before release, once internal testers
- // have loaded these wearables again. See hack pt 2 at bottom of function to ensure that
- // these wearables get re-saved with version definition 22.
- if( mDefinitionVersion > LLWearable::sCurrentDefinitionVersion && mDefinitionVersion != 24 )
- {
- llwarns << "Wearable asset has newer version (" << mDefinitionVersion << ") than XML (" << LLWearable::sCurrentDefinitionVersion << ")" << llendl;
- return FALSE;
- }
-
- // name
- int next_char = fgetc( file ); /* Flawfinder: ignore */
- if( '\n' == next_char )
- {
- // no name
- mName = "";
- }
- else
- {
- ungetc( next_char, file );
- fields_read = fscanf( /* Flawfinder: ignore */
- file,
- "%2047[^\n]",
- text_buffer);
- if( (1 != fields_read) || (fgetc( file ) != '\n') ) /* Flawfinder: ignore */
- {
- llwarns << "Bad Wearable asset: early end of file" << llendl;
- return FALSE;
- }
- mName = text_buffer;
- LLStringUtil::truncate(mName, DB_INV_ITEM_NAME_STR_LEN );
- }
-
- // description
- next_char = fgetc( file ); /* Flawfinder: ignore */
- if( '\n' == next_char )
- {
- // no description
- mDescription = "";
- }
- else
- {
- ungetc( next_char, file );
- fields_read = fscanf( /* Flawfinder: ignore */
- file,
- "%2047[^\n]",
- text_buffer );
- if( (1 != fields_read) || (fgetc( file ) != '\n') ) /* Flawfinder: ignore */
- {
- llwarns << "Bad Wearable asset: early end of file" << llendl;
- return FALSE;
- }
- mDescription = text_buffer;
- LLStringUtil::truncate(mDescription, DB_INV_ITEM_DESC_STR_LEN );
- }
-
- // permissions
- S32 perm_version;
- fields_read = fscanf( file, " permissions %d\n", &perm_version );
- if( (fields_read != 1) || (perm_version != 0) )
- {
- llwarns << "Bad Wearable asset: missing permissions" << llendl;
- return FALSE;
- }
- if( !mPermissions.importFile( file ) )
- {
- return FALSE;
- }
-
- // sale info
- S32 sale_info_version;
- fields_read = fscanf( file, " sale_info %d\n", &sale_info_version );
- if( (fields_read != 1) || (sale_info_version != 0) )
- {
- llwarns << "Bad Wearable asset: missing sale_info" << llendl;
- return FALSE;
- }
- // Sale info used to contain next owner perm. It is now in the
- // permissions. Thus, we read that out, and fix legacy
- // objects. It's possible this op would fail, but it should pick
- // up the vast majority of the tasks.
- BOOL has_perm_mask = FALSE;
- U32 perm_mask = 0;
- if( !mSaleInfo.importFile(file, has_perm_mask, perm_mask) )
- {
- return FALSE;
- }
- if(has_perm_mask)
- {
- // fair use fix.
- if(!(perm_mask & PERM_COPY))
- {
- perm_mask |= PERM_TRANSFER;
- }
- mPermissions.setMaskNext(perm_mask);
- }
-
- // wearable type
- S32 type = -1;
- fields_read = fscanf( file, "type %d\n", &type );
- if( fields_read != 1 )
- {
- llwarns << "Bad Wearable asset: bad type" << llendl;
- return FALSE;
- }
- if( 0 <= type && type < LLWearableType::WT_COUNT )
- {
- setType((LLWearableType::EType)type);
- }
- else
- {
- mType = LLWearableType::WT_COUNT;
- llwarns << "Bad Wearable asset: bad type #" << type << llendl;
- return FALSE;
- }
-
- // parameters header
- S32 num_parameters = 0;
- fields_read = fscanf( file, "parameters %d\n", &num_parameters );
- if( fields_read != 1 )
- {
- llwarns << "Bad Wearable asset: missing parameters block" << llendl;
- return FALSE;
- }
-
- if( num_parameters != mVisualParamIndexMap.size() )
- {
- llwarns << "Wearable parameter mismatch. Reading in " << num_parameters << " from file, but created " << mVisualParamIndexMap.size() << " from avatar parameters. type: " << mType << llendl;
- }
-
- // parameters
- S32 i;
- for( i = 0; i < num_parameters; i++ )
- {
- S32 param_id = 0;
- F32 param_weight = 0.f;
- fields_read = fscanf( file, "%d %f\n", &param_id, &param_weight );
- if( fields_read != 2 )
- {
- llwarns << "Bad Wearable asset: bad parameter, #" << i << llendl;
- return FALSE;
- }
- mSavedVisualParamMap[param_id] = param_weight;
- }
-
- // textures header
- S32 num_textures = 0;
- fields_read = fscanf( file, "textures %d\n", &num_textures);
- if( fields_read != 1 )
- {
- llwarns << "Bad Wearable asset: missing textures block" << llendl;
- return FALSE;
- }
-
- // textures
- for( i = 0; i < num_textures; i++ )
- {
- S32 te = 0;
- fields_read = fscanf( /* Flawfinder: ignore */
- file,
- "%d %2047s\n",
- &te, text_buffer);
- if( fields_read != 2 )
- {
- llwarns << "Bad Wearable asset: bad texture, #" << i << llendl;
- return FALSE;
- }
-
- if( !LLUUID::validate( text_buffer ) )
- {
- llwarns << "Bad Wearable asset: bad texture uuid: " << text_buffer << llendl;
- return FALSE;
- }
- LLUUID id = LLUUID(text_buffer);
- LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture( id );
- if( mTEMap.find(te) != mTEMap.end() )
- {
- delete mTEMap[te];
- }
- if( mSavedTEMap.find(te) != mSavedTEMap.end() )
- {
- delete mSavedTEMap[te];
- }
-
- if(gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
- {
- image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(id, (LLVOAvatarDefines::ETextureIndex)te), NULL);
- }
- LLUUID textureid(text_buffer);
- mTEMap[te] = new LLLocalTextureObject(image, textureid);
- mSavedTEMap[te] = new LLLocalTextureObject(image, textureid);
- createLayers(te);
- }
-
- // copy all saved param values to working params
- revertValues();
-
- return TRUE;
-}
-
-
-// Avatar parameter and texture definitions can change over time.
-// This function returns true if parameters or textures have been added or removed
-// since this wearable was created.
-BOOL LLWearable::isOldVersion() const
-{
- if (!isAgentAvatarValid()) return FALSE;
-
- if( LLWearable::sCurrentDefinitionVersion < mDefinitionVersion )
- {
- llwarns << "Wearable asset has newer version (" << mDefinitionVersion << ") than XML (" << LLWearable::sCurrentDefinitionVersion << ")" << llendl;
- llassert(0);
- }
-
- if( LLWearable::sCurrentDefinitionVersion != mDefinitionVersion )
- {
- return TRUE;
- }
-
- S32 param_count = 0;
- for( LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
- param;
- param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
- {
- if( (param->getWearableType() == mType) && (param->isTweakable() ) )
- {
- param_count++;
- if( !is_in_map(mVisualParamIndexMap, param->getID() ) )
- {
- return TRUE;
- }
- }
- }
- if( param_count != mVisualParamIndexMap.size() )
- {
- return TRUE;
- }
-
-
- S32 te_count = 0;
- for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- te_count++;
- if( !is_in_map(mTEMap, te ) )
- {
- return TRUE;
- }
- }
- }
- if( te_count != mTEMap.size() )
- {
- return TRUE;
- }
-
- return FALSE;
-}
-
-// Avatar parameter and texture definitions can change over time.
-// * If parameters or textures have been REMOVED since the wearable was created,
-// they're just ignored, so we consider the wearable clean even though isOldVersion()
-// will return true.
-// * If parameters or textures have been ADDED since the wearable was created,
-// they are taken to have default values, so we consider the wearable clean
-// only if those values are the same as the defaults.
-BOOL LLWearable::isDirty() const
-{
- if (!isAgentAvatarValid()) return FALSE;
-
- for( LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
- param;
- param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
- {
- if( (param->getWearableType() == mType)
- && (param->isTweakable() )
- && !param->getCrossWearable())
- {
- F32 current_weight = getVisualParamWeight(param->getID());
- current_weight = llclamp( current_weight, param->getMinWeight(), param->getMaxWeight() );
- F32 saved_weight = get_if_there(mSavedVisualParamMap, param->getID(), param->getDefaultWeight());
- saved_weight = llclamp( saved_weight, param->getMinWeight(), param->getMaxWeight() );
-
- U8 a = F32_to_U8( saved_weight, param->getMinWeight(), param->getMaxWeight() );
- U8 b = F32_to_U8( current_weight, param->getMinWeight(), param->getMaxWeight() );
- if( a != b )
- {
- return TRUE;
- }
- }
- }
-
- for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- te_map_t::const_iterator current_iter = mTEMap.find(te);
- if(current_iter != mTEMap.end())
- {
- const LLUUID& current_image_id = current_iter->second->getID();
- te_map_t::const_iterator saved_iter = mSavedTEMap.find(te);
- if(saved_iter != mSavedTEMap.end())
- {
- const LLUUID& saved_image_id = saved_iter->second->getID();
- if (saved_image_id != current_image_id)
- {
- // saved vs current images are different, wearable is dirty
- return TRUE;
- }
- }
- else
- {
- // image found in current image list but not saved image list
- return TRUE;
- }
- }
- }
- }
-
- return FALSE;
-}
-
-
-void LLWearable::setParamsToDefaults()
-{
- if (!isAgentAvatarValid()) return;
-
- for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
- {
- if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->isTweakable() ) )
- {
- setVisualParamWeight(param->getID(),param->getDefaultWeight(), FALSE);
- }
- }
-}
-
-void LLWearable::setTexturesToDefaults()
-{
- for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- LLUUID id = LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te);
- LLViewerFetchedTexture * image = LLViewerTextureManager::getFetchedTexture( id );
- if( mTEMap.find(te) == mTEMap.end() )
- {
- mTEMap[te] = new LLLocalTextureObject(image, id);
- createLayers(te);
- }
- else
- {
- // Local Texture Object already created, just set image and UUID
- LLLocalTextureObject *lto = mTEMap[te];
- lto->setID(id);
- lto->setImage(image);
- }
- }
- }
-}
-
-// Updates the user's avatar's appearance
-void LLWearable::writeToAvatar()
-{
- if (!isAgentAvatarValid()) return;
-
- ESex old_sex = gAgentAvatarp->getSex();
-
- // Pull params
- for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
- {
- // cross-wearable parameters are not authoritative, as they are driven by a different wearable. So don't copy the values to the
- // avatar object if cross wearable. Cross wearable params get their values from the avatar, they shouldn't write the other way.
- if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (!((LLViewerVisualParam*)param)->getCrossWearable()) )
- {
- S32 param_id = param->getID();
- F32 weight = getVisualParamWeight(param_id);
-
- gAgentAvatarp->setVisualParamWeight( param_id, weight, FALSE );
- }
- }
-
- // Pull texture entries
- for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- te_map_t::const_iterator iter = mTEMap.find(te);
- LLUUID image_id;
- if(iter != mTEMap.end())
- {
- image_id = iter->second->getID();
- }
- else
- {
- image_id = LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te);
- }
- LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( image_id, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE );
- // MULTI-WEARABLE: assume index 0 will be used when writing to avatar. TODO: eliminate the need for this.
- gAgentAvatarp->setLocalTextureTE(te, image, 0);
- }
- }
-
- ESex new_sex = gAgentAvatarp->getSex();
- if( old_sex != new_sex )
- {
- gAgentAvatarp->updateSexDependentLayerSets( FALSE );
- }
-
-// if( upload_bake )
-// {
-// gAgent.sendAgentSetAppearance();
-// }
-}
-
-
-// Updates the user's avatar's appearance, replacing this wearables' parameters and textures with default values.
-// static
-void LLWearable::removeFromAvatar( LLWearableType::EType type, BOOL upload_bake )
-{
- if (!isAgentAvatarValid()) return;
-
- // You can't just remove body parts.
- if( (type == LLWearableType::WT_SHAPE) ||
- (type == LLWearableType::WT_SKIN) ||
- (type == LLWearableType::WT_HAIR) ||
- (type == LLWearableType::WT_EYES) )
- {
- return;
- }
-
- // Pull params
- for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
- {
- if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->isTweakable() ) )
- {
- S32 param_id = param->getID();
- gAgentAvatarp->setVisualParamWeight( param_id, param->getDefaultWeight(), upload_bake );
- }
- }
-
- if(gAgentCamera.cameraCustomizeAvatar())
- {
- LLFloaterSidePanelContainer::showPanel("appearance", LLSD().with("type", "edit_outfit"));
- }
-
- gAgentAvatarp->updateVisualParams();
- gAgentAvatarp->wearableUpdated(type, FALSE);
-
-// if( upload_bake )
-// {
-// gAgent.sendAgentSetAppearance();
-// }
-}
-
-// Does not copy mAssetID.
-// Definition version is current: removes obsolete enties and creates default values for new ones.
-void LLWearable::copyDataFrom(const LLWearable* src)
-{
- if (!isAgentAvatarValid()) return;
-
- mDefinitionVersion = LLWearable::sCurrentDefinitionVersion;
-
- mName = src->mName;
- mDescription = src->mDescription;
- mPermissions = src->mPermissions;
- mSaleInfo = src->mSaleInfo;
-
- setType(src->mType);
-
- mSavedVisualParamMap.clear();
- // Deep copy of mVisualParamMap (copies only those params that are current, filling in defaults where needed)
- for (LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
- param;
- param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
- {
- if( (param->getWearableType() == mType) )
- {
- S32 id = param->getID();
- F32 weight = src->getVisualParamWeight(id);
- mSavedVisualParamMap[id] = weight;
- }
- }
-
- destroyTextures();
- // Deep copy of mTEMap (copies only those tes that are current, filling in defaults where needed)
- for (S32 te = 0; te < TEX_NUM_INDICES; te++)
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- te_map_t::const_iterator iter = src->mTEMap.find(te);
- LLUUID image_id;
- LLViewerFetchedTexture *image = NULL;
- if(iter != src->mTEMap.end())
- {
- image = src->getLocalTextureObject(te)->getImage();
- image_id = src->getLocalTextureObject(te)->getID();
- mTEMap[te] = new LLLocalTextureObject(image, image_id);
- mSavedTEMap[te] = new LLLocalTextureObject(image, image_id);
- mTEMap[te]->setBakedReady(src->getLocalTextureObject(te)->getBakedReady());
- mTEMap[te]->setDiscard(src->getLocalTextureObject(te)->getDiscard());
- }
- else
- {
- image_id = LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te);
- image = LLViewerTextureManager::getFetchedTexture( image_id );
- mTEMap[te] = new LLLocalTextureObject(image, image_id);
- mSavedTEMap[te] = new LLLocalTextureObject(image, image_id);
- }
- createLayers(te);
- }
- }
-
- // Probably reduntant, but ensure that the newly created wearable is not dirty by setting current value of params in new wearable
- // to be the same as the saved values (which were loaded from src at param->cloneParam(this))
- revertValues();
-}
-
-void LLWearable::setItemID(const LLUUID& item_id)
-{
- mItemID = item_id;
-}
-
-const LLUUID& LLWearable::getItemID() const
-{
- return mItemID;
-}
-
-void LLWearable::setType(LLWearableType::EType type)
-{
- mType = type;
- createVisualParams();
-}
-
-LLLocalTextureObject* LLWearable::getLocalTextureObject(S32 index)
-{
- te_map_t::iterator iter = mTEMap.find(index);
- if( iter != mTEMap.end() )
- {
- LLLocalTextureObject* lto = iter->second;
- return lto;
- }
- return NULL;
-}
-
-const LLLocalTextureObject* LLWearable::getLocalTextureObject(S32 index) const
-{
- te_map_t::const_iterator iter = mTEMap.find(index);
- if( iter != mTEMap.end() )
- {
- const LLLocalTextureObject* lto = iter->second;
- return lto;
- }
- return NULL;
-}
-
-std::vector<LLLocalTextureObject*> LLWearable::getLocalTextureListSeq()
-{
- std::vector<LLLocalTextureObject*> result;
-
- for(te_map_t::const_iterator iter = mTEMap.begin();
- iter != mTEMap.end(); iter++)
- {
- LLLocalTextureObject* lto = iter->second;
- result.push_back(lto);
- }
-
- return result;
-}
-
-void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject &lto)
-{
- if( mTEMap.find(index) != mTEMap.end() )
- {
- mTEMap.erase(index);
- }
- mTEMap[index] = new LLLocalTextureObject(lto);
-}
-
-
-void LLWearable::addVisualParam(LLVisualParam *param)
-{
- if( mVisualParamIndexMap[param->getID()] )
- {
- delete mVisualParamIndexMap[param->getID()];
- }
- param->setIsDummy(FALSE);
- mVisualParamIndexMap[param->getID()] = param;
- mSavedVisualParamMap[param->getID()] = param->getDefaultWeight();
-}
-
-void LLWearable::setVisualParams()
-{
- for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin(); iter != mVisualParamIndexMap.end(); iter++)
- {
- S32 id = iter->first;
- LLVisualParam *wearable_param = iter->second;
- F32 value = wearable_param->getWeight();
- gAgentAvatarp->setVisualParamWeight(id, value, FALSE);
- }
-}
-
-
-void LLWearable::setVisualParamWeight(S32 param_index, F32 value, BOOL upload_bake)
-{
- if( is_in_map(mVisualParamIndexMap, param_index ) )
- {
- LLVisualParam *wearable_param = mVisualParamIndexMap[param_index];
- wearable_param->setWeight(value, upload_bake);
- }
- else
- {
- llerrs << "LLWearable::setVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << llendl;
- }
-}
-
-F32 LLWearable::getVisualParamWeight(S32 param_index) const
-{
- if( is_in_map(mVisualParamIndexMap, param_index ) )
- {
- const LLVisualParam *wearable_param = mVisualParamIndexMap.find(param_index)->second;
- return wearable_param->getWeight();
- }
- else
- {
- llwarns << "LLWerable::getVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << llendl;
- }
- return (F32)-1.0;
-}
-
-LLVisualParam* LLWearable::getVisualParam(S32 index) const
-{
- visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.find(index);
- return (iter == mVisualParamIndexMap.end()) ? NULL : iter->second;
-}
-
-
-void LLWearable::getVisualParams(visual_param_vec_t &list)
-{
- visual_param_index_map_t::iterator iter = mVisualParamIndexMap.begin();
- visual_param_index_map_t::iterator end = mVisualParamIndexMap.end();
-
- // add all visual params to the passed-in vector
- for( ; iter != end; ++iter )
- {
- list.push_back(iter->second);
- }
-}
-
-void LLWearable::animateParams(F32 delta, BOOL upload_bake)
-{
- for(visual_param_index_map_t::iterator iter = mVisualParamIndexMap.begin();
- iter != mVisualParamIndexMap.end();
- ++iter)
- {
- LLVisualParam *param = (LLVisualParam*) iter->second;
- param->animate(delta, upload_bake);
- }
-}
-
-LLColor4 LLWearable::getClothesColor(S32 te) const
-{
- LLColor4 color;
- U32 param_name[3];
- if( LLVOAvatar::teToColorParams( (LLVOAvatarDefines::ETextureIndex)te, param_name ) )
- {
- for( U8 index = 0; index < 3; index++ )
- {
- color.mV[index] = getVisualParamWeight(param_name[index]);
- }
- }
- return color;
-}
-
-void LLWearable::setClothesColor( S32 te, const LLColor4& new_color, BOOL upload_bake )
-{
- U32 param_name[3];
- if( LLVOAvatar::teToColorParams( (LLVOAvatarDefines::ETextureIndex)te, param_name ) )
- {
- for( U8 index = 0; index < 3; index++ )
- {
- setVisualParamWeight(param_name[index], new_color.mV[index], upload_bake);
- }
- }
-}
-
-void LLWearable::revertValues()
-{
- //update saved settings so wearable is no longer dirty
- // non-driver params first
- for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++)
- {
- S32 id = iter->first;
- F32 value = iter->second;
- LLVisualParam *param = getVisualParam(id);
- if(param && !dynamic_cast<LLDriverParam*>(param) )
- {
- setVisualParamWeight(id, value, TRUE);
- }
- }
-
- //then driver params
- for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++)
- {
- S32 id = iter->first;
- F32 value = iter->second;
- LLVisualParam *param = getVisualParam(id);
- if(param && dynamic_cast<LLDriverParam*>(param) )
- {
- setVisualParamWeight(id, value, TRUE);
- }
- }
-
- // make sure that saved values are sane
- for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++)
- {
- S32 id = iter->first;
- LLVisualParam *param = getVisualParam(id);
- if( param )
- {
- mSavedVisualParamMap[id] = param->getWeight();
- }
- }
-
- syncImages(mSavedTEMap, mTEMap);
-
-
- LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
- if( panel )
- {
- panel->updateScrollingPanelList();
- }
-}
-
-BOOL LLWearable::isOnTop() const
-{
- return (this == gAgentWearables.getTopWearable(mType));
-}
-
-void LLWearable::createLayers(S32 te)
-{
- LLTexLayerSet *layer_set = gAgentAvatarp->getLayerSet((ETextureIndex)te);
- if (layer_set)
- {
- layer_set->cloneTemplates(mTEMap[te], (ETextureIndex)te, this);
- }
- else
- {
- llerrs << "could not find layerset for LTO in wearable!" << llendl;
- }
-}
-
-void LLWearable::saveValues()
-{
- //update saved settings so wearable is no longer dirty
- mSavedVisualParamMap.clear();
- for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin(); iter != mVisualParamIndexMap.end(); ++iter)
- {
- S32 id = iter->first;
- LLVisualParam *wearable_param = iter->second;
- F32 value = wearable_param->getWeight();
- mSavedVisualParamMap[id] = value;
- }
-
- // Deep copy of mTEMap (copies only those tes that are current, filling in defaults where needed)
- syncImages(mTEMap, mSavedTEMap);
-
-
- LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(LLFloaterSidePanelContainer::getPanel("appearance"));
- if( panel )
- {
- panel->updateScrollingPanelList();
- }
-}
-
-void LLWearable::syncImages(te_map_t &src, te_map_t &dst)
-{
- // Deep copy of src (copies only those tes that are current, filling in defaults where needed)
- for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
- {
- if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
- {
- te_map_t::const_iterator iter = src.find(te);
- LLUUID image_id;
- LLViewerFetchedTexture *image = NULL;
- LLLocalTextureObject *lto = NULL;
- if(iter != src.end())
- {
- // there's a Local Texture Object in the source image map. Use this to populate the values to store in the destination image map.
- lto = iter->second;
- image = lto->getImage();
- image_id = lto->getID();
- }
- else
- {
- // there is no Local Texture Object in the source image map. Get defaults values for populating the destination image map.
- image_id = LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te);
- image = LLViewerTextureManager::getFetchedTexture( image_id );
- }
-
- if( dst.find(te) != dst.end() )
- {
- // there's already an entry in the destination map for the texture. Just update its values.
- dst[te]->setImage(image);
- dst[te]->setID(image_id);
- }
- else
- {
- // no entry found in the destination map, we need to create a new Local Texture Object
- dst[te] = new LLLocalTextureObject(image, image_id);
- }
-
- if( lto )
- {
- // If we pulled values from a Local Texture Object in the source map, make sure the proper flags are set in the new (or updated) entry in the destination map.
- dst[te]->setBakedReady(lto->getBakedReady());
- dst[te]->setDiscard(lto->getDiscard());
- }
- }
- }
-}
-
-void LLWearable::destroyTextures()
-{
- for( te_map_t::iterator iter = mTEMap.begin(); iter != mTEMap.end(); ++iter )
- {
- LLLocalTextureObject *lto = iter->second;
- delete lto;
- }
- mTEMap.clear();
- for( te_map_t::iterator iter = mSavedTEMap.begin(); iter != mSavedTEMap.end(); ++iter )
- {
- LLLocalTextureObject *lto = iter->second;
- delete lto;
- }
- mSavedTEMap.clear();
-}
-
-void LLWearable::pullCrossWearableValues()
-{
- // scan through all of the avatar's visual parameters
- for (LLViewerVisualParam* param = (LLViewerVisualParam*) gAgentAvatarp->getFirstVisualParam();
- param;
- param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam())
- {
- if( param )
- {
- LLDriverParam *driver_param = dynamic_cast<LLDriverParam*>(param);
- if(driver_param)
- {
- // parameter is a driver parameter, have it update its
- driver_param->updateCrossDrivenParams(getType());
- }
- }
- }
-}
-
-
-void LLWearable::setLabelUpdated() const
-{
- gInventory.addChangedMask(LLInventoryObserver::LABEL, getItemID());
-}
-
-void LLWearable::refreshName()
-{
- LLUUID item_id = getItemID();
- LLInventoryItem* item = gInventory.getItem(item_id);
- if( item )
- {
- mName = item->getName();
- }
-}
-
-struct LLWearableSaveData
-{
- LLWearableType::EType mType;
-};
-
-void LLWearable::saveNewAsset() const
-{
-// llinfos << "LLWearable::saveNewAsset() type: " << getTypeName() << llendl;
- //llinfos << *this << llendl;
-
- const std::string filename = asset_id_to_filename(mAssetID);
- LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */
- BOOL successful_save = FALSE;
- if(fp && exportFile(fp))
- {
- successful_save = TRUE;
- }
- if(fp)
- {
- fclose(fp);
- fp = NULL;
- }
- if(!successful_save)
- {
- std::string buffer = llformat("Unable to save '%s' to wearable file.", mName.c_str());
- llwarns << buffer << llendl;
-
- LLSD args;
- args["NAME"] = mName;
- LLNotificationsUtil::add("CannotSaveWearableOutOfSpace", args);
- return;
- }
-
- // save it out to database
- if( gAssetStorage )
- {
- /*
- std::string url = gAgent.getRegion()->getCapability("NewAgentInventory");
- if (!url.empty())
- {
- llinfos << "Update Agent Inventory via capability" << llendl;
- LLSD body;
- body["folder_id"] = gInventory.findCategoryUUIDForType(LLFolderType::assetToFolderType(getAssetType()));
- body["asset_type"] = LLAssetType::lookup(getAssetType());
- body["inventory_type"] = LLInventoryType::lookup(LLInventoryType::IT_WEARABLE);
- body["name"] = getName();
- body["description"] = getDescription();
- LLHTTPClient::post(url, body, new LLNewAgentInventoryResponder(body, filename));
- }
- else
- {
- }
- */
- LLWearableSaveData* data = new LLWearableSaveData;
- data->mType = mType;
- gAssetStorage->storeAssetData(filename, mTransactionID, getAssetType(),
- &LLWearable::onSaveNewAssetComplete,
- (void*)data);
- }
-}
-
-// static
-void LLWearable::onSaveNewAssetComplete(const LLUUID& new_asset_id, void* userdata, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
-{
- LLWearableSaveData* data = (LLWearableSaveData*)userdata;
- const std::string& type_name = LLWearableType::getTypeName(data->mType);
- if(0 == status)
- {
- // Success
- llinfos << "Saved wearable " << type_name << llendl;
- }
- else
- {
- std::string buffer = llformat("Unable to save %s to central asset store.", type_name.c_str());
- llwarns << buffer << " Status: " << status << llendl;
- LLSD args;
- args["NAME"] = type_name;
- LLNotificationsUtil::add("CannotSaveToAssetStore", args);
- }
-
- // Delete temp file
- const std::string src_filename = asset_id_to_filename(new_asset_id);
- LLFile::remove(src_filename);
-
- // delete the context data
- delete data;
-
-}
-
-std::ostream& operator<<(std::ostream &s, const LLWearable &w)
-{
- s << "wearable " << LLWearableType::getTypeName(w.mType) << "\n";
- s << " Name: " << w.mName << "\n";
- s << " Desc: " << w.mDescription << "\n";
- //w.mPermissions
- //w.mSaleInfo
-
- s << " Params:" << "\n";
- for (LLWearable::visual_param_index_map_t::const_iterator iter = w.mVisualParamIndexMap.begin();
- iter != w.mVisualParamIndexMap.end(); ++iter)
- {
- S32 param_id = iter->first;
- LLVisualParam *wearable_param = iter->second;
- F32 param_weight = wearable_param->getWeight();
- s << " " << param_id << " " << param_weight << "\n";
- }
-
- s << " Textures:" << "\n";
- for (LLWearable::te_map_t::const_iterator iter = w.mTEMap.begin();
- iter != w.mTEMap.end(); ++iter)
- {
- S32 te = iter->first;
- const LLUUID& image_id = iter->second->getID();
- s << " " << te << " " << image_id << "\n";
- }
- return s;
-}
-
-
-std::string terse_F32_to_string(F32 f)
-{
- std::string r = llformat("%.2f", f);
- S32 len = r.length();
-
- // "1.20" -> "1.2"
- // "24.00" -> "24."
- while (len > 0 && ('0' == r[len - 1]))
- {
- r.erase(len-1, 1);
- len--;
- }
- if ('.' == r[len - 1])
- {
- // "24." -> "24"
- r.erase(len-1, 1);
- }
- else if (('-' == r[0]) && ('0' == r[1]))
- {
- // "-0.59" -> "-.59"
- r.erase(1, 1);
- }
- else if ('0' == r[0])
- {
- // "0.59" -> ".59"
- r.erase(0, 1);
- }
- return r;
-}
-
-std::string asset_id_to_filename(const LLUUID &asset_id)
-{
- std::string asset_id_string;
- asset_id.toString(asset_id_string);
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_id_string) + ".wbl";
- return filename;
-}
diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h
deleted file mode 100644
index 3d8c53a755..0000000000
--- a/indra/newview/llwearable.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * @file llwearable.h
- * @brief LLWearable class header file
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLWEARABLE_H
-#define LL_LLWEARABLE_H
-
-#include "lluuid.h"
-#include "llstring.h"
-#include "llpermissions.h"
-#include "llsaleinfo.h"
-#include "llassetstorage.h"
-#include "llwearabletype.h"
-#include "llfile.h"
-#include "lllocaltextureobject.h"
-
-class LLViewerInventoryItem;
-class LLVisualParam;
-class LLTexGlobalColorInfo;
-class LLTexGlobalColor;
-
-class LLWearable
-{
- friend class LLWearableList;
-
- //--------------------------------------------------------------------
- // Constructors and destructors
- //--------------------------------------------------------------------
-private:
- // Private constructors used by LLWearableList
- LLWearable(const LLTransactionID& transactionID);
- LLWearable(const LLAssetID& assetID);
-public:
- virtual ~LLWearable();
-
- //--------------------------------------------------------------------
- // Accessors
- //--------------------------------------------------------------------
-public:
- const LLUUID& getItemID() const;
- const LLAssetID& getAssetID() const { return mAssetID; }
- const LLTransactionID& getTransactionID() const { return mTransactionID; }
- LLWearableType::EType getType() const { return mType; }
- void setType(LLWearableType::EType type);
- const std::string& getName() const { return mName; }
- void setName(const std::string& name) { mName = name; }
- const std::string& getDescription() const { return mDescription; }
- void setDescription(const std::string& desc) { mDescription = desc; }
- const LLPermissions& getPermissions() const { return mPermissions; }
- void setPermissions(const LLPermissions& p) { mPermissions = p; }
- const LLSaleInfo& getSaleInfo() const { return mSaleInfo; }
- void setSaleInfo(const LLSaleInfo& info) { mSaleInfo = info; }
- const std::string& getTypeLabel() const;
- const std::string& getTypeName() const;
- LLAssetType::EType getAssetType() const;
- S32 getDefinitionVersion() const { return mDefinitionVersion; }
- void setDefinitionVersion( S32 new_version ) { mDefinitionVersion = new_version; }
-
-public:
- typedef std::vector<LLVisualParam*> visual_param_vec_t;
-
- BOOL isDirty() const;
- BOOL isOldVersion() const;
-
- void writeToAvatar();
- void removeFromAvatar( BOOL upload_bake ) { LLWearable::removeFromAvatar( mType, upload_bake ); }
- static void removeFromAvatar( LLWearableType::EType type, BOOL upload_bake );
-
- BOOL exportFile(LLFILE* file) const;
- BOOL importFile(LLFILE* file);
-
- void setParamsToDefaults();
- void setTexturesToDefaults();
-
- void saveNewAsset() const;
- static void onSaveNewAssetComplete( const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status );
-
- void copyDataFrom(const LLWearable* src);
-
- static void setCurrentDefinitionVersion( S32 version ) { LLWearable::sCurrentDefinitionVersion = version; }
-
- friend std::ostream& operator<<(std::ostream &s, const LLWearable &w);
- void setItemID(const LLUUID& item_id);
-
- LLLocalTextureObject* getLocalTextureObject(S32 index);
- const LLLocalTextureObject* getLocalTextureObject(S32 index) const;
- std::vector<LLLocalTextureObject*> getLocalTextureListSeq();
-
- void setLocalTextureObject(S32 index, LLLocalTextureObject &lto);
- void addVisualParam(LLVisualParam *param);
- void setVisualParams();
- void setVisualParamWeight(S32 index, F32 value, BOOL upload_bake);
- F32 getVisualParamWeight(S32 index) const;
- LLVisualParam* getVisualParam(S32 index) const;
- void getVisualParams(visual_param_vec_t &list);
- void animateParams(F32 delta, BOOL upload_bake);
-
- LLColor4 getClothesColor(S32 te) const;
- void setClothesColor( S32 te, const LLColor4& new_color, BOOL upload_bake );
-
- void revertValues();
- void saveValues();
- void pullCrossWearableValues();
-
- BOOL isOnTop() const;
-
- // Something happened that requires the wearable's label to be updated (e.g. worn/unworn).
- void setLabelUpdated() const;
-
- // the wearable was worn. make sure the name of the wearable object matches the LLViewerInventoryItem,
- // not the wearable asset itself.
- void refreshName();
-
-private:
- typedef std::map<S32, LLLocalTextureObject*> te_map_t;
- typedef std::map<S32, LLVisualParam *> visual_param_index_map_t;
-
- void createLayers(S32 te);
- void createVisualParams();
- void syncImages(te_map_t &src, te_map_t &dst);
- void destroyTextures();
-
- static S32 sCurrentDefinitionVersion; // Depends on the current state of the avatar_lad.xml.
- S32 mDefinitionVersion; // Depends on the state of the avatar_lad.xml when this asset was created.
- std::string mName;
- std::string mDescription;
- LLPermissions mPermissions;
- LLSaleInfo mSaleInfo;
- LLAssetID mAssetID;
- LLTransactionID mTransactionID;
- LLWearableType::EType mType;
-
- typedef std::map<S32, F32> param_map_t;
- param_map_t mSavedVisualParamMap; // last saved version of visual params
-
- visual_param_index_map_t mVisualParamIndexMap;
-
- te_map_t mTEMap; // maps TE to LocalTextureObject
- te_map_t mSavedTEMap; // last saved version of TEMap
- LLUUID mItemID; // ID of the inventory item in the agent's inventory
-};
-
-#endif // LL_LLWEARABLE_H
diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp
index 92697fb2eb..c196d70617 100644..100755
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -34,6 +34,7 @@
#include "llagentwearables.h"
#include "llappearancemgr.h"
#include "llinventoryfunctions.h"
+#include "llinventoryicon.h"
#include "lltransutil.h"
#include "llviewerattachmenu.h"
#include "llvoavatarself.h"
@@ -788,23 +789,24 @@ LLContextMenu* LLWearableItemsList::ContextMenu::createMenu()
const uuid_vec_t& ids = mUUIDs; // selected items IDs
LLUUID selected_id = ids.front(); // ID of the first selected item
- functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
-
// Register handlers common for all wearable types.
registrar.add("Wearable.Wear", boost::bind(wear_multiple, ids, true));
registrar.add("Wearable.Add", boost::bind(wear_multiple, ids, false));
registrar.add("Wearable.Edit", boost::bind(handleMultiple, LLAgentWearables::editWearable, ids));
registrar.add("Wearable.CreateNew", boost::bind(createNewWearable, selected_id));
registrar.add("Wearable.ShowOriginal", boost::bind(show_item_original, selected_id));
- registrar.add("Wearable.TakeOffDetach", boost::bind(handleMultiple, take_off, ids));
+ registrar.add("Wearable.TakeOffDetach",
+ boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), ids));
// Register handlers for clothing.
- registrar.add("Clothing.TakeOff", boost::bind(handleMultiple, take_off, ids));
+ registrar.add("Clothing.TakeOff",
+ boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), ids));
// Register handlers for body parts.
// Register handlers for attachments.
- registrar.add("Attachment.Detach", boost::bind(handleMultiple, take_off, ids));
+ registrar.add("Attachment.Detach",
+ boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), ids));
registrar.add("Attachment.Profile", boost::bind(show_item_profile, selected_id));
registrar.add("Object.Attach", boost::bind(LLViewerAttachMenu::attachObjects, ids, _2));
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index a8a5ef3117..a8a5ef3117 100644..100755
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 6f6411ce3c..ef1a953f59 100644..100755
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -42,20 +42,23 @@ struct LLWearableArrivedData
{
LLWearableArrivedData(LLAssetType::EType asset_type,
const std::string& wearable_name,
- void(*asset_arrived_callback)(LLWearable*, void* userdata),
+ LLAvatarAppearance* avatarp,
+ void(*asset_arrived_callback)(LLViewerWearable*, void* userdata),
void* userdata) :
mAssetType( asset_type ),
mCallback( asset_arrived_callback ),
mUserdata( userdata ),
mName( wearable_name ),
- mRetries(0)
+ mRetries(0),
+ mAvatarp(avatarp)
{}
LLAssetType::EType mAssetType;
- void (*mCallback)(LLWearable*, void* userdata);
+ void (*mCallback)(LLViewerWearable*, void* userdata);
void* mUserdata;
std::string mName;
S32 mRetries;
+ LLAvatarAppearance *mAvatarp;
};
////////////////////////////////////////////////////////////////////////////
@@ -72,10 +75,10 @@ void LLWearableList::cleanup()
mList.clear();
}
-void LLWearableList::getAsset(const LLAssetID& assetID, const std::string& wearable_name, LLAssetType::EType asset_type, void(*asset_arrived_callback)(LLWearable*, void* userdata), void* userdata)
+void LLWearableList::getAsset(const LLAssetID& assetID, const std::string& wearable_name, LLAvatarAppearance* avatarp, LLAssetType::EType asset_type, void(*asset_arrived_callback)(LLViewerWearable*, void* userdata), void* userdata)
{
llassert( (asset_type == LLAssetType::AT_CLOTHING) || (asset_type == LLAssetType::AT_BODYPART) );
- LLWearable* instance = get_if_there(mList, assetID, (LLWearable*)NULL );
+ LLViewerWearable* instance = get_if_there(mList, assetID, (LLViewerWearable*)NULL );
if( instance )
{
asset_arrived_callback( instance, userdata );
@@ -85,7 +88,7 @@ void LLWearableList::getAsset(const LLAssetID& assetID, const std::string& weara
gAssetStorage->getAssetData(assetID,
asset_type,
LLWearableList::processGetAssetReply,
- (void*)new LLWearableArrivedData( asset_type, wearable_name, asset_arrived_callback, userdata ),
+ (void*)new LLWearableArrivedData( asset_type, wearable_name, avatarp, asset_arrived_callback, userdata ),
TRUE);
}
}
@@ -95,25 +98,31 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
{
BOOL isNewWearable = FALSE;
LLWearableArrivedData* data = (LLWearableArrivedData*) userdata;
- LLWearable* wearable = NULL; // NULL indicates failure
+ LLViewerWearable* wearable = NULL; // NULL indicates failure
+ LLAvatarAppearance *avatarp = data->mAvatarp;
if( !filename )
{
LL_WARNS("Wearable") << "Bad Wearable Asset: missing file." << LL_ENDL;
}
+ else if(!avatarp)
+ {
+ LL_WARNS("Wearable") << "Bad asset request: missing avatar pointer." << LL_ENDL;
+ }
else if (status >= 0)
{
// read the file
- LLFILE* fp = LLFile::fopen(std::string(filename), "rb"); /*Flawfinder: ignore*/
- if( !fp )
+ llifstream ifs(filename, llifstream::binary);
+ if( !ifs.is_open() )
{
LL_WARNS("Wearable") << "Bad Wearable Asset: unable to open file: '" << filename << "'" << LL_ENDL;
}
else
{
- wearable = new LLWearable(uuid);
- bool res = wearable->importFile( fp );
- if (!res)
+ wearable = new LLViewerWearable(uuid);
+ LLWearable::EImportResult result = wearable->importStream(
+ ifs, avatarp );
+ if (LLWearable::SUCCESS != result)
{
if (wearable->getType() == LLWearableType::WT_COUNT)
{
@@ -123,9 +132,12 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
wearable = NULL;
}
- fclose( fp );
if(filename)
{
+ if (ifs.is_open())
+ {
+ ifs.close();
+ }
LLFile::remove(std::string(filename));
}
}
@@ -203,11 +215,11 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
}
-LLWearable* LLWearableList::createCopy(const LLWearable* old_wearable, const std::string& new_name)
+LLViewerWearable* LLWearableList::createCopy(const LLViewerWearable* old_wearable, const std::string& new_name)
{
lldebugs << "LLWearableList::createCopy()" << llendl;
- LLWearable *wearable = generateNewWearable();
+ LLViewerWearable *wearable = generateNewWearable();
wearable->copyDataFrom(old_wearable);
LLPermissions perm(old_wearable->getPermissions());
@@ -222,12 +234,12 @@ LLWearable* LLWearableList::createCopy(const LLWearable* old_wearable, const std
return wearable;
}
-LLWearable* LLWearableList::createNewWearable( LLWearableType::EType type )
+LLViewerWearable* LLWearableList::createNewWearable( LLWearableType::EType type, LLAvatarAppearance *avatarp )
{
lldebugs << "LLWearableList::createNewWearable()" << llendl;
- LLWearable *wearable = generateNewWearable();
- wearable->setType( type );
+ LLViewerWearable *wearable = generateNewWearable();
+ wearable->setType( type, avatarp );
std::string name = LLTrans::getString( LLWearableType::getTypeDefaultNewName(wearable->getType()) );
wearable->setName( name );
@@ -237,6 +249,8 @@ LLWearable* LLWearableList::createNewWearable( LLWearableType::EType type )
perm.initMasks(PERM_ALL, PERM_ALL, PERM_NONE, PERM_NONE, PERM_MOVE | PERM_TRANSFER);
wearable->setPermissions(perm);
+ wearable->setDefinitionVersion(LLWearable::getCurrentDefinitionVersion());
+
// Description and sale info have default values.
wearable->setParamsToDefaults();
wearable->setTexturesToDefaults();
@@ -251,13 +265,13 @@ LLWearable* LLWearableList::createNewWearable( LLWearableType::EType type )
return wearable;
}
-LLWearable *LLWearableList::generateNewWearable()
+LLViewerWearable *LLWearableList::generateNewWearable()
{
LLTransactionID tid;
tid.generate();
LLAssetID new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
- LLWearable* wearable = new LLWearable(tid);
+ LLViewerWearable* wearable = new LLViewerWearable(tid);
mList[new_asset_id] = wearable;
return wearable;
}
diff --git a/indra/newview/llwearablelist.h b/indra/newview/llwearablelist.h
index 12d0037aee..d6f0fd09a6 100644..100755
--- a/indra/newview/llwearablelist.h
+++ b/indra/newview/llwearablelist.h
@@ -28,7 +28,7 @@
#define LL_LLWEARABLELIST_H
#include "llmemory.h"
-#include "llwearable.h"
+#include "llviewerwearable.h"
#include "lluuid.h"
#include "llassetstorage.h"
@@ -50,20 +50,21 @@ public:
void getAsset(const LLAssetID& assetID,
const std::string& wearable_name,
+ LLAvatarAppearance *avatarp,
LLAssetType::EType asset_type,
- void(*asset_arrived_callback)(LLWearable*, void* userdata),
+ void(*asset_arrived_callback)(LLViewerWearable*, void* userdata),
void* userdata);
- LLWearable* createCopy(const LLWearable* old_wearable, const std::string& new_name = std::string());
- LLWearable* createNewWearable(LLWearableType::EType type);
+ LLViewerWearable* createCopy(const LLViewerWearable* old_wearable, const std::string& new_name = std::string());
+ LLViewerWearable* createNewWearable(LLWearableType::EType type, LLAvatarAppearance *avatarp);
// Callback
static void processGetAssetReply(const char* filename, const LLAssetID& assetID, void* user_data, S32 status, LLExtStat ext_status);
protected:
- LLWearable* generateNewWearable(); // used for the create... functions
+ LLViewerWearable* generateNewWearable(); // used for the create... functions
private:
- std::map<LLUUID, LLWearable*> mList;
+ std::map<LLUUID, LLViewerWearable*> mList;
};
#endif // LL_LLWEARABLELIST_H
diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp
deleted file mode 100644
index c090ab5c3d..0000000000
--- a/indra/newview/llwearabletype.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * @file llwearabletype.cpp
- * @brief LLWearableType class implementation
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "llwearabletype.h"
-#include "llinventoryfunctions.h"
-#include "lltrans.h"
-
-struct WearableEntry : public LLDictionaryEntry
-{
- WearableEntry(const std::string &name,
- const std::string& default_new_name,
- LLAssetType::EType assetType,
- LLInventoryIcon::EIconName iconName,
- BOOL disable_camera_switch = FALSE,
- BOOL allow_multiwear = TRUE) :
- LLDictionaryEntry(name),
- mAssetType(assetType),
- mDefaultNewName(default_new_name),
- mLabel(LLTrans::getString(name)),
- mIconName(iconName),
- mDisableCameraSwitch(disable_camera_switch),
- mAllowMultiwear(allow_multiwear)
- {
-
- }
- const LLAssetType::EType mAssetType;
- const std::string mLabel;
- const std::string mDefaultNewName; //keep mLabel for backward compatibility
- LLInventoryIcon::EIconName mIconName;
- BOOL mDisableCameraSwitch;
- BOOL mAllowMultiwear;
-};
-
-class LLWearableDictionary : public LLSingleton<LLWearableDictionary>,
- public LLDictionary<LLWearableType::EType, WearableEntry>
-{
-public:
- LLWearableDictionary();
-};
-
-LLWearableDictionary::LLWearableDictionary()
-{
- addEntry(LLWearableType::WT_SHAPE, new WearableEntry("shape", "New Shape", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SHAPE, FALSE, FALSE));
- addEntry(LLWearableType::WT_SKIN, new WearableEntry("skin", "New Skin", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_SKIN, FALSE, FALSE));
- addEntry(LLWearableType::WT_HAIR, new WearableEntry("hair", "New Hair", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_HAIR, FALSE, FALSE));
- addEntry(LLWearableType::WT_EYES, new WearableEntry("eyes", "New Eyes", LLAssetType::AT_BODYPART, LLInventoryIcon::ICONNAME_BODYPART_EYES, FALSE, FALSE));
- addEntry(LLWearableType::WT_SHIRT, new WearableEntry("shirt", "New Shirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHIRT, FALSE, TRUE));
- addEntry(LLWearableType::WT_PANTS, new WearableEntry("pants", "New Pants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_PANTS, FALSE, TRUE));
- addEntry(LLWearableType::WT_SHOES, new WearableEntry("shoes", "New Shoes", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SHOES, FALSE, TRUE));
- addEntry(LLWearableType::WT_SOCKS, new WearableEntry("socks", "New Socks", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SOCKS, FALSE, TRUE));
- addEntry(LLWearableType::WT_JACKET, new WearableEntry("jacket", "New Jacket", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_JACKET, FALSE, TRUE));
- addEntry(LLWearableType::WT_GLOVES, new WearableEntry("gloves", "New Gloves", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_GLOVES, FALSE, TRUE));
- addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry("undershirt", "New Undershirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERSHIRT, FALSE, TRUE));
- addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry("underpants", "New Underpants", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_UNDERPANTS, FALSE, TRUE));
- addEntry(LLWearableType::WT_SKIRT, new WearableEntry("skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SKIRT, FALSE, TRUE));
- addEntry(LLWearableType::WT_ALPHA, new WearableEntry("alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_ALPHA, FALSE, TRUE));
- addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE));
-
- addEntry(LLWearableType::WT_PHYSICS, new WearableEntry("physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_PHYSICS, TRUE, TRUE));
-
- addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE, FALSE, FALSE));
- addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE, FALSE, FALSE));
-}
-
-// static
-LLWearableType::EType LLWearableType::typeNameToType(const std::string& type_name)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const LLWearableType::EType wearable = dict->lookup(type_name);
- return wearable;
-}
-
-// static
-const std::string& LLWearableType::getTypeName(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return getTypeName(WT_INVALID);
- return entry->mName;
-}
-
-//static
-const std::string& LLWearableType::getTypeDefaultNewName(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return getTypeDefaultNewName(WT_INVALID);
- return entry->mDefaultNewName;
-}
-
-// static
-const std::string& LLWearableType::getTypeLabel(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return getTypeLabel(WT_INVALID);
- return entry->mLabel;
-}
-
-// static
-LLAssetType::EType LLWearableType::getAssetType(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return getAssetType(WT_INVALID);
- return entry->mAssetType;
-}
-
-// static
-LLInventoryIcon::EIconName LLWearableType::getIconName(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return getIconName(WT_INVALID);
- return entry->mIconName;
-}
-
-// static
-BOOL LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return FALSE;
- return entry->mDisableCameraSwitch;
-}
-
-// static
-BOOL LLWearableType::getAllowMultiwear(LLWearableType::EType type)
-{
- const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
- const WearableEntry *entry = dict->lookup(type);
- if (!entry) return FALSE;
- return entry->mAllowMultiwear;
-}
-
diff --git a/indra/newview/llwearabletype.h b/indra/newview/llwearabletype.h
deleted file mode 100644
index d633b4807e..0000000000
--- a/indra/newview/llwearabletype.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * @file llwearabletype.h
- * @brief LLWearableType class header file
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLWEARABLETYPE_H
-#define LL_LLWEARABLETYPE_H
-
-#include "llassettype.h"
-#include "lldictionary.h"
-#include "llinventoryicon.h"
-#include "llsingleton.h"
-
-class LLWearableType
-{
-public:
- enum EType
- {
- WT_SHAPE = 0,
- WT_SKIN = 1,
- WT_HAIR = 2,
- WT_EYES = 3,
- WT_SHIRT = 4,
- WT_PANTS = 5,
- WT_SHOES = 6,
- WT_SOCKS = 7,
- WT_JACKET = 8,
- WT_GLOVES = 9,
- WT_UNDERSHIRT = 10,
- WT_UNDERPANTS = 11,
- WT_SKIRT = 12,
- WT_ALPHA = 13,
- WT_TATTOO = 14,
- WT_PHYSICS = 15,
- WT_COUNT = 16,
-
- WT_INVALID = 255,
- WT_NONE = -1,
- };
-
- static const std::string& getTypeName(EType type);
- static const std::string& getTypeDefaultNewName(EType type);
- static const std::string& getTypeLabel(EType type);
- static LLAssetType::EType getAssetType(EType type);
- static EType typeNameToType(const std::string& type_name);
- static LLInventoryIcon::EIconName getIconName(EType type);
- static BOOL getDisableCameraSwitch(EType type);
- static BOOL getAllowMultiwear(EType type);
-
-protected:
- LLWearableType() {}
- ~LLWearableType() {}
-};
-
-#endif // LL_LLWEARABLETYPE_H
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 83337b386d..83337b386d 100644..100755
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
diff --git a/indra/newview/llweb.h b/indra/newview/llweb.h
index 0b95f664d6..0b95f664d6 100644..100755
--- a/indra/newview/llweb.h
+++ b/indra/newview/llweb.h
diff --git a/indra/newview/llwebprofile.cpp b/indra/newview/llwebprofile.cpp
index 641f338f2c..641f338f2c 100644..100755
--- a/indra/newview/llwebprofile.cpp
+++ b/indra/newview/llwebprofile.cpp
diff --git a/indra/newview/llwebprofile.h b/indra/newview/llwebprofile.h
index 10279bffac..10279bffac 100644..100755
--- a/indra/newview/llwebprofile.h
+++ b/indra/newview/llwebprofile.h
diff --git a/indra/newview/llwebsharing.cpp b/indra/newview/llwebsharing.cpp
index 43b1a320c3..3a80051b9b 100644..100755
--- a/indra/newview/llwebsharing.cpp
+++ b/indra/newview/llwebsharing.cpp
@@ -68,9 +68,9 @@ public:
}
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LL_WARNS("WebSharing") << "Error [status:" << status << "]: " << content << LL_ENDL;
}
virtual void result(const LLSD& content)
@@ -99,7 +99,7 @@ public:
/// Left empty to override the default LLSD parsing behaviour.
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
if (HTTP_UNAUTHORIZED == status)
{
@@ -108,7 +108,7 @@ public:
}
else
{
- LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LL_WARNS("WebSharing") << "Error [status:" << status << "]: " << content << LL_ENDL;
LLWebSharing::instance().retryOpenIDAuth();
}
@@ -152,9 +152,9 @@ public:
}
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LL_WARNS("WebSharing") << "Error [status:" << status << "]: " << content << LL_ENDL;
LLWebSharing::instance().retryOpenIDAuth();
}
@@ -221,9 +221,9 @@ public:
}
}
- virtual void error(U32 status, const std::string& reason)
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LL_WARNS("WebSharing") << "Error [status:" << status << "]: " << content << LL_ENDL;
}
virtual void result(const LLSD& content)
diff --git a/indra/newview/llwebsharing.h b/indra/newview/llwebsharing.h
index ad9c99c224..ad9c99c224 100644..100755
--- a/indra/newview/llwebsharing.h
+++ b/indra/newview/llwebsharing.h
diff --git a/indra/newview/llwind.cpp b/indra/newview/llwind.cpp
index 4c39fb5b74..4c39fb5b74 100644..100755
--- a/indra/newview/llwind.cpp
+++ b/indra/newview/llwind.cpp
diff --git a/indra/newview/llwind.h b/indra/newview/llwind.h
index 3b57f07124..3b57f07124 100644..100755
--- a/indra/newview/llwind.h
+++ b/indra/newview/llwind.h
diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp
index 551d0be8d7..551d0be8d7 100644..100755
--- a/indra/newview/llwindebug.cpp
+++ b/indra/newview/llwindebug.cpp
diff --git a/indra/newview/llwindebug.h b/indra/newview/llwindebug.h
index 3837825d31..3837825d31 100644..100755
--- a/indra/newview/llwindebug.h
+++ b/indra/newview/llwindebug.h
diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp
index 28f959eb71..28f959eb71 100644..100755
--- a/indra/newview/llwindowlistener.cpp
+++ b/indra/newview/llwindowlistener.cpp
diff --git a/indra/newview/llwindowlistener.h b/indra/newview/llwindowlistener.h
index 7af5ab3b9f..7af5ab3b9f 100644..100755
--- a/indra/newview/llwindowlistener.h
+++ b/indra/newview/llwindowlistener.h
diff --git a/indra/newview/llwlanimator.cpp b/indra/newview/llwlanimator.cpp
index e568638cf6..e568638cf6 100644..100755
--- a/indra/newview/llwlanimator.cpp
+++ b/indra/newview/llwlanimator.cpp
diff --git a/indra/newview/llwlanimator.h b/indra/newview/llwlanimator.h
index 5223b45343..5223b45343 100644..100755
--- a/indra/newview/llwlanimator.h
+++ b/indra/newview/llwlanimator.h
diff --git a/indra/newview/llwldaycycle.cpp b/indra/newview/llwldaycycle.cpp
index 4c0cb7c0f4..4c0cb7c0f4 100644..100755
--- a/indra/newview/llwldaycycle.cpp
+++ b/indra/newview/llwldaycycle.cpp
diff --git a/indra/newview/llwldaycycle.h b/indra/newview/llwldaycycle.h
index c8585564ed..c8585564ed 100644..100755
--- a/indra/newview/llwldaycycle.h
+++ b/indra/newview/llwldaycycle.h
diff --git a/indra/newview/llwlhandlers.cpp b/indra/newview/llwlhandlers.cpp
index be3e3ff30e..93eba5b604 100644..100755
--- a/indra/newview/llwlhandlers.cpp
+++ b/indra/newview/llwlhandlers.cpp
@@ -121,9 +121,11 @@ LLEnvironmentRequestResponder::LLEnvironmentRequestResponder()
LLEnvManagerNew::getInstance()->onRegionSettingsResponse(unvalidated_content);
}
-/*virtual*/ void LLEnvironmentRequestResponder::error(U32 status, const std::string& reason)
+/*virtual*/
+void LLEnvironmentRequestResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- LL_INFOS("WindlightCaps") << "Got an error, not using region windlight..." << LL_ENDL;
+ LL_INFOS("WindlightCaps") << "Got an error, not using region windlight... [status:"
+ << status << "]: " << content << LL_ENDL;
LLEnvManagerNew::getInstance()->onRegionSettingsResponse(LLSD());
}
@@ -190,14 +192,15 @@ bool LLEnvironmentApply::initiateRequest(const LLSD& content)
LLEnvManagerNew::instance().onRegionSettingsApplyResponse(false);
}
}
-/*virtual*/ void LLEnvironmentApplyResponder::error(U32 status, const std::string& reason)
+/*virtual*/
+void LLEnvironmentApplyResponder::errorWithContent(U32 status, const std::string& reason, const LLSD& content)
{
- std::stringstream msg;
- msg << reason << " (Code " << status << ")";
-
- LL_WARNS("WindlightCaps") << "Couldn't apply windlight settings to region! Reason: " << msg << LL_ENDL;
+ LL_WARNS("WindlightCaps") << "Couldn't apply windlight settings to region! [status:"
+ << status << "]: " << content << LL_ENDL;
LLSD args(LLSD::emptyMap());
+ std::stringstream msg;
+ msg << reason << " (Code " << status << ")";
args["FAIL_REASON"] = msg.str();
LLNotificationsUtil::add("WLRegionApplyFail", args);
}
diff --git a/indra/newview/llwlhandlers.h b/indra/newview/llwlhandlers.h
index 23558876da..598ce6d52a 100644..100755
--- a/indra/newview/llwlhandlers.h
+++ b/indra/newview/llwlhandlers.h
@@ -47,7 +47,7 @@ class LLEnvironmentRequestResponder: public LLHTTPClient::Responder
LOG_CLASS(LLEnvironmentRequestResponder);
public:
virtual void result(const LLSD& content);
- virtual void error(U32 status, const std::string& reason);
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
private:
friend class LLEnvironmentRequest;
@@ -89,7 +89,8 @@ public:
*/
virtual void result(const LLSD& content);
- virtual void error(U32 status, const std::string& reason); // non-200 errors only
+ // non-200 errors only
+ virtual void errorWithContent(U32 status, const std::string& reason, const LLSD& content);
private:
friend class LLEnvironmentApply;
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 6077208799..6077208799 100644..100755
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
diff --git a/indra/newview/llwlparammanager.h b/indra/newview/llwlparammanager.h
index 72422500fc..72422500fc 100644..100755
--- a/indra/newview/llwlparammanager.h
+++ b/indra/newview/llwlparammanager.h
diff --git a/indra/newview/llwlparamset.cpp b/indra/newview/llwlparamset.cpp
index b04d30db55..b04d30db55 100644..100755
--- a/indra/newview/llwlparamset.cpp
+++ b/indra/newview/llwlparamset.cpp
diff --git a/indra/newview/llwlparamset.h b/indra/newview/llwlparamset.h
index b087119dd5..b087119dd5 100644..100755
--- a/indra/newview/llwlparamset.h
+++ b/indra/newview/llwlparamset.h
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index 793becf0c8..793becf0c8 100644..100755
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
diff --git a/indra/newview/llworld.h b/indra/newview/llworld.h
index f350009d10..f350009d10 100644..100755
--- a/indra/newview/llworld.h
+++ b/indra/newview/llworld.h
diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp
index 350ba39b45..5fa380e0e3 100644..100755
--- a/indra/newview/llworldmap.cpp
+++ b/indra/newview/llworldmap.cpp
@@ -34,6 +34,7 @@
#include "lluistring.h"
#include "llviewertexturelist.h"
#include "lltrans.h"
+#include "llgltexture.h"
// Timers to temporise database requests
const F32 AGENTS_UPDATE_TIMER = 60.0; // Seconds between 2 agent requests for a region
@@ -78,7 +79,7 @@ void LLSimInfo::setLandForSaleImage (LLUUID image_id)
// Fetch the image
if (mMapImageID.notNull())
{
- mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, MIPMAP_TRUE, LLViewerTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);
+ mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);
mOverlayImage->setAddressMode(LLTexUnit::TAM_CLAMP);
}
else
@@ -92,13 +93,13 @@ LLPointer<LLViewerFetchedTexture> LLSimInfo::getLandForSaleImage ()
if (mOverlayImage.isNull() && mMapImageID.notNull())
{
// Fetch the image if it hasn't been done yet (unlikely but...)
- mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, MIPMAP_TRUE, LLViewerTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);
+ mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);
mOverlayImage->setAddressMode(LLTexUnit::TAM_CLAMP);
}
if (!mOverlayImage.isNull())
{
// Boost the fetch level when we try to access that image
- mOverlayImage->setBoostLevel(LLViewerTexture::BOOST_MAP);
+ mOverlayImage->setBoostLevel(LLGLTexture::BOOST_MAP);
}
return mOverlayImage;
}
diff --git a/indra/newview/llworldmap.h b/indra/newview/llworldmap.h
index 73530b9694..d514b2f14c 100644..100755
--- a/indra/newview/llworldmap.h
+++ b/indra/newview/llworldmap.h
@@ -36,6 +36,7 @@
#include "llsingleton.h"
#include "llviewerregion.h"
#include "llviewertexture.h"
+#include "llgltexture.h"
// Description of objects like hubs, events, land for sale, people and more (TBD).
// Note: we don't store a "type" in there so we need to store instances of this class in
diff --git a/indra/newview/llworldmapmessage.cpp b/indra/newview/llworldmapmessage.cpp
index 8307d32336..8307d32336 100644..100755
--- a/indra/newview/llworldmapmessage.cpp
+++ b/indra/newview/llworldmapmessage.cpp
diff --git a/indra/newview/llworldmapmessage.h b/indra/newview/llworldmapmessage.h
index 12b6ef4792..12b6ef4792 100644..100755
--- a/indra/newview/llworldmapmessage.h
+++ b/indra/newview/llworldmapmessage.h
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 11b2770ec0..1940cf541e 100644..100755
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -421,7 +421,7 @@ void LLWorldMapView::draw()
{
// Inform the fetch mechanism of the size we need
S32 draw_size = llround(sMapScale);
- overlayimage->setKnownDrawSize(llround(draw_size * LLUI::sGLScaleFactor.mV[VX]), llround(draw_size * LLUI::sGLScaleFactor.mV[VY]));
+ overlayimage->setKnownDrawSize(llround(draw_size * LLUI::getScaleFactor().mV[VX]), llround(draw_size * LLUI::getScaleFactor().mV[VY]));
// Draw something whenever we have enough info
if (overlayimage->hasGLTexture())
{
@@ -1317,7 +1317,7 @@ void LLWorldMapView::drawTrackingCircle( const LLRect& rect, S32 x, S32 y, const
gGL.matrixMode(LLRender::MM_MODELVIEW);
gGL.pushMatrix();
- gGL.translatef((F32)x * LLUI::sGLScaleFactor.mV[VX], (F32)y * LLUI::sGLScaleFactor.mV[VY], 0.f);
+ gGL.translatef((F32)x * LLUI::getScaleFactor().mV[VX], (F32)y * LLUI::getScaleFactor().mV[VY], 0.f);
gl_washer_segment_2d(inner_radius, outer_radius, start_theta, end_theta, 40, color, color);
gGL.popMatrix();
diff --git a/indra/newview/llworldmapview.h b/indra/newview/llworldmapview.h
index a2a6dc53fb..a2a6dc53fb 100644..100755
--- a/indra/newview/llworldmapview.h
+++ b/indra/newview/llworldmapview.h
diff --git a/indra/newview/llworldmipmap.cpp b/indra/newview/llworldmipmap.cpp
index 74ed844376..895ccaef5a 100644..100755
--- a/indra/newview/llworldmipmap.cpp
+++ b/indra/newview/llworldmipmap.cpp
@@ -74,21 +74,21 @@ void LLWorldMipmap::equalizeBoostLevels()
{
LLPointer<LLViewerFetchedTexture> img = iter->second;
S32 current_boost_level = img->getBoostLevel();
- if (current_boost_level == LLViewerTexture::BOOST_MAP_VISIBLE)
+ if (current_boost_level == LLGLTexture::BOOST_MAP_VISIBLE)
{
// If level was BOOST_MAP_VISIBLE, the tile has been used in the last draw so keep it high
- img->setBoostLevel(LLViewerTexture::BOOST_MAP);
+ img->setBoostLevel(LLGLTexture::BOOST_MAP);
}
else
{
// If level was BOOST_MAP only (or anything else...), the tile wasn't used in the last draw
// so we drop its boost level to BOOST_NONE.
- img->setBoostLevel(LLViewerTexture::BOOST_NONE);
+ img->setBoostLevel(LLGLTexture::BOOST_NONE);
}
#if DEBUG_TILES_STAT
// Increment some stats if compile option on
nb_tiles++;
- if (current_boost_level == LLViewerTexture::BOOST_MAP_VISIBLE)
+ if (current_boost_level == LLGLTexture::BOOST_MAP_VISIBLE)
{
nb_visible++;
}
@@ -115,7 +115,7 @@ void LLWorldMipmap::dropBoostLevels()
for (sublevel_tiles_t::iterator iter = level_mipmap.begin(); iter != level_mipmap.end(); iter++)
{
LLPointer<LLViewerFetchedTexture> img = iter->second;
- img->setBoostLevel(LLViewerTexture::BOOST_NONE);
+ img->setBoostLevel(LLGLTexture::BOOST_NONE);
}
}
}
@@ -172,7 +172,7 @@ LLPointer<LLViewerFetchedTexture> LLWorldMipmap::getObjectsTile(U32 grid_x, U32
// Boost the tile level so to mark it's in use *if* load on
if (load)
{
- img->setBoostLevel(LLViewerTexture::BOOST_MAP_VISIBLE);
+ img->setBoostLevel(LLGLTexture::BOOST_MAP_VISIBLE);
}
return img;
}
@@ -189,8 +189,8 @@ LLPointer<LLViewerFetchedTexture> LLWorldMipmap::loadObjectsTile(U32 grid_x, U32
// END DEBUG
//LL_INFOS("World Map") << "LLWorldMipmap::loadObjectsTile(), URL = " << imageurl << LL_ENDL;
- LLPointer<LLViewerFetchedTexture> img = LLViewerTextureManager::getFetchedTextureFromUrl(imageurl, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
- img->setBoostLevel(LLViewerTexture::BOOST_MAP);
+ LLPointer<LLViewerFetchedTexture> img = LLViewerTextureManager::getFetchedTextureFromUrl(imageurl, FTT_MAP_TILE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ img->setBoostLevel(LLGLTexture::BOOST_MAP);
// Return the smart pointer
return img;
diff --git a/indra/newview/llworldmipmap.h b/indra/newview/llworldmipmap.h
index 963aac1403..963aac1403 100644..100755
--- a/indra/newview/llworldmipmap.h
+++ b/indra/newview/llworldmipmap.h
diff --git a/indra/newview/llxmlrpclistener.cpp b/indra/newview/llxmlrpclistener.cpp
index 97a9eb7f5f..97a9eb7f5f 100644..100755
--- a/indra/newview/llxmlrpclistener.cpp
+++ b/indra/newview/llxmlrpclistener.cpp
diff --git a/indra/newview/llxmlrpclistener.h b/indra/newview/llxmlrpclistener.h
index 58b38ce1cf..58b38ce1cf 100644..100755
--- a/indra/newview/llxmlrpclistener.h
+++ b/indra/newview/llxmlrpclistener.h
diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp
index 0da70d398b..0da70d398b 100644..100755
--- a/indra/newview/llxmlrpctransaction.cpp
+++ b/indra/newview/llxmlrpctransaction.cpp
diff --git a/indra/newview/llxmlrpctransaction.h b/indra/newview/llxmlrpctransaction.h
index f2589c7f41..f2589c7f41 100644..100755
--- a/indra/newview/llxmlrpctransaction.h
+++ b/indra/newview/llxmlrpctransaction.h
diff --git a/indra/newview/macmain.h b/indra/newview/macmain.h
index 11c909a8c3..11c909a8c3 100644..100755
--- a/indra/newview/macmain.h
+++ b/indra/newview/macmain.h
diff --git a/indra/newview/macutil_Prefix.h b/indra/newview/macutil_Prefix.h
index b54a764a62..b54a764a62 100644..100755
--- a/indra/newview/macutil_Prefix.h
+++ b/indra/newview/macutil_Prefix.h
diff --git a/indra/newview/macview.r b/indra/newview/macview.r
index 8124232cf1..8124232cf1 100644..100755
--- a/indra/newview/macview.r
+++ b/indra/newview/macview.r
diff --git a/indra/newview/macview_Prefix.h b/indra/newview/macview_Prefix.h
index 5936197a85..5936197a85 100644..100755
--- a/indra/newview/macview_Prefix.h
+++ b/indra/newview/macview_Prefix.h
diff --git a/indra/newview/nl.lproj/language.txt b/indra/newview/nl.lproj/language.txt
index d5f5c2a19c..d5f5c2a19c 100644..100755
--- a/indra/newview/nl.lproj/language.txt
+++ b/indra/newview/nl.lproj/language.txt
diff --git a/indra/newview/noise.cpp b/indra/newview/noise.cpp
index 5f2c718b49..5f2c718b49 100644..100755
--- a/indra/newview/noise.cpp
+++ b/indra/newview/noise.cpp
diff --git a/indra/newview/noise.h b/indra/newview/noise.h
index 0923bffcf2..0923bffcf2 100644..100755
--- a/indra/newview/noise.h
+++ b/indra/newview/noise.h
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 9f0e2906d0..7eed9acb4b 100644..100755
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -71,6 +71,7 @@
#include "llhudtext.h"
#include "lllightconstants.h"
#include "llmeshrepository.h"
+#include "llpipelinelistener.h"
#include "llresmgr.h"
#include "llselectmgr.h"
#include "llsky.h"
@@ -377,6 +378,8 @@ BOOL LLPipeline::sMemAllocationThrottled = FALSE;
S32 LLPipeline::sVisibleLightCount = 0;
F32 LLPipeline::sMinRenderSize = 0.f;
+// EventHost API LLPipeline listener.
+static LLPipelineListener sPipelineListener;
static LLCullResult* sCull = NULL;
@@ -491,19 +494,29 @@ void LLPipeline::init()
LLViewerStats::getInstance()->mTrianglesDrawnStat.reset();
resetFrameStats();
- for (U32 i = 0; i < NUM_RENDER_TYPES; ++i)
+ if (gSavedSettings.getBOOL("DisableAllRenderFeatures"))
{
- mRenderTypeEnabled[i] = TRUE; //all rendering types start enabled
+ clearAllRenderDebugFeatures();
}
+ else
+ {
+ setAllRenderDebugFeatures(); // By default, all debugging features on
+ }
+ clearAllRenderDebugDisplays(); // All debug displays off
- mRenderDebugFeatureMask = 0xffffffff; // All debugging features on
- mRenderDebugMask = 0; // All debug starts off
-
- // Don't turn on ground when this is set
- // Mac Books with intel 950s need this
- if(!gSavedSettings.getBOOL("RenderGround"))
+ if (gSavedSettings.getBOOL("DisableAllRenderTypes"))
{
- toggleRenderType(RENDER_TYPE_GROUND);
+ clearAllRenderTypes();
+ }
+ else
+ {
+ setAllRenderTypes(); // By default, all rendering types start enabled
+ // Don't turn on ground when this is set
+ // Mac Books with intel 950s need this
+ if(!gSavedSettings.getBOOL("RenderGround"))
+ {
+ toggleRenderType(RENDER_TYPE_GROUND);
+ }
}
// make sure RenderPerformanceTest persists (hackity hack hack)
@@ -3293,11 +3306,6 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera)
{
drawablep->setVisible(camera, NULL, FALSE);
}
- else if (drawablep->isState(LLDrawable::CLEAR_INVISIBLE))
- {
- // clear invisible flag here to avoid single frame glitch
- drawablep->clearState(LLDrawable::FORCE_INVISIBLE|LLDrawable::CLEAR_INVISIBLE);
- }
}
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
@@ -5917,7 +5925,6 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
if (light->isLightSpotlight() // directional (spot-)light
&& (LLPipeline::sRenderDeferred || RenderSpotLightsInNondeferred)) // these are only rendered as GL spotlights if we're in deferred rendering mode *or* the setting forces them on
{
- LLVector3 spotparams = light->getSpotLightParams();
LLQuaternion quat = light->getRenderRotation();
LLVector3 at_axis(0,0,-1); // this matches deferred rendering's object light direction
at_axis *= quat;
@@ -6448,6 +6455,22 @@ void LLPipeline::setRenderDebugFeatureControl(U32 bit, bool value)
}
}
+void LLPipeline::pushRenderDebugFeatureMask()
+{
+ mRenderDebugFeatureStack.push(mRenderDebugFeatureMask);
+}
+
+void LLPipeline::popRenderDebugFeatureMask()
+{
+ if (mRenderDebugFeatureStack.empty())
+ {
+ llerrs << "Depleted render feature stack." << llendl;
+ }
+
+ mRenderDebugFeatureMask = mRenderDebugFeatureStack.top();
+ mRenderDebugFeatureStack.pop();
+}
+
// static
void LLPipeline::setRenderScriptedBeacons(BOOL val)
{
@@ -9081,9 +9104,6 @@ BOOL LLPipeline::getVisiblePointCloud(LLCamera& camera, LLVector3& min, LLVector
3,7
};
- LLVector3 center = (max+min)*0.5f;
- LLVector3 size = (max-min)*0.5f;
-
for (U32 i = 0; i < 12; i++)
{
for (U32 j = 0; j < 6; ++j)
@@ -9309,7 +9329,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
mSunOrthoClipPlanes = LLVector4(clip, clip.mV[2]*clip.mV[2]/clip.mV[1]);
//currently used for amount to extrude frusta corners for constructing shadow frusta
- LLVector3 n = RenderShadowNearDist;
+ //LLVector3 n = RenderShadowNearDist;
//F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] };
//put together a universal "near clip" plane for shadow frusta
@@ -10414,6 +10434,22 @@ void LLPipeline::clearRenderTypeMask(U32 type, ...)
}
}
+void LLPipeline::setAllRenderTypes()
+{
+ for (U32 i = 0; i < NUM_RENDER_TYPES; ++i)
+ {
+ mRenderTypeEnabled[i] = TRUE;
+ }
+}
+
+void LLPipeline::clearAllRenderTypes()
+{
+ for (U32 i = 0; i < NUM_RENDER_TYPES; ++i)
+ {
+ mRenderTypeEnabled[i] = FALSE;
+ }
+}
+
void LLPipeline::addDebugBlip(const LLVector3& position, const LLColor4& color)
{
DebugBlip blip(position, color);
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 36abeca295..a8db93585e 100644..100755
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -324,20 +324,28 @@ public:
BOOL hasRenderDebugFeatureMask(const U32 mask) const { return (mRenderDebugFeatureMask & mask) ? TRUE : FALSE; }
BOOL hasRenderDebugMask(const U32 mask) const { return (mRenderDebugMask & mask) ? TRUE : FALSE; }
-
-
+ void setAllRenderDebugFeatures() { mRenderDebugFeatureMask = 0xffffffff; }
+ void clearAllRenderDebugFeatures() { mRenderDebugFeatureMask = 0x0; }
+ void setAllRenderDebugDisplays() { mRenderDebugMask = 0xffffffff; }
+ void clearAllRenderDebugDisplays() { mRenderDebugMask = 0x0; }
BOOL hasRenderType(const U32 type) const;
BOOL hasAnyRenderType(const U32 type, ...) const;
void setRenderTypeMask(U32 type, ...);
- void orRenderTypeMask(U32 type, ...);
+ // This is equivalent to 'setRenderTypeMask'
+ //void orRenderTypeMask(U32 type, ...);
void andRenderTypeMask(U32 type, ...);
void clearRenderTypeMask(U32 type, ...);
+ void setAllRenderTypes();
+ void clearAllRenderTypes();
void pushRenderTypeMask();
void popRenderTypeMask();
+ void pushRenderDebugFeatureMask();
+ void popRenderDebugFeatureMask();
+
static void toggleRenderType(U32 type);
// For UI control of render features
@@ -634,6 +642,7 @@ protected:
U32 mRenderDebugFeatureMask;
U32 mRenderDebugMask;
+ std::stack<U32> mRenderDebugFeatureStack;
U32 mOldRenderDebugMask;
diff --git a/indra/newview/pl.lproj/language.txt b/indra/newview/pl.lproj/language.txt
index 55239f3c18..55239f3c18 100644..100755
--- a/indra/newview/pl.lproj/language.txt
+++ b/indra/newview/pl.lproj/language.txt
diff --git a/indra/newview/pt.lproj/language.txt b/indra/newview/pt.lproj/language.txt
index 9e3340eca2..9e3340eca2 100644..100755
--- a/indra/newview/pt.lproj/language.txt
+++ b/indra/newview/pt.lproj/language.txt
diff --git a/indra/newview/res-sdl/arrow.BMP b/indra/newview/res-sdl/arrow.BMP
index a8f6da64b5..a8f6da64b5 100644..100755
--- a/indra/newview/res-sdl/arrow.BMP
+++ b/indra/newview/res-sdl/arrow.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowcop.BMP b/indra/newview/res-sdl/arrowcop.BMP
index 1a26a0df34..1a26a0df34 100644..100755
--- a/indra/newview/res-sdl/arrowcop.BMP
+++ b/indra/newview/res-sdl/arrowcop.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowcopmulti.BMP b/indra/newview/res-sdl/arrowcopmulti.BMP
index 48f153cef6..48f153cef6 100644..100755
--- a/indra/newview/res-sdl/arrowcopmulti.BMP
+++ b/indra/newview/res-sdl/arrowcopmulti.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowdrag.BMP b/indra/newview/res-sdl/arrowdrag.BMP
index cd868eec20..cd868eec20 100644..100755
--- a/indra/newview/res-sdl/arrowdrag.BMP
+++ b/indra/newview/res-sdl/arrowdrag.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/circleandline.BMP b/indra/newview/res-sdl/circleandline.BMP
index 284ae8b7d5..284ae8b7d5 100644..100755
--- a/indra/newview/res-sdl/circleandline.BMP
+++ b/indra/newview/res-sdl/circleandline.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/cross.BMP b/indra/newview/res-sdl/cross.BMP
index 0b4672d4d6..0b4672d4d6 100644..100755
--- a/indra/newview/res-sdl/cross.BMP
+++ b/indra/newview/res-sdl/cross.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/hand.BMP b/indra/newview/res-sdl/hand.BMP
index 2a092fbb7f..2a092fbb7f 100644..100755
--- a/indra/newview/res-sdl/hand.BMP
+++ b/indra/newview/res-sdl/hand.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/ibeam.BMP b/indra/newview/res-sdl/ibeam.BMP
index 820904a228..820904a228 100644..100755
--- a/indra/newview/res-sdl/ibeam.BMP
+++ b/indra/newview/res-sdl/ibeam.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrow.BMP b/indra/newview/res-sdl/llarrow.BMP
index a8f6da64b5..a8f6da64b5 100644..100755
--- a/indra/newview/res-sdl/llarrow.BMP
+++ b/indra/newview/res-sdl/llarrow.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowdrag.BMP b/indra/newview/res-sdl/llarrowdrag.BMP
index cd868eec20..cd868eec20 100644..100755
--- a/indra/newview/res-sdl/llarrowdrag.BMP
+++ b/indra/newview/res-sdl/llarrowdrag.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowdragmulti.BMP b/indra/newview/res-sdl/llarrowdragmulti.BMP
index fb528bc92d..fb528bc92d 100644..100755
--- a/indra/newview/res-sdl/llarrowdragmulti.BMP
+++ b/indra/newview/res-sdl/llarrowdragmulti.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowlocked.BMP b/indra/newview/res-sdl/llarrowlocked.BMP
index 0aaa441ab1..0aaa441ab1 100644..100755
--- a/indra/newview/res-sdl/llarrowlocked.BMP
+++ b/indra/newview/res-sdl/llarrowlocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llgrablocked.BMP b/indra/newview/res-sdl/llgrablocked.BMP
index 847439670f..847439670f 100644..100755
--- a/indra/newview/res-sdl/llgrablocked.BMP
+++ b/indra/newview/res-sdl/llgrablocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llno.BMP b/indra/newview/res-sdl/llno.BMP
index 284ae8b7d5..284ae8b7d5 100644..100755
--- a/indra/newview/res-sdl/llno.BMP
+++ b/indra/newview/res-sdl/llno.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llnolocked.BMP b/indra/newview/res-sdl/llnolocked.BMP
index 61f0170cb3..61f0170cb3 100644..100755
--- a/indra/newview/res-sdl/llnolocked.BMP
+++ b/indra/newview/res-sdl/llnolocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolcamera.BMP b/indra/newview/res-sdl/lltoolcamera.BMP
index c961d7a49c..c961d7a49c 100644..100755
--- a/indra/newview/res-sdl/lltoolcamera.BMP
+++ b/indra/newview/res-sdl/lltoolcamera.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolcreate.BMP b/indra/newview/res-sdl/lltoolcreate.BMP
index 08a4a9322d..08a4a9322d 100644..100755
--- a/indra/newview/res-sdl/lltoolcreate.BMP
+++ b/indra/newview/res-sdl/lltoolcreate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolfocus.BMP b/indra/newview/res-sdl/lltoolfocus.BMP
index afb90a95e3..afb90a95e3 100644..100755
--- a/indra/newview/res-sdl/lltoolfocus.BMP
+++ b/indra/newview/res-sdl/lltoolfocus.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolgrab.BMP b/indra/newview/res-sdl/lltoolgrab.BMP
index f2ac68bf3c..f2ac68bf3c 100644..100755
--- a/indra/newview/res-sdl/lltoolgrab.BMP
+++ b/indra/newview/res-sdl/lltoolgrab.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolland.BMP b/indra/newview/res-sdl/lltoolland.BMP
index 64e6365625..64e6365625 100644..100755
--- a/indra/newview/res-sdl/lltoolland.BMP
+++ b/indra/newview/res-sdl/lltoolland.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpan.BMP b/indra/newview/res-sdl/lltoolpan.BMP
index ffbef21ec7..ffbef21ec7 100644..100755
--- a/indra/newview/res-sdl/lltoolpan.BMP
+++ b/indra/newview/res-sdl/lltoolpan.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpathfinding.BMP b/indra/newview/res-sdl/lltoolpathfinding.BMP
index a567951b7a..a567951b7a 100644..100755
--- a/indra/newview/res-sdl/lltoolpathfinding.BMP
+++ b/indra/newview/res-sdl/lltoolpathfinding.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpathfindingpathend.BMP b/indra/newview/res-sdl/lltoolpathfindingpathend.BMP
index aacea8237f..aacea8237f 100644..100755
--- a/indra/newview/res-sdl/lltoolpathfindingpathend.BMP
+++ b/indra/newview/res-sdl/lltoolpathfindingpathend.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpathfindingpathendadd.BMP b/indra/newview/res-sdl/lltoolpathfindingpathendadd.BMP
index fa19f3f105..fa19f3f105 100644..100755
--- a/indra/newview/res-sdl/lltoolpathfindingpathendadd.BMP
+++ b/indra/newview/res-sdl/lltoolpathfindingpathendadd.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpathfindingpathstart.BMP b/indra/newview/res-sdl/lltoolpathfindingpathstart.BMP
index 912b7f931a..912b7f931a 100644..100755
--- a/indra/newview/res-sdl/lltoolpathfindingpathstart.BMP
+++ b/indra/newview/res-sdl/lltoolpathfindingpathstart.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpathfindingpathstartadd.BMP b/indra/newview/res-sdl/lltoolpathfindingpathstartadd.BMP
index 4e8999ae0b..4e8999ae0b 100644..100755
--- a/indra/newview/res-sdl/lltoolpathfindingpathstartadd.BMP
+++ b/indra/newview/res-sdl/lltoolpathfindingpathstartadd.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpipette.BMP b/indra/newview/res-sdl/lltoolpipette.BMP
index 2d27118289..2d27118289 100644..100755
--- a/indra/newview/res-sdl/lltoolpipette.BMP
+++ b/indra/newview/res-sdl/lltoolpipette.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolrotate.BMP b/indra/newview/res-sdl/lltoolrotate.BMP
index dd84673018..dd84673018 100644..100755
--- a/indra/newview/res-sdl/lltoolrotate.BMP
+++ b/indra/newview/res-sdl/lltoolrotate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolscale.BMP b/indra/newview/res-sdl/lltoolscale.BMP
index 882515e5e3..882515e5e3 100644..100755
--- a/indra/newview/res-sdl/lltoolscale.BMP
+++ b/indra/newview/res-sdl/lltoolscale.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltooltranslate.BMP b/indra/newview/res-sdl/lltooltranslate.BMP
index d084f6a026..d084f6a026 100644..100755
--- a/indra/newview/res-sdl/lltooltranslate.BMP
+++ b/indra/newview/res-sdl/lltooltranslate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolzoomin.BMP b/indra/newview/res-sdl/lltoolzoomin.BMP
index e4e46cc702..e4e46cc702 100644..100755
--- a/indra/newview/res-sdl/lltoolzoomin.BMP
+++ b/indra/newview/res-sdl/lltoolzoomin.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolzoomout.BMP b/indra/newview/res-sdl/lltoolzoomout.BMP
index 7f958383ab..7f958383ab 100644..100755
--- a/indra/newview/res-sdl/lltoolzoomout.BMP
+++ b/indra/newview/res-sdl/lltoolzoomout.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizenesw.BMP b/indra/newview/res-sdl/sizenesw.BMP
index 559579f40e..559579f40e 100644..100755
--- a/indra/newview/res-sdl/sizenesw.BMP
+++ b/indra/newview/res-sdl/sizenesw.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizens.BMP b/indra/newview/res-sdl/sizens.BMP
index 8373077dff..8373077dff 100644..100755
--- a/indra/newview/res-sdl/sizens.BMP
+++ b/indra/newview/res-sdl/sizens.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizenwse.BMP b/indra/newview/res-sdl/sizenwse.BMP
index 6d069fa765..6d069fa765 100644..100755
--- a/indra/newview/res-sdl/sizenwse.BMP
+++ b/indra/newview/res-sdl/sizenwse.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizewe.BMP b/indra/newview/res-sdl/sizewe.BMP
index 878df453a4..878df453a4 100644..100755
--- a/indra/newview/res-sdl/sizewe.BMP
+++ b/indra/newview/res-sdl/sizewe.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolbuy.BMP b/indra/newview/res-sdl/toolbuy.BMP
index 07e9273721..07e9273721 100644..100755
--- a/indra/newview/res-sdl/toolbuy.BMP
+++ b/indra/newview/res-sdl/toolbuy.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolmediaopen.BMP b/indra/newview/res-sdl/toolmediaopen.BMP
index ac4b231994..ac4b231994 100644..100755
--- a/indra/newview/res-sdl/toolmediaopen.BMP
+++ b/indra/newview/res-sdl/toolmediaopen.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolopen.BMP b/indra/newview/res-sdl/toolopen.BMP
index 5b87979304..5b87979304 100644..100755
--- a/indra/newview/res-sdl/toolopen.BMP
+++ b/indra/newview/res-sdl/toolopen.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpause.BMP b/indra/newview/res-sdl/toolpause.BMP
index dd2c6857d2..dd2c6857d2 100644..100755
--- a/indra/newview/res-sdl/toolpause.BMP
+++ b/indra/newview/res-sdl/toolpause.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject.BMP b/indra/newview/res-sdl/toolpickobject.BMP
index 25469fc3a8..25469fc3a8 100644..100755
--- a/indra/newview/res-sdl/toolpickobject.BMP
+++ b/indra/newview/res-sdl/toolpickobject.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject2.BMP b/indra/newview/res-sdl/toolpickobject2.BMP
index 09df69e675..09df69e675 100644..100755
--- a/indra/newview/res-sdl/toolpickobject2.BMP
+++ b/indra/newview/res-sdl/toolpickobject2.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject3.BMP b/indra/newview/res-sdl/toolpickobject3.BMP
index fc28698050..fc28698050 100644..100755
--- a/indra/newview/res-sdl/toolpickobject3.BMP
+++ b/indra/newview/res-sdl/toolpickobject3.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolplay.BMP b/indra/newview/res-sdl/toolplay.BMP
index 9c40d7dbec..9c40d7dbec 100644..100755
--- a/indra/newview/res-sdl/toolplay.BMP
+++ b/indra/newview/res-sdl/toolplay.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolsit.BMP b/indra/newview/res-sdl/toolsit.BMP
index 8ce59ae97a..8ce59ae97a 100644..100755
--- a/indra/newview/res-sdl/toolsit.BMP
+++ b/indra/newview/res-sdl/toolsit.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/wait.BMP b/indra/newview/res-sdl/wait.BMP
index 26dec59afe..26dec59afe 100644..100755
--- a/indra/newview/res-sdl/wait.BMP
+++ b/indra/newview/res-sdl/wait.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/working.BMP b/indra/newview/res-sdl/working.BMP
index 26dec59afe..26dec59afe 100644..100755
--- a/indra/newview/res-sdl/working.BMP
+++ b/indra/newview/res-sdl/working.BMP
Binary files differ
diff --git a/indra/newview/res/arrow.cur b/indra/newview/res/arrow.cur
index d11b68867f..d11b68867f 100644..100755
--- a/indra/newview/res/arrow.cur
+++ b/indra/newview/res/arrow.cur
Binary files differ
diff --git a/indra/newview/res/arrowcop.cur b/indra/newview/res/arrowcop.cur
index 8b5902c13d..8b5902c13d 100644..100755
--- a/indra/newview/res/arrowcop.cur
+++ b/indra/newview/res/arrowcop.cur
Binary files differ
diff --git a/indra/newview/res/arrowcopmulti.cur b/indra/newview/res/arrowcopmulti.cur
index 2620522616..2620522616 100644..100755
--- a/indra/newview/res/arrowcopmulti.cur
+++ b/indra/newview/res/arrowcopmulti.cur
Binary files differ
diff --git a/indra/newview/res/arrowdrag.cur b/indra/newview/res/arrowdrag.cur
index 77b2d1a0fb..77b2d1a0fb 100644..100755
--- a/indra/newview/res/arrowdrag.cur
+++ b/indra/newview/res/arrowdrag.cur
Binary files differ
diff --git a/indra/newview/res/bitmap2.bmp b/indra/newview/res/bitmap2.bmp
index 770b07558c..770b07558c 100644..100755
--- a/indra/newview/res/bitmap2.bmp
+++ b/indra/newview/res/bitmap2.bmp
Binary files differ
diff --git a/indra/newview/res/circleandline.cur b/indra/newview/res/circleandline.cur
index 00050f5501..00050f5501 100644..100755
--- a/indra/newview/res/circleandline.cur
+++ b/indra/newview/res/circleandline.cur
Binary files differ
diff --git a/indra/newview/res/have_artwork_bundle.marker b/indra/newview/res/have_artwork_bundle.marker
index 1dbb238d53..1dbb238d53 100644..100755
--- a/indra/newview/res/have_artwork_bundle.marker
+++ b/indra/newview/res/have_artwork_bundle.marker
diff --git a/indra/newview/res/icon1.ico b/indra/newview/res/icon1.ico
index ad607598fa..ad607598fa 100644..100755
--- a/indra/newview/res/icon1.ico
+++ b/indra/newview/res/icon1.ico
Binary files differ
diff --git a/indra/newview/res/install_icon.BMP b/indra/newview/res/install_icon.BMP
index 09df573870..09df573870 100644..100755
--- a/indra/newview/res/install_icon.BMP
+++ b/indra/newview/res/install_icon.BMP
Binary files differ
diff --git a/indra/newview/res/llarrow.cur b/indra/newview/res/llarrow.cur
index 8a922d7f3f..8a922d7f3f 100644..100755
--- a/indra/newview/res/llarrow.cur
+++ b/indra/newview/res/llarrow.cur
Binary files differ
diff --git a/indra/newview/res/llarrowdrag.cur b/indra/newview/res/llarrowdrag.cur
index 77b2d1a0fb..77b2d1a0fb 100644..100755
--- a/indra/newview/res/llarrowdrag.cur
+++ b/indra/newview/res/llarrowdrag.cur
Binary files differ
diff --git a/indra/newview/res/llarrowdragmulti.cur b/indra/newview/res/llarrowdragmulti.cur
index f0853b899c..f0853b899c 100644..100755
--- a/indra/newview/res/llarrowdragmulti.cur
+++ b/indra/newview/res/llarrowdragmulti.cur
Binary files differ
diff --git a/indra/newview/res/llarrowlocked.cur b/indra/newview/res/llarrowlocked.cur
index 5b81f147ef..5b81f147ef 100644..100755
--- a/indra/newview/res/llarrowlocked.cur
+++ b/indra/newview/res/llarrowlocked.cur
Binary files differ
diff --git a/indra/newview/res/llgrablocked.cur b/indra/newview/res/llgrablocked.cur
index 73dea154e6..73dea154e6 100644..100755
--- a/indra/newview/res/llgrablocked.cur
+++ b/indra/newview/res/llgrablocked.cur
Binary files differ
diff --git a/indra/newview/res/llno.cur b/indra/newview/res/llno.cur
index 00050f5501..00050f5501 100644..100755
--- a/indra/newview/res/llno.cur
+++ b/indra/newview/res/llno.cur
Binary files differ
diff --git a/indra/newview/res/llnolocked.cur b/indra/newview/res/llnolocked.cur
index dfa4a05509..dfa4a05509 100644..100755
--- a/indra/newview/res/llnolocked.cur
+++ b/indra/newview/res/llnolocked.cur
Binary files differ
diff --git a/indra/newview/res/lltoolcamera.cur b/indra/newview/res/lltoolcamera.cur
index e0f19461c7..e0f19461c7 100644..100755
--- a/indra/newview/res/lltoolcamera.cur
+++ b/indra/newview/res/lltoolcamera.cur
Binary files differ
diff --git a/indra/newview/res/lltoolcreate.cur b/indra/newview/res/lltoolcreate.cur
index 716f328211..716f328211 100644..100755
--- a/indra/newview/res/lltoolcreate.cur
+++ b/indra/newview/res/lltoolcreate.cur
Binary files differ
diff --git a/indra/newview/res/lltoolfocus.cur b/indra/newview/res/lltoolfocus.cur
index 7b38ad3af9..7b38ad3af9 100644..100755
--- a/indra/newview/res/lltoolfocus.cur
+++ b/indra/newview/res/lltoolfocus.cur
Binary files differ
diff --git a/indra/newview/res/lltoolgrab.cur b/indra/newview/res/lltoolgrab.cur
index 4484001357..4484001357 100644..100755
--- a/indra/newview/res/lltoolgrab.cur
+++ b/indra/newview/res/lltoolgrab.cur
Binary files differ
diff --git a/indra/newview/res/lltoolland.cur b/indra/newview/res/lltoolland.cur
index e22ef6c73d..e22ef6c73d 100644..100755
--- a/indra/newview/res/lltoolland.cur
+++ b/indra/newview/res/lltoolland.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpan.cur b/indra/newview/res/lltoolpan.cur
index 0a348669b6..0a348669b6 100644..100755
--- a/indra/newview/res/lltoolpan.cur
+++ b/indra/newview/res/lltoolpan.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpathfinding.cur b/indra/newview/res/lltoolpathfinding.cur
index 2aba2daa45..2aba2daa45 100644..100755
--- a/indra/newview/res/lltoolpathfinding.cur
+++ b/indra/newview/res/lltoolpathfinding.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpathfindingpathend.cur b/indra/newview/res/lltoolpathfindingpathend.cur
index e951a6956b..e951a6956b 100644..100755
--- a/indra/newview/res/lltoolpathfindingpathend.cur
+++ b/indra/newview/res/lltoolpathfindingpathend.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpathfindingpathendadd.cur b/indra/newview/res/lltoolpathfindingpathendadd.cur
index 0bf3201b23..0bf3201b23 100644..100755
--- a/indra/newview/res/lltoolpathfindingpathendadd.cur
+++ b/indra/newview/res/lltoolpathfindingpathendadd.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpathfindingpathstart.cur b/indra/newview/res/lltoolpathfindingpathstart.cur
index fecc716990..fecc716990 100644..100755
--- a/indra/newview/res/lltoolpathfindingpathstart.cur
+++ b/indra/newview/res/lltoolpathfindingpathstart.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpathfindingpathstartadd.cur b/indra/newview/res/lltoolpathfindingpathstartadd.cur
index 45e23e5161..45e23e5161 100644..100755
--- a/indra/newview/res/lltoolpathfindingpathstartadd.cur
+++ b/indra/newview/res/lltoolpathfindingpathstartadd.cur
Binary files differ
diff --git a/indra/newview/res/lltoolpipette.cur b/indra/newview/res/lltoolpipette.cur
index b4780967f9..b4780967f9 100644..100755
--- a/indra/newview/res/lltoolpipette.cur
+++ b/indra/newview/res/lltoolpipette.cur
Binary files differ
diff --git a/indra/newview/res/lltoolrotate.cur b/indra/newview/res/lltoolrotate.cur
index adbadaee84..adbadaee84 100644..100755
--- a/indra/newview/res/lltoolrotate.cur
+++ b/indra/newview/res/lltoolrotate.cur
Binary files differ
diff --git a/indra/newview/res/lltoolscale.cur b/indra/newview/res/lltoolscale.cur
index 4b6d20bfad..4b6d20bfad 100644..100755
--- a/indra/newview/res/lltoolscale.cur
+++ b/indra/newview/res/lltoolscale.cur
Binary files differ
diff --git a/indra/newview/res/lltooltranslate.cur b/indra/newview/res/lltooltranslate.cur
index 2df80de0a6..2df80de0a6 100644..100755
--- a/indra/newview/res/lltooltranslate.cur
+++ b/indra/newview/res/lltooltranslate.cur
Binary files differ
diff --git a/indra/newview/res/lltoolzoomin.cur b/indra/newview/res/lltoolzoomin.cur
index 0b5d80101e..0b5d80101e 100644..100755
--- a/indra/newview/res/lltoolzoomin.cur
+++ b/indra/newview/res/lltoolzoomin.cur
Binary files differ
diff --git a/indra/newview/res/lltoolzoomout.cur b/indra/newview/res/lltoolzoomout.cur
index b33e68d1a6..b33e68d1a6 100644..100755
--- a/indra/newview/res/lltoolzoomout.cur
+++ b/indra/newview/res/lltoolzoomout.cur
Binary files differ
diff --git a/indra/newview/res/loginbackground.bmp b/indra/newview/res/loginbackground.bmp
index 288a0b0398..288a0b0398 100644..100755
--- a/indra/newview/res/loginbackground.bmp
+++ b/indra/newview/res/loginbackground.bmp
Binary files differ
diff --git a/indra/newview/res/resource.h b/indra/newview/res/resource.h
index 01d90da971..01d90da971 100644..100755
--- a/indra/newview/res/resource.h
+++ b/indra/newview/res/resource.h
diff --git a/indra/newview/res/toolbuy.cur b/indra/newview/res/toolbuy.cur
index 65bbf01d45..65bbf01d45 100644..100755
--- a/indra/newview/res/toolbuy.cur
+++ b/indra/newview/res/toolbuy.cur
Binary files differ
diff --git a/indra/newview/res/toolmediaopen.cur b/indra/newview/res/toolmediaopen.cur
index 7609989ba7..7609989ba7 100644..100755
--- a/indra/newview/res/toolmediaopen.cur
+++ b/indra/newview/res/toolmediaopen.cur
Binary files differ
diff --git a/indra/newview/res/toolopen.cur b/indra/newview/res/toolopen.cur
index 22ecbd5228..22ecbd5228 100644..100755
--- a/indra/newview/res/toolopen.cur
+++ b/indra/newview/res/toolopen.cur
Binary files differ
diff --git a/indra/newview/res/toolpause.cur b/indra/newview/res/toolpause.cur
index 7a6e85566b..7a6e85566b 100644..100755
--- a/indra/newview/res/toolpause.cur
+++ b/indra/newview/res/toolpause.cur
Binary files differ
diff --git a/indra/newview/res/toolpickobject.cur b/indra/newview/res/toolpickobject.cur
index ba482b5445..ba482b5445 100644..100755
--- a/indra/newview/res/toolpickobject.cur
+++ b/indra/newview/res/toolpickobject.cur
Binary files differ
diff --git a/indra/newview/res/toolpickobject2.cur b/indra/newview/res/toolpickobject2.cur
index b168f8d691..b168f8d691 100644..100755
--- a/indra/newview/res/toolpickobject2.cur
+++ b/indra/newview/res/toolpickobject2.cur
Binary files differ
diff --git a/indra/newview/res/toolpickobject3.cur b/indra/newview/res/toolpickobject3.cur
index 457c3a6555..457c3a6555 100644..100755
--- a/indra/newview/res/toolpickobject3.cur
+++ b/indra/newview/res/toolpickobject3.cur
Binary files differ
diff --git a/indra/newview/res/toolpipette.cur b/indra/newview/res/toolpipette.cur
index b4780967f9..b4780967f9 100644..100755
--- a/indra/newview/res/toolpipette.cur
+++ b/indra/newview/res/toolpipette.cur
Binary files differ
diff --git a/indra/newview/res/toolplay.cur b/indra/newview/res/toolplay.cur
index 0776a17bbc..0776a17bbc 100644..100755
--- a/indra/newview/res/toolplay.cur
+++ b/indra/newview/res/toolplay.cur
Binary files differ
diff --git a/indra/newview/res/toolsit.cur b/indra/newview/res/toolsit.cur
index d26b6f8638..d26b6f8638 100644..100755
--- a/indra/newview/res/toolsit.cur
+++ b/indra/newview/res/toolsit.cur
Binary files differ
diff --git a/indra/newview/res/uninstall_icon.BMP b/indra/newview/res/uninstall_icon.BMP
index 562b56676a..562b56676a 100644..100755
--- a/indra/newview/res/uninstall_icon.BMP
+++ b/indra/newview/res/uninstall_icon.BMP
Binary files differ
diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc
index df75f3f697..8587243791 100644..100755
--- a/indra/newview/res/viewerRes.rc
+++ b/indra/newview/res/viewerRes.rc
@@ -135,8 +135,8 @@ TOOLNO CURSOR "llno.cur"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,1,1,0
- PRODUCTVERSION 2,1,1,0
+ FILEVERSION ${VIEWER_VERSION_MAJOR},${VIEWER_VERSION_MINOR},${VIEWER_VERSION_PATCH},${VIEWER_VERSION_REVISION}
+ PRODUCTVERSION ${VIEWER_VERSION_MAJOR},${VIEWER_VERSION_MINOR},${VIEWER_VERSION_PATCH},${VIEWER_VERSION_REVISION}
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -153,12 +153,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Linden Lab"
VALUE "FileDescription", "Second Life"
- VALUE "FileVersion", "2.1.1.0"
+ VALUE "FileVersion", "${VIEWER_VERSION_MAJOR}.${VIEWER_VERSION_MINOR}.${VIEWER_VERSION_PATCH}.${VIEWER_VERSION_REVISION}"
VALUE "InternalName", "Second Life"
- VALUE "LegalCopyright", "Copyright � 2001-2010, Linden Research, Inc."
+ VALUE "LegalCopyright", "Copyright � 2001, Linden Research, Inc."
VALUE "OriginalFilename", "SecondLife.exe"
VALUE "ProductName", "Second Life"
- VALUE "ProductVersion", "2.1.1.0"
+ VALUE "ProductVersion", "${VIEWER_VERSION_MAJOR}.${VIEWER_VERSION_MINOR}.${VIEWER_VERSION_PATCH}.${VIEWER_VERSION_REVISION}"
END
END
BLOCK "VarFileInfo"
diff --git a/indra/newview/ru.lproj/language.txt b/indra/newview/ru.lproj/language.txt
index adc719b423..adc719b423 100644..100755
--- a/indra/newview/ru.lproj/language.txt
+++ b/indra/newview/ru.lproj/language.txt
diff --git a/indra/newview/secondlife-i686.supp b/indra/newview/secondlife-i686.supp
index 863c8364ab..863c8364ab 100644..100755
--- a/indra/newview/secondlife-i686.supp
+++ b/indra/newview/secondlife-i686.supp
diff --git a/indra/newview/secondlife.icns b/indra/newview/secondlife.icns
index 4560d4bb24..4560d4bb24 100644..100755
--- a/indra/newview/secondlife.icns
+++ b/indra/newview/secondlife.icns
Binary files differ
diff --git a/indra/newview/secondlife_firstlook.icns b/indra/newview/secondlife_firstlook.icns
index 30497915c8..30497915c8 100644..100755
--- a/indra/newview/secondlife_firstlook.icns
+++ b/indra/newview/secondlife_firstlook.icns
Binary files differ
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 0de217fc0d..42568775d9 100644..100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -102,6 +102,9 @@
name="MdBlue"
value=".07 .38 .51 1" />
<color
+ name="DkBlue"
+ value=".06 .06 .3 1" />
+ <color
name="LtRed"
value="1 0.2 0.2 1" />
<color
@@ -111,6 +114,9 @@
name="Red_80"
value="1 0 0 0.8" />
<color
+ name="DkRed"
+ value="0.3 0.06 0.06 1" />
+ <color
name="Green_80"
value="0 1 0 0.8" />
<color
@@ -830,9 +836,14 @@
name="ChatTimestampColor"
reference="White" />
<color
+ name="MenuBarBetaBgColor"
+ reference="DkBlue" />
+ <color
name="MenuBarProjectBgColor"
reference="MdBlue" />
-
+ <color
+ name="MenuBarTestBgColor"
+ reference="DkRed" />
<color
name="MeshImportTableNormalColor"
value="1 1 1 1"/>
diff --git a/indra/newview/skins/default/html/btn_purplepill_bg.png b/indra/newview/skins/default/html/btn_purplepill_bg.png
index b78127ae30..b78127ae30 100644..100755
--- a/indra/newview/skins/default/html/btn_purplepill_bg.png
+++ b/indra/newview/skins/default/html/btn_purplepill_bg.png
Binary files differ
diff --git a/indra/newview/skins/default/html/da/loading/loading.html b/indra/newview/skins/default/html/da/loading/loading.html
index 5f3426eb60..5f3426eb60 100644..100755
--- a/indra/newview/skins/default/html/da/loading/loading.html
+++ b/indra/newview/skins/default/html/da/loading/loading.html
diff --git a/indra/newview/skins/default/html/de/loading-error/index.html b/indra/newview/skins/default/html/de/loading-error/index.html
index fbde825b4a..fbde825b4a 100644..100755
--- a/indra/newview/skins/default/html/de/loading-error/index.html
+++ b/indra/newview/skins/default/html/de/loading-error/index.html
diff --git a/indra/newview/skins/default/html/de/loading/loading.html b/indra/newview/skins/default/html/de/loading/loading.html
index 44a621b216..44a621b216 100644..100755
--- a/indra/newview/skins/default/html/de/loading/loading.html
+++ b/indra/newview/skins/default/html/de/loading/loading.html
diff --git a/indra/newview/skins/default/html/en-us/help-offline/index.html b/indra/newview/skins/default/html/en-us/help-offline/index.html
index bf3677603e..bf3677603e 100644..100755
--- a/indra/newview/skins/default/html/en-us/help-offline/index.html
+++ b/indra/newview/skins/default/html/en-us/help-offline/index.html
diff --git a/indra/newview/skins/default/html/en-us/loading-error/index.html b/indra/newview/skins/default/html/en-us/loading-error/index.html
index 71f9c86f76..71f9c86f76 100644..100755
--- a/indra/newview/skins/default/html/en-us/loading-error/index.html
+++ b/indra/newview/skins/default/html/en-us/loading-error/index.html
diff --git a/indra/newview/skins/default/html/en-us/loading/loading.html b/indra/newview/skins/default/html/en-us/loading/loading.html
index 1c62d2f73e..1c62d2f73e 100644..100755
--- a/indra/newview/skins/default/html/en-us/loading/loading.html
+++ b/indra/newview/skins/default/html/en-us/loading/loading.html
diff --git a/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif b/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif
index e3ccc7c769..e3ccc7c769 100644..100755
--- a/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif
+++ b/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif
Binary files differ
diff --git a/indra/newview/skins/default/html/es/loading-error/index.html b/indra/newview/skins/default/html/es/loading-error/index.html
index c1e75bc475..c1e75bc475 100644..100755
--- a/indra/newview/skins/default/html/es/loading-error/index.html
+++ b/indra/newview/skins/default/html/es/loading-error/index.html
diff --git a/indra/newview/skins/default/html/es/loading/loading.html b/indra/newview/skins/default/html/es/loading/loading.html
index c4260b34c0..c4260b34c0 100644..100755
--- a/indra/newview/skins/default/html/es/loading/loading.html
+++ b/indra/newview/skins/default/html/es/loading/loading.html
diff --git a/indra/newview/skins/default/html/fr/loading-error/index.html b/indra/newview/skins/default/html/fr/loading-error/index.html
index 69c796cb55..69c796cb55 100644..100755
--- a/indra/newview/skins/default/html/fr/loading-error/index.html
+++ b/indra/newview/skins/default/html/fr/loading-error/index.html
diff --git a/indra/newview/skins/default/html/fr/loading/loading.html b/indra/newview/skins/default/html/fr/loading/loading.html
index b3953448e9..b3953448e9 100644..100755
--- a/indra/newview/skins/default/html/fr/loading/loading.html
+++ b/indra/newview/skins/default/html/fr/loading/loading.html
diff --git a/indra/newview/skins/default/html/hu/loading/loading.html b/indra/newview/skins/default/html/hu/loading/loading.html
index ab15a073ba..ab15a073ba 100644..100755
--- a/indra/newview/skins/default/html/hu/loading/loading.html
+++ b/indra/newview/skins/default/html/hu/loading/loading.html
diff --git a/indra/newview/skins/default/html/it/loading/loading.html b/indra/newview/skins/default/html/it/loading/loading.html
index ab37e41f04..ab37e41f04 100644..100755
--- a/indra/newview/skins/default/html/it/loading/loading.html
+++ b/indra/newview/skins/default/html/it/loading/loading.html
diff --git a/indra/newview/skins/default/html/ja/loading-error/index.html b/indra/newview/skins/default/html/ja/loading-error/index.html
index d969c03098..d969c03098 100644..100755
--- a/indra/newview/skins/default/html/ja/loading-error/index.html
+++ b/indra/newview/skins/default/html/ja/loading-error/index.html
diff --git a/indra/newview/skins/default/html/ja/loading/loading.html b/indra/newview/skins/default/html/ja/loading/loading.html
index 35cf74a35f..35cf74a35f 100644..100755
--- a/indra/newview/skins/default/html/ja/loading/loading.html
+++ b/indra/newview/skins/default/html/ja/loading/loading.html
diff --git a/indra/newview/skins/default/html/ko/loading-error/index.html b/indra/newview/skins/default/html/ko/loading-error/index.html
index 02b87132b9..02b87132b9 100644..100755
--- a/indra/newview/skins/default/html/ko/loading-error/index.html
+++ b/indra/newview/skins/default/html/ko/loading-error/index.html
diff --git a/indra/newview/skins/default/html/nl/loading/loading.html b/indra/newview/skins/default/html/nl/loading/loading.html
index 0215bd7e47..0215bd7e47 100644..100755
--- a/indra/newview/skins/default/html/nl/loading/loading.html
+++ b/indra/newview/skins/default/html/nl/loading/loading.html
diff --git a/indra/newview/skins/default/html/pl/loading/loading.html b/indra/newview/skins/default/html/pl/loading/loading.html
index 50f3dfb0c5..50f3dfb0c5 100644..100755
--- a/indra/newview/skins/default/html/pl/loading/loading.html
+++ b/indra/newview/skins/default/html/pl/loading/loading.html
diff --git a/indra/newview/skins/default/html/pt/loading-error/index.html b/indra/newview/skins/default/html/pt/loading-error/index.html
index 7f17b3a7bf..7f17b3a7bf 100644..100755
--- a/indra/newview/skins/default/html/pt/loading-error/index.html
+++ b/indra/newview/skins/default/html/pt/loading-error/index.html
diff --git a/indra/newview/skins/default/html/pt/loading/loading.html b/indra/newview/skins/default/html/pt/loading/loading.html
index a83e1123d0..a83e1123d0 100644..100755
--- a/indra/newview/skins/default/html/pt/loading/loading.html
+++ b/indra/newview/skins/default/html/pt/loading/loading.html
diff --git a/indra/newview/skins/default/html/ru/loading/loading.html b/indra/newview/skins/default/html/ru/loading/loading.html
index 892c0b9f7f..892c0b9f7f 100644..100755
--- a/indra/newview/skins/default/html/ru/loading/loading.html
+++ b/indra/newview/skins/default/html/ru/loading/loading.html
diff --git a/indra/newview/skins/default/html/tr/loading/loading.html b/indra/newview/skins/default/html/tr/loading/loading.html
index 1ac07bff34..1ac07bff34 100644..100755
--- a/indra/newview/skins/default/html/tr/loading/loading.html
+++ b/indra/newview/skins/default/html/tr/loading/loading.html
diff --git a/indra/newview/skins/default/html/uk/loading/loading.html b/indra/newview/skins/default/html/uk/loading/loading.html
index 3b5b8679b4..3b5b8679b4 100644..100755
--- a/indra/newview/skins/default/html/uk/loading/loading.html
+++ b/indra/newview/skins/default/html/uk/loading/loading.html
diff --git a/indra/newview/skins/default/html/unabletoconnect.png b/indra/newview/skins/default/html/unabletoconnect.png
index 1383516509..1383516509 100644..100755
--- a/indra/newview/skins/default/html/unabletoconnect.png
+++ b/indra/newview/skins/default/html/unabletoconnect.png
Binary files differ
diff --git a/indra/newview/skins/default/html/zh/loading-error/index.html b/indra/newview/skins/default/html/zh/loading-error/index.html
index 97201318ff..97201318ff 100644..100755
--- a/indra/newview/skins/default/html/zh/loading-error/index.html
+++ b/indra/newview/skins/default/html/zh/loading-error/index.html
diff --git a/indra/newview/skins/default/html/zh/loading/loading.html b/indra/newview/skins/default/html/zh/loading/loading.html
index d1d5d25c92..d1d5d25c92 100644..100755
--- a/indra/newview/skins/default/html/zh/loading/loading.html
+++ b/indra/newview/skins/default/html/zh/loading/loading.html
diff --git a/indra/newview/skins/default/textures/Blank.png b/indra/newview/skins/default/textures/Blank.png
index f38e9f9100..f38e9f9100 100644..100755
--- a/indra/newview/skins/default/textures/Blank.png
+++ b/indra/newview/skins/default/textures/Blank.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/Rounded_Rect.png b/indra/newview/skins/default/textures/Rounded_Rect.png
index c270c28039..c270c28039 100644..100755
--- a/indra/newview/skins/default/textures/Rounded_Rect.png
+++ b/indra/newview/skins/default/textures/Rounded_Rect.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/alpha_gradient.tga b/indra/newview/skins/default/textures/alpha_gradient.tga
index 6fdba25d4e..6fdba25d4e 100644..100755
--- a/indra/newview/skins/default/textures/alpha_gradient.tga
+++ b/indra/newview/skins/default/textures/alpha_gradient.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/alpha_gradient_2d.j2c b/indra/newview/skins/default/textures/alpha_gradient_2d.j2c
index 5de5a80a65..5de5a80a65 100644..100755
--- a/indra/newview/skins/default/textures/alpha_gradient_2d.j2c
+++ b/indra/newview/skins/default/textures/alpha_gradient_2d.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/arrow_down.tga b/indra/newview/skins/default/textures/arrow_down.tga
index 81dc9d3b6c..81dc9d3b6c 100644..100755
--- a/indra/newview/skins/default/textures/arrow_down.tga
+++ b/indra/newview/skins/default/textures/arrow_down.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/arrow_up.tga b/indra/newview/skins/default/textures/arrow_up.tga
index 22195cf7fb..22195cf7fb 100644..100755
--- a/indra/newview/skins/default/textures/arrow_up.tga
+++ b/indra/newview/skins/default/textures/arrow_up.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/avatar_thumb_bkgrnd.png b/indra/newview/skins/default/textures/avatar_thumb_bkgrnd.png
index 84cc2159c1..84cc2159c1 100644..100755
--- a/indra/newview/skins/default/textures/avatar_thumb_bkgrnd.png
+++ b/indra/newview/skins/default/textures/avatar_thumb_bkgrnd.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/badge_note.j2c b/indra/newview/skins/default/textures/badge_note.j2c
index 1ab5233faf..1ab5233faf 100644..100755
--- a/indra/newview/skins/default/textures/badge_note.j2c
+++ b/indra/newview/skins/default/textures/badge_note.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/badge_ok.j2c b/indra/newview/skins/default/textures/badge_ok.j2c
index f85b880f1d..f85b880f1d 100644..100755
--- a/indra/newview/skins/default/textures/badge_ok.j2c
+++ b/indra/newview/skins/default/textures/badge_ok.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/badge_warn.j2c b/indra/newview/skins/default/textures/badge_warn.j2c
index 26437ca426..26437ca426 100644..100755
--- a/indra/newview/skins/default/textures/badge_warn.j2c
+++ b/indra/newview/skins/default/textures/badge_warn.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Avatar_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Avatar_Off.png
index 6b725e153a..6b725e153a 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Avatar_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Avatar_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_FreeCam_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_FreeCam_Off.png
index 9f22080d13..9f22080d13 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_FreeCam_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_FreeCam_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Orbit_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Orbit_Off.png
index 5b2a8eb339..5b2a8eb339 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Orbit_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Orbit_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Off.png
index 9acf7053d5..9acf7053d5 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_Off.png
index 00158a7bc2..00158a7bc2 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_On.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_On.png
index 3748f5e190..3748f5e190 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Back_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Eye_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Eye_Off.png
index 2b50986780..2b50986780 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Eye_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Eye_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_Off.png
index c49b8f9a27..c49b8f9a27 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_On.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_On.png
index bc8c4db04d..bc8c4db04d 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Front_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_Off.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_Off.png
index b919a0a152..b919a0a152 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_On.png b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_On.png
index de9da359a0..de9da359a0 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Preset_Side_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png
index c8560c0869..c8560c0869 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Out.png b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Out.png
index b09f7c64d3..b09f7c64d3 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Out.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Out.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png
index ae2c57c207..ae2c57c207 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Out.png b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Out.png
index c5cd8cca92..c5cd8cca92 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Out.png
+++ b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Out.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png b/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
index 8b58db0cba..8b58db0cba 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
+++ b/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/DownArrow.png b/indra/newview/skins/default/textures/bottomtray/DownArrow.png
index 82f58b22b9..82f58b22b9 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/DownArrow.png
+++ b/indra/newview/skins/default/textures/bottomtray/DownArrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Mouselook_View_Off.png b/indra/newview/skins/default/textures/bottomtray/Mouselook_View_Off.png
index 8d32cad95f..8d32cad95f 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Mouselook_View_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Mouselook_View_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Mouselook_View_On.png b/indra/newview/skins/default/textures/bottomtray/Mouselook_View_On.png
index 4c98e35868..4c98e35868 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Mouselook_View_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Mouselook_View_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png b/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
index 9e7291d6fb..9e7291d6fb 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Move_Run_Off.png b/indra/newview/skins/default/textures/bottomtray/Move_Run_Off.png
index e2eb38e12d..e2eb38e12d 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Move_Run_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Move_Run_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Move_Walk_Off.png b/indra/newview/skins/default/textures/bottomtray/Move_Walk_Off.png
index f314d4e001..f314d4e001 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Move_Walk_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Move_Walk_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_Off.png
index 4dddc2b391..4dddc2b391 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png
index 9f31d461b5..9f31d461b5 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Down_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Down_Off.png
index 2893c9a9f1..2893c9a9f1 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Down_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Down_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png
index f7ed4c25fb..f7ed4c25fb 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_Off.png
index 80d227b6a7..80d227b6a7 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png
index d0a825a682..d0a825a682 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Left_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Left_Off.png
index 3602efa9d9..3602efa9d9 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Left_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png
index 2f81fb1588..2f81fb1588 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Right_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Right_Off.png
index 9c3fc37dfe..9c3fc37dfe 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Right_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png
index 4f86e81a15..4f86e81a15 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_Off.png
index 282e8d62de..282e8d62de 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png
index b211371e64..b211371e64 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_Off.png
index 5039e57c32..5039e57c32 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png
index e937c3f012..e937c3f012 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Up_Off.png b/indra/newview/skins/default/textures/bottomtray/Movement_Up_Off.png
index a49c43c2cf..a49c43c2cf 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Up_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Up_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png
index ed4902f3ee..ed4902f3ee 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
index 0ac5b72b8f..0ac5b72b8f 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
+++ b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Object_View_Off.png b/indra/newview/skins/default/textures/bottomtray/Object_View_Off.png
index e9dea7e17e..e9dea7e17e 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Object_View_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Object_View_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Object_View_On.png b/indra/newview/skins/default/textures/bottomtray/Object_View_On.png
index 7a348ba22e..7a348ba22e 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Object_View_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/Object_View_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Off.png b/indra/newview/skins/default/textures/bottomtray/PanOrbit_Off.png
index 53efa3a9a9..53efa3a9a9 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/PanOrbit_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
index d7ec04237b..d7ec04237b 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Unread_Chiclet.png b/indra/newview/skins/default/textures/bottomtray/Unread_Chiclet.png
index e8fe243dc7..e8fe243dc7 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/Unread_Chiclet.png
+++ b/indra/newview/skins/default/textures/bottomtray/Unread_Chiclet.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png
index cd18ae310d..cd18ae310d 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png
+++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png
index b0ed6ee8eb..b0ed6ee8eb 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png
+++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3.png
index 14ec77b99a..14ec77b99a 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3.png
+++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off.png
index 48be51e9af..48be51e9af 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png
index be4881b64c..be4881b64c 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png
+++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
index 6cb33efb93..6cb33efb93 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
index 6cb33efb93..6cb33efb93 100644..100755
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cone.png b/indra/newview/skins/default/textures/build/Object_Cone.png
index 5167f1a820..5167f1a820 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cone.png
+++ b/indra/newview/skins/default/textures/build/Object_Cone.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cone_Selected.png b/indra/newview/skins/default/textures/build/Object_Cone_Selected.png
index d50dc69ffe..d50dc69ffe 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cone_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Cone_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cube.png b/indra/newview/skins/default/textures/build/Object_Cube.png
index e82af1ca82..e82af1ca82 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cube.png
+++ b/indra/newview/skins/default/textures/build/Object_Cube.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cube_Selected.png b/indra/newview/skins/default/textures/build/Object_Cube_Selected.png
index 3d6964530d..3d6964530d 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cube_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Cube_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cylinder.png b/indra/newview/skins/default/textures/build/Object_Cylinder.png
index fe1041d4c7..fe1041d4c7 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cylinder.png
+++ b/indra/newview/skins/default/textures/build/Object_Cylinder.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png b/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png
index 3ed0389961..3ed0389961 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Grass.png b/indra/newview/skins/default/textures/build/Object_Grass.png
index a88efd5f3e..a88efd5f3e 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Grass.png
+++ b/indra/newview/skins/default/textures/build/Object_Grass.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Grass_Selected.png b/indra/newview/skins/default/textures/build/Object_Grass_Selected.png
index 3ebd5ea7a1..3ebd5ea7a1 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Grass_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Grass_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png
index 595f64d480..595f64d480 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png
index 3bdc4d1fd5..3bdc4d1fd5 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png
index dd41d56fb3..dd41d56fb3 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png
index 0912442e29..0912442e29 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png
index 1489630624..1489630624 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png
index 33db4a2de8..33db4a2de8 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Prism.png b/indra/newview/skins/default/textures/build/Object_Prism.png
index 51c6c161a0..51c6c161a0 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Prism.png
+++ b/indra/newview/skins/default/textures/build/Object_Prism.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Prism_Selected.png b/indra/newview/skins/default/textures/build/Object_Prism_Selected.png
index 9e80fe2b84..9e80fe2b84 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Prism_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Prism_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Pyramid.png b/indra/newview/skins/default/textures/build/Object_Pyramid.png
index a147b59553..a147b59553 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Pyramid.png
+++ b/indra/newview/skins/default/textures/build/Object_Pyramid.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png b/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png
index d36bfa55d4..d36bfa55d4 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Ring.png b/indra/newview/skins/default/textures/build/Object_Ring.png
index a9790fd60c..a9790fd60c 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Ring.png
+++ b/indra/newview/skins/default/textures/build/Object_Ring.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Ring_Selected.png b/indra/newview/skins/default/textures/build/Object_Ring_Selected.png
index 962f6efb93..962f6efb93 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Ring_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Ring_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Sphere.png b/indra/newview/skins/default/textures/build/Object_Sphere.png
index 8e2dd92a82..8e2dd92a82 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Sphere.png
+++ b/indra/newview/skins/default/textures/build/Object_Sphere.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png b/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png
index 715d597144..715d597144 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tetrahedron.png b/indra/newview/skins/default/textures/build/Object_Tetrahedron.png
index 23e22b1796..23e22b1796 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tetrahedron.png
+++ b/indra/newview/skins/default/textures/build/Object_Tetrahedron.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png b/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png
index b2ea680f23..b2ea680f23 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Torus.png b/indra/newview/skins/default/textures/build/Object_Torus.png
index 15c62423a9..15c62423a9 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Torus.png
+++ b/indra/newview/skins/default/textures/build/Object_Torus.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Torus_Selected.png b/indra/newview/skins/default/textures/build/Object_Torus_Selected.png
index 1fc22686eb..1fc22686eb 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Torus_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Torus_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tree.png b/indra/newview/skins/default/textures/build/Object_Tree.png
index 82c422419b..82c422419b 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tree.png
+++ b/indra/newview/skins/default/textures/build/Object_Tree.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tree_Selected.png b/indra/newview/skins/default/textures/build/Object_Tree_Selected.png
index 5bd87f8a2f..5bd87f8a2f 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tree_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Tree_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tube.png b/indra/newview/skins/default/textures/build/Object_Tube.png
index e47fce7511..e47fce7511 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tube.png
+++ b/indra/newview/skins/default/textures/build/Object_Tube.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tube_Selected.png b/indra/newview/skins/default/textures/build/Object_Tube_Selected.png
index a4c3f39e14..a4c3f39e14 100644..100755
--- a/indra/newview/skins/default/textures/build/Object_Tube_Selected.png
+++ b/indra/newview/skins/default/textures/build/Object_Tube_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Tool_Create.png b/indra/newview/skins/default/textures/build/Tool_Create.png
index 1f1097def5..1f1097def5 100644..100755
--- a/indra/newview/skins/default/textures/build/Tool_Create.png
+++ b/indra/newview/skins/default/textures/build/Tool_Create.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Tool_Dozer.png b/indra/newview/skins/default/textures/build/Tool_Dozer.png
index 61744666f4..61744666f4 100644..100755
--- a/indra/newview/skins/default/textures/build/Tool_Dozer.png
+++ b/indra/newview/skins/default/textures/build/Tool_Dozer.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Tool_Face.png b/indra/newview/skins/default/textures/build/Tool_Face.png
index 5ab42a4ad6..5ab42a4ad6 100644..100755
--- a/indra/newview/skins/default/textures/build/Tool_Face.png
+++ b/indra/newview/skins/default/textures/build/Tool_Face.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Tool_Grab.png b/indra/newview/skins/default/textures/build/Tool_Grab.png
index 5c58288d5e..5c58288d5e 100644..100755
--- a/indra/newview/skins/default/textures/build/Tool_Grab.png
+++ b/indra/newview/skins/default/textures/build/Tool_Grab.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/build/Tool_Zoom.png b/indra/newview/skins/default/textures/build/Tool_Zoom.png
index ad493b0d66..ad493b0d66 100644..100755
--- a/indra/newview/skins/default/textures/build/Tool_Zoom.png
+++ b/indra/newview/skins/default/textures/build/Tool_Zoom.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/button_anim_pause.tga b/indra/newview/skins/default/textures/button_anim_pause.tga
index 577f9195d0..577f9195d0 100644..100755
--- a/indra/newview/skins/default/textures/button_anim_pause.tga
+++ b/indra/newview/skins/default/textures/button_anim_pause.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/button_anim_pause_selected.tga b/indra/newview/skins/default/textures/button_anim_pause_selected.tga
index 21384316a8..21384316a8 100644..100755
--- a/indra/newview/skins/default/textures/button_anim_pause_selected.tga
+++ b/indra/newview/skins/default/textures/button_anim_pause_selected.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/button_anim_play.tga b/indra/newview/skins/default/textures/button_anim_play.tga
index 9ed55f829d..9ed55f829d 100644..100755
--- a/indra/newview/skins/default/textures/button_anim_play.tga
+++ b/indra/newview/skins/default/textures/button_anim_play.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/button_anim_play_selected.tga b/indra/newview/skins/default/textures/button_anim_play_selected.tga
index b166a4178d..b166a4178d 100644..100755
--- a/indra/newview/skins/default/textures/button_anim_play_selected.tga
+++ b/indra/newview/skins/default/textures/button_anim_play_selected.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/checker.png b/indra/newview/skins/default/textures/checker.png
index 1ab87e3f02..1ab87e3f02 100644..100755
--- a/indra/newview/skins/default/textures/checker.png
+++ b/indra/newview/skins/default/textures/checker.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/cloud-particle.j2c b/indra/newview/skins/default/textures/cloud-particle.j2c
index 6c03bf6d05..6c03bf6d05 100644..100755
--- a/indra/newview/skins/default/textures/cloud-particle.j2c
+++ b/indra/newview/skins/default/textures/cloud-particle.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/color_swatch_alpha.tga b/indra/newview/skins/default/textures/color_swatch_alpha.tga
index 814a004e62..814a004e62 100644..100755
--- a/indra/newview/skins/default/textures/color_swatch_alpha.tga
+++ b/indra/newview/skins/default/textures/color_swatch_alpha.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png
index 19c842b816..19c842b816 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.png
index b9879dcc8a..b9879dcc8a 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Off.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Off.png
index d506cda5c9..d506cda5c9 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Off.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.png
index 08f7493a02..08f7493a02 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_Off.png b/indra/newview/skins/default/textures/containers/Accordion_Off.png
index 414f4509c6..414f4509c6 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_Off.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_Over.png b/indra/newview/skins/default/textures/containers/Accordion_Over.png
index 5416d73310..5416d73310 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_Over.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_Press.png b/indra/newview/skins/default/textures/containers/Accordion_Press.png
index 1578e0dfc5..1578e0dfc5 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_Press.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_Selected.png b/indra/newview/skins/default/textures/containers/Accordion_Selected.png
index 0616dea6a3..0616dea6a3 100644..100755
--- a/indra/newview/skins/default/textures/containers/Accordion_Selected.png
+++ b/indra/newview/skins/default/textures/containers/Accordion_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Container.png b/indra/newview/skins/default/textures/containers/Container.png
index 511eb94386..511eb94386 100644..100755
--- a/indra/newview/skins/default/textures/containers/Container.png
+++ b/indra/newview/skins/default/textures/containers/Container.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png
index 1951413f8d..1951413f8d 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Left_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Left_Selected.png
index 8364716e02..8364716e02 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Left_Selected.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Left_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png
index 21f1c2d8a8..21f1c2d8a8 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.png
index 3946917c7c..3946917c7c 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Right_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Right_Off.png
index eeef28e5a5..eeef28e5a5 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Right_Off.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png
index b0f1f16398..b0f1f16398 100644..100755
--- a/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png
+++ b/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Flash.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Flash.png
index 9f1e2a469d..9f1e2a469d 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Left_Flash.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Left_Flash.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png
index 41b5d24d87..41b5d24d87 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png
index 083acc0156..083acc0156 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png
index ee4649a8f9..ee4649a8f9 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Flash.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Flash.png
index dd73d655e9..dd73d655e9 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Flash.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Flash.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.png
index 55c02160e3..55c02160e3 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png
index 2f6ea90196..2f6ea90196 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png
index 642113b135..642113b135 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Right_Flash.png b/indra/newview/skins/default/textures/containers/Toolbar_Right_Flash.png
index f6b775c2a0..f6b775c2a0 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Right_Flash.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Right_Flash.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Right_Off.png b/indra/newview/skins/default/textures/containers/Toolbar_Right_Off.png
index 01fd765c3d..01fd765c3d 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Right_Off.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png
index 74e00635f1..74e00635f1 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.png b/indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.png
index 8a0d98a780..8a0d98a780 100644..100755
--- a/indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.png
+++ b/indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/crosshairs.tga b/indra/newview/skins/default/textures/crosshairs.tga
index ac4d63dc59..ac4d63dc59 100644..100755
--- a/indra/newview/skins/default/textures/crosshairs.tga
+++ b/indra/newview/skins/default/textures/crosshairs.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/default_land_picture.j2c b/indra/newview/skins/default/textures/default_land_picture.j2c
index 34df0291ae..34df0291ae 100644..100755
--- a/indra/newview/skins/default/textures/default_land_picture.j2c
+++ b/indra/newview/skins/default/textures/default_land_picture.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/default_profile_picture.j2c b/indra/newview/skins/default/textures/default_profile_picture.j2c
index f21742cf09..f21742cf09 100644..100755
--- a/indra/newview/skins/default/textures/default_profile_picture.j2c
+++ b/indra/newview/skins/default/textures/default_profile_picture.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/direction_arrow.tga b/indra/newview/skins/default/textures/direction_arrow.tga
index f3ef1068c4..f3ef1068c4 100644..100755
--- a/indra/newview/skins/default/textures/direction_arrow.tga
+++ b/indra/newview/skins/default/textures/direction_arrow.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/down_arrow.png b/indra/newview/skins/default/textures/down_arrow.png
index 155f80c97e..155f80c97e 100644..100755
--- a/indra/newview/skins/default/textures/down_arrow.png
+++ b/indra/newview/skins/default/textures/down_arrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/eye_button_active.tga b/indra/newview/skins/default/textures/eye_button_active.tga
index 014f785a7b..014f785a7b 100644..100755
--- a/indra/newview/skins/default/textures/eye_button_active.tga
+++ b/indra/newview/skins/default/textures/eye_button_active.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/eye_button_inactive.tga b/indra/newview/skins/default/textures/eye_button_inactive.tga
index 8666f0bbe6..8666f0bbe6 100644..100755
--- a/indra/newview/skins/default/textures/eye_button_inactive.tga
+++ b/indra/newview/skins/default/textures/eye_button_inactive.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/folder_arrow.tga b/indra/newview/skins/default/textures/folder_arrow.tga
index 77d470731b..77d470731b 100644..100755
--- a/indra/newview/skins/default/textures/folder_arrow.tga
+++ b/indra/newview/skins/default/textures/folder_arrow.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/foot_shadow.j2c b/indra/newview/skins/default/textures/foot_shadow.j2c
index f9ce9da7d1..f9ce9da7d1 100644..100755
--- a/indra/newview/skins/default/textures/foot_shadow.j2c
+++ b/indra/newview/skins/default/textures/foot_shadow.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/green_checkmark.png b/indra/newview/skins/default/textures/green_checkmark.png
index d2a5b348dc..d2a5b348dc 100644..100755
--- a/indra/newview/skins/default/textures/green_checkmark.png
+++ b/indra/newview/skins/default/textures/green_checkmark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icn_media_movie.tga b/indra/newview/skins/default/textures/icn_media_movie.tga
index 43dd342c9d..43dd342c9d 100644..100755
--- a/indra/newview/skins/default/textures/icn_media_movie.tga
+++ b/indra/newview/skins/default/textures/icn_media_movie.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icn_media_web.tga b/indra/newview/skins/default/textures/icn_media_web.tga
index 7c9131dfff..7c9131dfff 100644..100755
--- a/indra/newview/skins/default/textures/icn_media_web.tga
+++ b/indra/newview/skins/default/textures/icn_media_web.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icon_avatar_offline.tga b/indra/newview/skins/default/textures/icon_avatar_offline.tga
index cfa95eb00e..cfa95eb00e 100644..100755
--- a/indra/newview/skins/default/textures/icon_avatar_offline.tga
+++ b/indra/newview/skins/default/textures/icon_avatar_offline.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icon_avatar_online.tga b/indra/newview/skins/default/textures/icon_avatar_online.tga
index 45221213eb..45221213eb 100644..100755
--- a/indra/newview/skins/default/textures/icon_avatar_online.tga
+++ b/indra/newview/skins/default/textures/icon_avatar_online.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icon_diurnal.tga b/indra/newview/skins/default/textures/icon_diurnal.tga
index fc720c8269..fc720c8269 100644..100755
--- a/indra/newview/skins/default/textures/icon_diurnal.tga
+++ b/indra/newview/skins/default/textures/icon_diurnal.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icon_for_sale_adult.tga b/indra/newview/skins/default/textures/icon_for_sale_adult.tga
index 6a99188f87..6a99188f87 100644..100755
--- a/indra/newview/skins/default/textures/icon_for_sale_adult.tga
+++ b/indra/newview/skins/default/textures/icon_for_sale_adult.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icon_top_pick.tga b/indra/newview/skins/default/textures/icon_top_pick.tga
index 0b34882d2f..0b34882d2f 100644..100755
--- a/indra/newview/skins/default/textures/icon_top_pick.tga
+++ b/indra/newview/skins/default/textures/icon_top_pick.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/AddItem_Disabled.png b/indra/newview/skins/default/textures/icons/AddItem_Disabled.png
index cf88c89ae5..cf88c89ae5 100644..100755
--- a/indra/newview/skins/default/textures/icons/AddItem_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/AddItem_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/AddItem_Off.png b/indra/newview/skins/default/textures/icons/AddItem_Off.png
index 52d4f9bc80..52d4f9bc80 100644..100755
--- a/indra/newview/skins/default/textures/icons/AddItem_Off.png
+++ b/indra/newview/skins/default/textures/icons/AddItem_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/AddItem_Press.png b/indra/newview/skins/default/textures/icons/AddItem_Press.png
index acc898e5f4..acc898e5f4 100644..100755
--- a/indra/newview/skins/default/textures/icons/AddItem_Press.png
+++ b/indra/newview/skins/default/textures/icons/AddItem_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/AudioMute_Off.png b/indra/newview/skins/default/textures/icons/AudioMute_Off.png
index 938aaef491..938aaef491 100644..100755
--- a/indra/newview/skins/default/textures/icons/AudioMute_Off.png
+++ b/indra/newview/skins/default/textures/icons/AudioMute_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/AudioMute_Over.png b/indra/newview/skins/default/textures/icons/AudioMute_Over.png
index 7bd1b12aae..7bd1b12aae 100644..100755
--- a/indra/newview/skins/default/textures/icons/AudioMute_Over.png
+++ b/indra/newview/skins/default/textures/icons/AudioMute_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Audio_Off.png b/indra/newview/skins/default/textures/icons/Audio_Off.png
index ef746aab92..ef746aab92 100644..100755
--- a/indra/newview/skins/default/textures/icons/Audio_Off.png
+++ b/indra/newview/skins/default/textures/icons/Audio_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Audio_Press.png b/indra/newview/skins/default/textures/icons/Audio_Press.png
index 25a669224a..25a669224a 100644..100755
--- a/indra/newview/skins/default/textures/icons/Audio_Press.png
+++ b/indra/newview/skins/default/textures/icons/Audio_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/BackArrow_Off.png b/indra/newview/skins/default/textures/icons/BackArrow_Off.png
index ff32192856..ff32192856 100644..100755
--- a/indra/newview/skins/default/textures/icons/BackArrow_Off.png
+++ b/indra/newview/skins/default/textures/icons/BackArrow_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Conv_log_inbox.png b/indra/newview/skins/default/textures/icons/Conv_log_inbox.png
index bb6ca28147..bb6ca28147 100644..100755
--- a/indra/newview/skins/default/textures/icons/Conv_log_inbox.png
+++ b/indra/newview/skins/default/textures/icons/Conv_log_inbox.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Copy.png b/indra/newview/skins/default/textures/icons/Copy.png
index d45134e9dd..d45134e9dd 100644..100755
--- a/indra/newview/skins/default/textures/icons/Copy.png
+++ b/indra/newview/skins/default/textures/icons/Copy.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/DownArrow_Off.png b/indra/newview/skins/default/textures/icons/DownArrow_Off.png
index 60f62eed4a..60f62eed4a 100644..100755
--- a/indra/newview/skins/default/textures/icons/DownArrow_Off.png
+++ b/indra/newview/skins/default/textures/icons/DownArrow_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Edit_Wrench.png b/indra/newview/skins/default/textures/icons/Edit_Wrench.png
index edb40b9c96..edb40b9c96 100644..100755
--- a/indra/newview/skins/default/textures/icons/Edit_Wrench.png
+++ b/indra/newview/skins/default/textures/icons/Edit_Wrench.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/ExternalBrowser_Off.png b/indra/newview/skins/default/textures/icons/ExternalBrowser_Off.png
index 69646ce473..69646ce473 100644..100755
--- a/indra/newview/skins/default/textures/icons/ExternalBrowser_Off.png
+++ b/indra/newview/skins/default/textures/icons/ExternalBrowser_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Female.png b/indra/newview/skins/default/textures/icons/Female.png
index 67b5653a94..67b5653a94 100644..100755
--- a/indra/newview/skins/default/textures/icons/Female.png
+++ b/indra/newview/skins/default/textures/icons/Female.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/ForSale_Badge.png b/indra/newview/skins/default/textures/icons/ForSale_Badge.png
index 5bee570cee..5bee570cee 100644..100755
--- a/indra/newview/skins/default/textures/icons/ForSale_Badge.png
+++ b/indra/newview/skins/default/textures/icons/ForSale_Badge.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/ForwardArrow_Off.png b/indra/newview/skins/default/textures/icons/ForwardArrow_Off.png
index e9b72b0401..e9b72b0401 100644..100755
--- a/indra/newview/skins/default/textures/icons/ForwardArrow_Off.png
+++ b/indra/newview/skins/default/textures/icons/ForwardArrow_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/ForwardArrow_Press.png b/indra/newview/skins/default/textures/icons/ForwardArrow_Press.png
index c7b2c769ae..c7b2c769ae 100644..100755
--- a/indra/newview/skins/default/textures/icons/ForwardArrow_Press.png
+++ b/indra/newview/skins/default/textures/icons/ForwardArrow_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Group.png b/indra/newview/skins/default/textures/icons/Generic_Group.png
index 9d76f75d0f..9d76f75d0f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Generic_Group.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Group.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Group_Large.png b/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
index 75833eccf3..75833eccf3 100644..100755
--- a/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Object_Small.png b/indra/newview/skins/default/textures/icons/Generic_Object_Small.png
index 223874e631..223874e631 100644..100755
--- a/indra/newview/skins/default/textures/icons/Generic_Object_Small.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Object_Small.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Person.png b/indra/newview/skins/default/textures/icons/Generic_Person.png
index 45b491ab59..45b491ab59 100644..100755
--- a/indra/newview/skins/default/textures/icons/Generic_Person.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Person.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Person_Large.png b/indra/newview/skins/default/textures/icons/Generic_Person_Large.png
index 532288b430..532288b430 100644..100755
--- a/indra/newview/skins/default/textures/icons/Generic_Person_Large.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Person_Large.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Hierarchy_View_Disabled.png b/indra/newview/skins/default/textures/icons/Hierarchy_View_Disabled.png
index fb370f98d5..fb370f98d5 100644..100755
--- a/indra/newview/skins/default/textures/icons/Hierarchy_View_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/Hierarchy_View_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
index 296311e797..296311e797 100644..100755
--- a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
+++ b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Icon_For_Sale.png b/indra/newview/skins/default/textures/icons/Icon_For_Sale.png
index 3dec6b989c..3dec6b989c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Icon_For_Sale.png
+++ b/indra/newview/skins/default/textures/icons/Icon_For_Sale.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Info.png b/indra/newview/skins/default/textures/icons/Info.png
index e52560281b..e52560281b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Info.png
+++ b/indra/newview/skins/default/textures/icons/Info.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Info_Over.png b/indra/newview/skins/default/textures/icons/Info_Over.png
index be1cd0706f..be1cd0706f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Info_Over.png
+++ b/indra/newview/skins/default/textures/icons/Info_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Info_Small.png b/indra/newview/skins/default/textures/icons/Info_Small.png
index 81078c32dc..81078c32dc 100644..100755
--- a/indra/newview/skins/default/textures/icons/Info_Small.png
+++ b/indra/newview/skins/default/textures/icons/Info_Small.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Alpha.png b/indra/newview/skins/default/textures/icons/Inv_Alpha.png
index b65dc1929d..b65dc1929d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Alpha.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Alpha.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Animation.png b/indra/newview/skins/default/textures/icons/Inv_Animation.png
index ab42c61a92..ab42c61a92 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Animation.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Animation.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_BodyShape.png b/indra/newview/skins/default/textures/icons/Inv_BodyShape.png
index 97e874d70d..97e874d70d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_BodyShape.png
+++ b/indra/newview/skins/default/textures/icons/Inv_BodyShape.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_CallingCard.png b/indra/newview/skins/default/textures/icons/Inv_CallingCard.png
index 1de96475f7..1de96475f7 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_CallingCard.png
+++ b/indra/newview/skins/default/textures/icons/Inv_CallingCard.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Clothing.png b/indra/newview/skins/default/textures/icons/Inv_Clothing.png
index e8d246c6fa..e8d246c6fa 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Clothing.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Clothing.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Eye.png b/indra/newview/skins/default/textures/icons/Inv_Eye.png
index e619f56c2b..e619f56c2b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Eye.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Eye.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_FolderClosed.png b/indra/newview/skins/default/textures/icons/Inv_FolderClosed.png
index 342a973d00..342a973d00 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_FolderClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_FolderClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_FolderOpen.png b/indra/newview/skins/default/textures/icons/Inv_FolderOpen.png
index 0507c2cbaf..0507c2cbaf 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_FolderOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_FolderOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Gesture.png b/indra/newview/skins/default/textures/icons/Inv_Gesture.png
index 52695ec19b..52695ec19b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Gesture.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Gesture.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Gloves.png b/indra/newview/skins/default/textures/icons/Inv_Gloves.png
index d6a2113aaf..d6a2113aaf 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Gloves.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Gloves.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Hair.png b/indra/newview/skins/default/textures/icons/Inv_Hair.png
index ae941b0dd5..ae941b0dd5 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Hair.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Hair.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Invalid.png b/indra/newview/skins/default/textures/icons/Inv_Invalid.png
index 328be104ee..328be104ee 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Invalid.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Invalid.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Jacket.png b/indra/newview/skins/default/textures/icons/Inv_Jacket.png
index 3859666f7c..3859666f7c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Jacket.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Jacket.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Landmark.png b/indra/newview/skins/default/textures/icons/Inv_Landmark.png
index 76df984596..76df984596 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Landmark.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Landmark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Link.png b/indra/newview/skins/default/textures/icons/Inv_Link.png
index c1543dacb5..c1543dacb5 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Link.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Link.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LinkFolder.png b/indra/newview/skins/default/textures/icons/Inv_LinkFolder.png
index 73a708782c..73a708782c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LinkFolder.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LinkFolder.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LinkItem.png b/indra/newview/skins/default/textures/icons/Inv_LinkItem.png
index 73a708782c..73a708782c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LinkItem.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LinkItem.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LookFolderClosed.png b/indra/newview/skins/default/textures/icons/Inv_LookFolderClosed.png
index f2ae828efc..f2ae828efc 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LookFolderClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LookFolderClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LookFolderOpen.png b/indra/newview/skins/default/textures/icons/Inv_LookFolderOpen.png
index d454d4cd48..d454d4cd48 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LookFolderOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LookFolderOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LostClosed.png b/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
index a800217e0d..a800217e0d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LostOpen.png b/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
index 8c4a1a9ac0..8c4a1a9ac0 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Mesh.png b/indra/newview/skins/default/textures/icons/Inv_Mesh.png
index f1f21f7941..f1f21f7941 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Mesh.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Mesh.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Notecard.png b/indra/newview/skins/default/textures/icons/Inv_Notecard.png
index 4645ab8e91..4645ab8e91 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Notecard.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Notecard.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Object.png b/indra/newview/skins/default/textures/icons/Inv_Object.png
index f883696a82..f883696a82 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Object.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Object.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Object_Multi.png b/indra/newview/skins/default/textures/icons/Inv_Object_Multi.png
index 11f4871ad8..11f4871ad8 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Object_Multi.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Object_Multi.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Pants.png b/indra/newview/skins/default/textures/icons/Inv_Pants.png
index fe2389f074..fe2389f074 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Pants.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Pants.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Physics.png b/indra/newview/skins/default/textures/icons/Inv_Physics.png
index 360baec46d..360baec46d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Physics.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Physics.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Script.png b/indra/newview/skins/default/textures/icons/Inv_Script.png
index 0fba27a7aa..0fba27a7aa 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Script.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Script.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Shirt.png b/indra/newview/skins/default/textures/icons/Inv_Shirt.png
index 81c1538dd2..81c1538dd2 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Shirt.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Shirt.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Shoe.png b/indra/newview/skins/default/textures/icons/Inv_Shoe.png
index 1f52b0a6b6..1f52b0a6b6 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Shoe.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Shoe.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Skin.png b/indra/newview/skins/default/textures/icons/Inv_Skin.png
index b7da922046..b7da922046 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Skin.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Skin.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Skirt.png b/indra/newview/skins/default/textures/icons/Inv_Skirt.png
index 246e9a87aa..246e9a87aa 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Skirt.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Skirt.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Snapshot.png b/indra/newview/skins/default/textures/icons/Inv_Snapshot.png
index 39efd2be1b..39efd2be1b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Snapshot.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Snapshot.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Socks.png b/indra/newview/skins/default/textures/icons/Inv_Socks.png
index 30d7d7c239..30d7d7c239 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Socks.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Socks.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Sound.png b/indra/newview/skins/default/textures/icons/Inv_Sound.png
index 44c271c868..44c271c868 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Sound.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Sound.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
index dcf998449f..dcf998449f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
index 0efd403c95..0efd403c95 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Tattoo.png b/indra/newview/skins/default/textures/icons/Inv_Tattoo.png
index a632197eb5..a632197eb5 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Tattoo.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Tattoo.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Texture.png b/indra/newview/skins/default/textures/icons/Inv_Texture.png
index dbc41c5e99..dbc41c5e99 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Texture.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Texture.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png b/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
index c5201e6f9a..c5201e6f9a 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png b/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
index 4a886a3f37..4a886a3f37 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Underpants.png b/indra/newview/skins/default/textures/icons/Inv_Underpants.png
index b1e7c2a55f..b1e7c2a55f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Underpants.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Underpants.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Undershirt.png b/indra/newview/skins/default/textures/icons/Inv_Undershirt.png
index 9340dbb975..9340dbb975 100644..100755
--- a/indra/newview/skins/default/textures/icons/Inv_Undershirt.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Undershirt.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/List_View_Disabled.png b/indra/newview/skins/default/textures/icons/List_View_Disabled.png
index 155dee5047..155dee5047 100644..100755
--- a/indra/newview/skins/default/textures/icons/List_View_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/List_View_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/List_View_On.png b/indra/newview/skins/default/textures/icons/List_View_On.png
index 9127c92c3b..9127c92c3b 100644..100755
--- a/indra/newview/skins/default/textures/icons/List_View_On.png
+++ b/indra/newview/skins/default/textures/icons/List_View_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Lock.png b/indra/newview/skins/default/textures/icons/Lock.png
index eb5b5ae7a9..eb5b5ae7a9 100644..100755
--- a/indra/newview/skins/default/textures/icons/Lock.png
+++ b/indra/newview/skins/default/textures/icons/Lock.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Locked_Icon.png b/indra/newview/skins/default/textures/icons/Locked_Icon.png
index 8ead280794..8ead280794 100644..100755
--- a/indra/newview/skins/default/textures/icons/Locked_Icon.png
+++ b/indra/newview/skins/default/textures/icons/Locked_Icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Male.png b/indra/newview/skins/default/textures/icons/Male.png
index f3fad77fd0..f3fad77fd0 100644..100755
--- a/indra/newview/skins/default/textures/icons/Male.png
+++ b/indra/newview/skins/default/textures/icons/Male.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Microphone_On.png b/indra/newview/skins/default/textures/icons/Microphone_On.png
index c96b500fa1..c96b500fa1 100644..100755
--- a/indra/newview/skins/default/textures/icons/Microphone_On.png
+++ b/indra/newview/skins/default/textures/icons/Microphone_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/MinusItem_Disabled.png b/indra/newview/skins/default/textures/icons/MinusItem_Disabled.png
index 75bd73cef1..75bd73cef1 100644..100755
--- a/indra/newview/skins/default/textures/icons/MinusItem_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/MinusItem_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/MinusItem_Off.png b/indra/newview/skins/default/textures/icons/MinusItem_Off.png
index 6f285f3546..6f285f3546 100644..100755
--- a/indra/newview/skins/default/textures/icons/MinusItem_Off.png
+++ b/indra/newview/skins/default/textures/icons/MinusItem_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/MinusItem_Press.png b/indra/newview/skins/default/textures/icons/MinusItem_Press.png
index 50f65765d5..50f65765d5 100644..100755
--- a/indra/newview/skins/default/textures/icons/MinusItem_Press.png
+++ b/indra/newview/skins/default/textures/icons/MinusItem_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OptionsMenu_Disabled.png b/indra/newview/skins/default/textures/icons/OptionsMenu_Disabled.png
index fb341e9c83..fb341e9c83 100644..100755
--- a/indra/newview/skins/default/textures/icons/OptionsMenu_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/OptionsMenu_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OptionsMenu_Off.png b/indra/newview/skins/default/textures/icons/OptionsMenu_Off.png
index 25b055bfc0..25b055bfc0 100644..100755
--- a/indra/newview/skins/default/textures/icons/OptionsMenu_Off.png
+++ b/indra/newview/skins/default/textures/icons/OptionsMenu_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OptionsMenu_Press.png b/indra/newview/skins/default/textures/icons/OptionsMenu_Press.png
index 6e91dd7159..6e91dd7159 100644..100755
--- a/indra/newview/skins/default/textures/icons/OptionsMenu_Press.png
+++ b/indra/newview/skins/default/textures/icons/OptionsMenu_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Disabled.png b/indra/newview/skins/default/textures/icons/OutboxPush_Disabled.png
index be58114aa1..be58114aa1 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Off.png b/indra/newview/skins/default/textures/icons/OutboxPush_Off.png
index e6b9480ab1..e6b9480ab1 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Off.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_On.png b/indra/newview/skins/default/textures/icons/OutboxPush_On.png
index ffda2e92d4..ffda2e92d4 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_On.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_On_Over.png b/indra/newview/skins/default/textures/icons/OutboxPush_On_Over.png
index 6b5911014f..6b5911014f 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_On_Over.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_On_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Over.png b/indra/newview/skins/default/textures/icons/OutboxPush_Over.png
index 9c26b92e73..9c26b92e73 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Over.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Press.png b/indra/newview/skins/default/textures/icons/OutboxPush_Press.png
index 3b5d462975..3b5d462975 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Press.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_1.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_1.png
index f85be047b0..f85be047b0 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_1.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_1.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_2.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_2.png
index cd4e482216..cd4e482216 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_2.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_2.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_3.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_3.png
index d212a871ce..d212a871ce 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_3.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_3.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_4.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_4.png
index e5b6023e36..e5b6023e36 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_4.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_4.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_5.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_5.png
index e1911a092f..e1911a092f 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_5.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_5.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_6.png b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_6.png
index 9e59f7843a..9e59f7843a 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Progress_6.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Progress_6.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Selected.png b/indra/newview/skins/default/textures/icons/OutboxPush_Selected.png
index 51e8bff646..51e8bff646 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Selected.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Disabled.png b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Disabled.png
index 300e2e69e1..300e2e69e1 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Over.png b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Over.png
index 32fb236381..32fb236381 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Over.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Press.png b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Press.png
index 827f343b1e..827f343b1e 100644..100755
--- a/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Press.png
+++ b/indra/newview/skins/default/textures/icons/OutboxPush_Selected_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png
index fb1f7d3a6d..fb1f7d3a6d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png
index e6f614b844..e6f614b844 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png
index 84a96a60cb..84a96a60cb 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png
index d55ebd7c67..d55ebd7c67 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png
index ae4077488b..ae4077488b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png b/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png
index 4813d37198..4813d37198 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
index e0b18b2451..e0b18b2451 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
index 101aaa42b1..101aaa42b1 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
index c27f18e3c7..c27f18e3c7 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png b/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png
index d28e5357df..d28e5357df 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png
index d72f02f708..d72f02f708 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png
index 60e6a00a25..60e6a00a25 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_M_Light.png b/indra/newview/skins/default/textures/icons/Parcel_M_Light.png
index 55f97f3b4e..55f97f3b4e 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_M_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_M_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png
index 11ab1f1e60..11ab1f1e60 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png b/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png
index b536762ddc..b536762ddc 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png
index 8f0fe6a04d..8f0fe6a04d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png
index eba7070b4d..eba7070b4d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png
index 08c2a18ac3..08c2a18ac3 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png
index bf618752f6..bf618752f6 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_R_Light.png b/indra/newview/skins/default/textures/icons/Parcel_R_Light.png
index a67bbd0cc5..a67bbd0cc5 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_R_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_R_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png
index 8f9f37a1bf..8f9f37a1bf 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png
index 8b1d6c5e14..8b1d6c5e14 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
index 956e02b14d..956e02b14d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
index 434caeda8b..434caeda8b 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
index 064687ed0f..064687ed0f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
index 5465650d0c..5465650d0c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png
index eace54ae79..eace54ae79 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png
index 0d07e552b1..0d07e552b1 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png
index b36a9bd2f0..b36a9bd2f0 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png b/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png
index 86ce19474a..86ce19474a 100644..100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Pathfinding_Dirty.png b/indra/newview/skins/default/textures/icons/Pathfinding_Dirty.png
index cfa12cb7cc..cfa12cb7cc 100644..100755
--- a/indra/newview/skins/default/textures/icons/Pathfinding_Dirty.png
+++ b/indra/newview/skins/default/textures/icons/Pathfinding_Dirty.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Pathfinding_Disabled.png b/indra/newview/skins/default/textures/icons/Pathfinding_Disabled.png
index 0622141848..0622141848 100644..100755
--- a/indra/newview/skins/default/textures/icons/Pathfinding_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/Pathfinding_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Pause_Off.png b/indra/newview/skins/default/textures/icons/Pause_Off.png
index 77f6be569d..77f6be569d 100644..100755
--- a/indra/newview/skins/default/textures/icons/Pause_Off.png
+++ b/indra/newview/skins/default/textures/icons/Pause_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Pause_Over.png b/indra/newview/skins/default/textures/icons/Pause_Over.png
index 580808bf7e..580808bf7e 100644..100755
--- a/indra/newview/skins/default/textures/icons/Pause_Over.png
+++ b/indra/newview/skins/default/textures/icons/Pause_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Pause_Press.png b/indra/newview/skins/default/textures/icons/Pause_Press.png
index 859db34cae..859db34cae 100644..100755
--- a/indra/newview/skins/default/textures/icons/Pause_Press.png
+++ b/indra/newview/skins/default/textures/icons/Pause_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Person_Check.png b/indra/newview/skins/default/textures/icons/Person_Check.png
index f8638540d4..f8638540d4 100644..100755
--- a/indra/newview/skins/default/textures/icons/Person_Check.png
+++ b/indra/newview/skins/default/textures/icons/Person_Check.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Person_Star.png b/indra/newview/skins/default/textures/icons/Person_Star.png
index ad10580ac4..ad10580ac4 100644..100755
--- a/indra/newview/skins/default/textures/icons/Person_Star.png
+++ b/indra/newview/skins/default/textures/icons/Person_Star.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Play_Off.png b/indra/newview/skins/default/textures/icons/Play_Off.png
index e594c1a4cb..e594c1a4cb 100644..100755
--- a/indra/newview/skins/default/textures/icons/Play_Off.png
+++ b/indra/newview/skins/default/textures/icons/Play_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Play_Over.png b/indra/newview/skins/default/textures/icons/Play_Over.png
index 70ab94e8c2..70ab94e8c2 100644..100755
--- a/indra/newview/skins/default/textures/icons/Play_Over.png
+++ b/indra/newview/skins/default/textures/icons/Play_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Play_Press.png b/indra/newview/skins/default/textures/icons/Play_Press.png
index b52742c6da..b52742c6da 100644..100755
--- a/indra/newview/skins/default/textures/icons/Play_Press.png
+++ b/indra/newview/skins/default/textures/icons/Play_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_1.png b/indra/newview/skins/default/textures/icons/Progress_1.png
index 5d6efbfa2a..5d6efbfa2a 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_1.png
+++ b/indra/newview/skins/default/textures/icons/Progress_1.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_10.png b/indra/newview/skins/default/textures/icons/Progress_10.png
index 28203324f1..28203324f1 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_10.png
+++ b/indra/newview/skins/default/textures/icons/Progress_10.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_11.png b/indra/newview/skins/default/textures/icons/Progress_11.png
index 6b87be0c3f..6b87be0c3f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_11.png
+++ b/indra/newview/skins/default/textures/icons/Progress_11.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_12.png b/indra/newview/skins/default/textures/icons/Progress_12.png
index 089d58b090..089d58b090 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_12.png
+++ b/indra/newview/skins/default/textures/icons/Progress_12.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_2.png b/indra/newview/skins/default/textures/icons/Progress_2.png
index 94cb73b1f7..94cb73b1f7 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_2.png
+++ b/indra/newview/skins/default/textures/icons/Progress_2.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_3.png b/indra/newview/skins/default/textures/icons/Progress_3.png
index a04a5b5263..a04a5b5263 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_3.png
+++ b/indra/newview/skins/default/textures/icons/Progress_3.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_4.png b/indra/newview/skins/default/textures/icons/Progress_4.png
index a467098d82..a467098d82 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_4.png
+++ b/indra/newview/skins/default/textures/icons/Progress_4.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_5.png b/indra/newview/skins/default/textures/icons/Progress_5.png
index ea64f1d907..ea64f1d907 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_5.png
+++ b/indra/newview/skins/default/textures/icons/Progress_5.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_6.png b/indra/newview/skins/default/textures/icons/Progress_6.png
index fe4447935f..fe4447935f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_6.png
+++ b/indra/newview/skins/default/textures/icons/Progress_6.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_7.png b/indra/newview/skins/default/textures/icons/Progress_7.png
index 64fa294771..64fa294771 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_7.png
+++ b/indra/newview/skins/default/textures/icons/Progress_7.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_8.png b/indra/newview/skins/default/textures/icons/Progress_8.png
index a1c9a7f2eb..a1c9a7f2eb 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_8.png
+++ b/indra/newview/skins/default/textures/icons/Progress_8.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Progress_9.png b/indra/newview/skins/default/textures/icons/Progress_9.png
index f3e9723184..f3e9723184 100644..100755
--- a/indra/newview/skins/default/textures/icons/Progress_9.png
+++ b/indra/newview/skins/default/textures/icons/Progress_9.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Refresh_Off.png b/indra/newview/skins/default/textures/icons/Refresh_Off.png
index a8acfda741..a8acfda741 100644..100755
--- a/indra/newview/skins/default/textures/icons/Refresh_Off.png
+++ b/indra/newview/skins/default/textures/icons/Refresh_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png
index 8342d7cfee..8342d7cfee 100644..100755
--- a/indra/newview/skins/default/textures/icons/SL_Logo.png
+++ b/indra/newview/skins/default/textures/icons/SL_Logo.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Search_Icon.png b/indra/newview/skins/default/textures/icons/Search_Icon.png
index 541aa8f52a..541aa8f52a 100644..100755
--- a/indra/newview/skins/default/textures/icons/Search_Icon.png
+++ b/indra/newview/skins/default/textures/icons/Search_Icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Shirt_Large.png b/indra/newview/skins/default/textures/icons/Shirt_Large.png
index 0f3846bccc..0f3846bccc 100644..100755
--- a/indra/newview/skins/default/textures/icons/Shirt_Large.png
+++ b/indra/newview/skins/default/textures/icons/Shirt_Large.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Shop.png b/indra/newview/skins/default/textures/icons/Shop.png
index 81c13eeabd..81c13eeabd 100644..100755
--- a/indra/newview/skins/default/textures/icons/Shop.png
+++ b/indra/newview/skins/default/textures/icons/Shop.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/SkipBackward_Off.png b/indra/newview/skins/default/textures/icons/SkipBackward_Off.png
index 8fc10e6583..8fc10e6583 100644..100755
--- a/indra/newview/skins/default/textures/icons/SkipBackward_Off.png
+++ b/indra/newview/skins/default/textures/icons/SkipBackward_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/SkipForward_Off.png b/indra/newview/skins/default/textures/icons/SkipForward_Off.png
index 2892e3cfa9..2892e3cfa9 100644..100755
--- a/indra/newview/skins/default/textures/icons/SkipForward_Off.png
+++ b/indra/newview/skins/default/textures/icons/SkipForward_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/StopReload_Off.png b/indra/newview/skins/default/textures/icons/StopReload_Off.png
index 698569a540..698569a540 100644..100755
--- a/indra/newview/skins/default/textures/icons/StopReload_Off.png
+++ b/indra/newview/skins/default/textures/icons/StopReload_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/StopReload_Over.png b/indra/newview/skins/default/textures/icons/StopReload_Over.png
index 251b38630a..251b38630a 100644..100755
--- a/indra/newview/skins/default/textures/icons/StopReload_Over.png
+++ b/indra/newview/skins/default/textures/icons/StopReload_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Stop_Off.png b/indra/newview/skins/default/textures/icons/Stop_Off.png
index 3ee215d36f..3ee215d36f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Stop_Off.png
+++ b/indra/newview/skins/default/textures/icons/Stop_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Disabled.png b/indra/newview/skins/default/textures/icons/Sync_Disabled.png
index ca2e8def97..ca2e8def97 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Enabled.png b/indra/newview/skins/default/textures/icons/Sync_Enabled.png
index bc236c8b98..bc236c8b98 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Enabled.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Enabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_1.png b/indra/newview/skins/default/textures/icons/Sync_Progress_1.png
index 624e556376..624e556376 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_1.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_1.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_2.png b/indra/newview/skins/default/textures/icons/Sync_Progress_2.png
index 5769803b3f..5769803b3f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_2.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_2.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_3.png b/indra/newview/skins/default/textures/icons/Sync_Progress_3.png
index 92d4bfb020..92d4bfb020 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_3.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_3.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_4.png b/indra/newview/skins/default/textures/icons/Sync_Progress_4.png
index 6d43eb3a9f..6d43eb3a9f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_4.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_4.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_5.png b/indra/newview/skins/default/textures/icons/Sync_Progress_5.png
index 766d063c99..766d063c99 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_5.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_5.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Sync_Progress_6.png b/indra/newview/skins/default/textures/icons/Sync_Progress_6.png
index dfe7f68b72..dfe7f68b72 100644..100755
--- a/indra/newview/skins/default/textures/icons/Sync_Progress_6.png
+++ b/indra/newview/skins/default/textures/icons/Sync_Progress_6.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/TrashItem_Disabled.png b/indra/newview/skins/default/textures/icons/TrashItem_Disabled.png
index caaf45a99f..caaf45a99f 100644..100755
--- a/indra/newview/skins/default/textures/icons/TrashItem_Disabled.png
+++ b/indra/newview/skins/default/textures/icons/TrashItem_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/TrashItem_Off.png b/indra/newview/skins/default/textures/icons/TrashItem_Off.png
index bb64920ec4..bb64920ec4 100644..100755
--- a/indra/newview/skins/default/textures/icons/TrashItem_Off.png
+++ b/indra/newview/skins/default/textures/icons/TrashItem_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/TrashItem_Press.png b/indra/newview/skins/default/textures/icons/TrashItem_Press.png
index c62f833d86..c62f833d86 100644..100755
--- a/indra/newview/skins/default/textures/icons/TrashItem_Press.png
+++ b/indra/newview/skins/default/textures/icons/TrashItem_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/UnZoom_Off.png b/indra/newview/skins/default/textures/icons/UnZoom_Off.png
index c794113755..c794113755 100644..100755
--- a/indra/newview/skins/default/textures/icons/UnZoom_Off.png
+++ b/indra/newview/skins/default/textures/icons/UnZoom_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/UpArrow_Off.png b/indra/newview/skins/default/textures/icons/UpArrow_Off.png
index 00015bce20..00015bce20 100644..100755
--- a/indra/newview/skins/default/textures/icons/UpArrow_Off.png
+++ b/indra/newview/skins/default/textures/icons/UpArrow_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl1.png b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl1.png
index cd18ae310d..cd18ae310d 100644..100755
--- a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl1.png
+++ b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl1.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl2.png b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl2.png
index b0ed6ee8eb..b0ed6ee8eb 100644..100755
--- a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl2.png
+++ b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl2.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl3.png b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl3.png
index 14ec77b99a..14ec77b99a 100644..100755
--- a/indra/newview/skins/default/textures/icons/VoicePTT_Lvl3.png
+++ b/indra/newview/skins/default/textures/icons/VoicePTT_Lvl3.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/VoicePTT_Off.png b/indra/newview/skins/default/textures/icons/VoicePTT_Off.png
index 48be51e9af..48be51e9af 100644..100755
--- a/indra/newview/skins/default/textures/icons/VoicePTT_Off.png
+++ b/indra/newview/skins/default/textures/icons/VoicePTT_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/VoicePTT_On.png b/indra/newview/skins/default/textures/icons/VoicePTT_On.png
index be4881b64c..be4881b64c 100644..100755
--- a/indra/newview/skins/default/textures/icons/VoicePTT_On.png
+++ b/indra/newview/skins/default/textures/icons/VoicePTT_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Web_Profile_Off.png b/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
index f5fb774a6f..f5fb774a6f 100644..100755
--- a/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
+++ b/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png b/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png
index c057e9743d..c057e9743d 100644..100755
--- a/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png
+++ b/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Zoom_Off.png b/indra/newview/skins/default/textures/icons/Zoom_Off.png
index d096720c9c..d096720c9c 100644..100755
--- a/indra/newview/skins/default/textures/icons/Zoom_Off.png
+++ b/indra/newview/skins/default/textures/icons/Zoom_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/avaline_default_icon.jpg b/indra/newview/skins/default/textures/icons/avaline_default_icon.jpg
index 3bb7f7183c..3bb7f7183c 100644..100755
--- a/indra/newview/skins/default/textures/icons/avaline_default_icon.jpg
+++ b/indra/newview/skins/default/textures/icons/avaline_default_icon.jpg
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_off.png b/indra/newview/skins/default/textures/icons/back_arrow_off.png
index 422f67cf83..422f67cf83 100644..100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_off.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_over.png b/indra/newview/skins/default/textures/icons/back_arrow_over.png
index b4cc170f37..b4cc170f37 100644..100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_over.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_press.png b/indra/newview/skins/default/textures/icons/back_arrow_press.png
index a9e2f326a7..a9e2f326a7 100644..100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_press.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/check_mark.png b/indra/newview/skins/default/textures/icons/check_mark.png
index 2c05297f4f..2c05297f4f 100644..100755
--- a/indra/newview/skins/default/textures/icons/check_mark.png
+++ b/indra/newview/skins/default/textures/icons/check_mark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/collapse_to_one_line.png b/indra/newview/skins/default/textures/icons/collapse_to_one_line.png
index d57144a645..d57144a645 100644..100755
--- a/indra/newview/skins/default/textures/icons/collapse_to_one_line.png
+++ b/indra/newview/skins/default/textures/icons/collapse_to_one_line.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/edit_mine.png b/indra/newview/skins/default/textures/icons/edit_mine.png
index a0bc7efd25..a0bc7efd25 100644..100755
--- a/indra/newview/skins/default/textures/icons/edit_mine.png
+++ b/indra/newview/skins/default/textures/icons/edit_mine.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/edit_theirs.png b/indra/newview/skins/default/textures/icons/edit_theirs.png
index ed36ad7cfc..ed36ad7cfc 100644..100755
--- a/indra/newview/skins/default/textures/icons/edit_theirs.png
+++ b/indra/newview/skins/default/textures/icons/edit_theirs.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/expand_one_liner.png b/indra/newview/skins/default/textures/icons/expand_one_liner.png
index 58b7d90131..58b7d90131 100644..100755
--- a/indra/newview/skins/default/textures/icons/expand_one_liner.png
+++ b/indra/newview/skins/default/textures/icons/expand_one_liner.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
index 5ac4258b9d..5ac4258b9d 100644..100755
--- a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
+++ b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/object_icon.png b/indra/newview/skins/default/textures/icons/object_icon.png
index 223874e631..223874e631 100644..100755
--- a/indra/newview/skins/default/textures/icons/object_icon.png
+++ b/indra/newview/skins/default/textures/icons/object_icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/pop_up_caution.png b/indra/newview/skins/default/textures/icons/pop_up_caution.png
index 78b681cb33..78b681cb33 100644..100755
--- a/indra/newview/skins/default/textures/icons/pop_up_caution.png
+++ b/indra/newview/skins/default/textures/icons/pop_up_caution.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/see_me_online.png b/indra/newview/skins/default/textures/icons/see_me_online.png
index 52dc2ae74f..52dc2ae74f 100644..100755
--- a/indra/newview/skins/default/textures/icons/see_me_online.png
+++ b/indra/newview/skins/default/textures/icons/see_me_online.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/see_on_map.png b/indra/newview/skins/default/textures/icons/see_on_map.png
index 200e649818..200e649818 100644..100755
--- a/indra/newview/skins/default/textures/icons/see_on_map.png
+++ b/indra/newview/skins/default/textures/icons/see_on_map.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/unknown_icon.png b/indra/newview/skins/default/textures/icons/unknown_icon.png
index 8441d86596..8441d86596 100644..100755
--- a/indra/newview/skins/default/textures/icons/unknown_icon.png
+++ b/indra/newview/skins/default/textures/icons/unknown_icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/jump_left_in.tga b/indra/newview/skins/default/textures/jump_left_in.tga
index e0656c901d..e0656c901d 100644..100755
--- a/indra/newview/skins/default/textures/jump_left_in.tga
+++ b/indra/newview/skins/default/textures/jump_left_in.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/jump_left_out.tga b/indra/newview/skins/default/textures/jump_left_out.tga
index fb6dac0c3d..fb6dac0c3d 100644..100755
--- a/indra/newview/skins/default/textures/jump_left_out.tga
+++ b/indra/newview/skins/default/textures/jump_left_out.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/jump_right_in.tga b/indra/newview/skins/default/textures/jump_right_in.tga
index 010c748c2a..010c748c2a 100644..100755
--- a/indra/newview/skins/default/textures/jump_right_in.tga
+++ b/indra/newview/skins/default/textures/jump_right_in.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/jump_right_out.tga b/indra/newview/skins/default/textures/jump_right_out.tga
index 33355262d4..33355262d4 100644..100755
--- a/indra/newview/skins/default/textures/jump_right_out.tga
+++ b/indra/newview/skins/default/textures/jump_right_out.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/lag_status_critical.tga b/indra/newview/skins/default/textures/lag_status_critical.tga
index bbc71d9e77..bbc71d9e77 100644..100755
--- a/indra/newview/skins/default/textures/lag_status_critical.tga
+++ b/indra/newview/skins/default/textures/lag_status_critical.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/lag_status_good.tga b/indra/newview/skins/default/textures/lag_status_good.tga
index 680ba90f17..680ba90f17 100644..100755
--- a/indra/newview/skins/default/textures/lag_status_good.tga
+++ b/indra/newview/skins/default/textures/lag_status_good.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/lag_status_warning.tga b/indra/newview/skins/default/textures/lag_status_warning.tga
index 13ce3cc396..13ce3cc396 100644..100755
--- a/indra/newview/skins/default/textures/lag_status_warning.tga
+++ b/indra/newview/skins/default/textures/lag_status_warning.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/legend.tga b/indra/newview/skins/default/textures/legend.tga
index 0dbb8fda4f..0dbb8fda4f 100644..100755
--- a/indra/newview/skins/default/textures/legend.tga
+++ b/indra/newview/skins/default/textures/legend.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/locked_image.j2c b/indra/newview/skins/default/textures/locked_image.j2c
index 9e8998d675..9e8998d675 100644..100755
--- a/indra/newview/skins/default/textures/locked_image.j2c
+++ b/indra/newview/skins/default/textures/locked_image.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_16.tga b/indra/newview/skins/default/textures/map_avatar_16.tga
index f59e9e9193..f59e9e9193 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_16.tga
+++ b/indra/newview/skins/default/textures/map_avatar_16.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_32.tga b/indra/newview/skins/default/textures/map_avatar_32.tga
index aebeab4093..aebeab4093 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_32.tga
+++ b/indra/newview/skins/default/textures/map_avatar_32.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_8.tga b/indra/newview/skins/default/textures/map_avatar_8.tga
index 8500eadeba..8500eadeba 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_8.tga
+++ b/indra/newview/skins/default/textures/map_avatar_8.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_above_32.tga b/indra/newview/skins/default/textures/map_avatar_above_32.tga
index 65bd0561a7..65bd0561a7 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_above_32.tga
+++ b/indra/newview/skins/default/textures/map_avatar_above_32.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_below_32.tga b/indra/newview/skins/default/textures/map_avatar_below_32.tga
index 496c44b369..496c44b369 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_below_32.tga
+++ b/indra/newview/skins/default/textures/map_avatar_below_32.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_unknown_32.tga b/indra/newview/skins/default/textures/map_avatar_unknown_32.tga
index d1192478c6..d1192478c6 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_unknown_32.tga
+++ b/indra/newview/skins/default/textures/map_avatar_unknown_32.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_avatar_you_32.tga b/indra/newview/skins/default/textures/map_avatar_you_32.tga
index 782207efd6..782207efd6 100644..100755
--- a/indra/newview/skins/default/textures/map_avatar_you_32.tga
+++ b/indra/newview/skins/default/textures/map_avatar_you_32.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_event.tga b/indra/newview/skins/default/textures/map_event.tga
index 2c06d08fd2..2c06d08fd2 100644..100755
--- a/indra/newview/skins/default/textures/map_event.tga
+++ b/indra/newview/skins/default/textures/map_event.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_home.tga b/indra/newview/skins/default/textures/map_home.tga
index acaaa3db44..acaaa3db44 100644..100755
--- a/indra/newview/skins/default/textures/map_home.tga
+++ b/indra/newview/skins/default/textures/map_home.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_infohub.tga b/indra/newview/skins/default/textures/map_infohub.tga
index d0134fa5fe..d0134fa5fe 100644..100755
--- a/indra/newview/skins/default/textures/map_infohub.tga
+++ b/indra/newview/skins/default/textures/map_infohub.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_telehub.tga b/indra/newview/skins/default/textures/map_telehub.tga
index 545b8e532c..545b8e532c 100644..100755
--- a/indra/newview/skins/default/textures/map_telehub.tga
+++ b/indra/newview/skins/default/textures/map_telehub.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/map_track_16.tga b/indra/newview/skins/default/textures/map_track_16.tga
index 451ce24cf0..451ce24cf0 100644..100755
--- a/indra/newview/skins/default/textures/map_track_16.tga
+++ b/indra/newview/skins/default/textures/map_track_16.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/menu_separator.png b/indra/newview/skins/default/textures/menu_separator.png
index 89dcdcdff5..89dcdcdff5 100644..100755
--- a/indra/newview/skins/default/textures/menu_separator.png
+++ b/indra/newview/skins/default/textures/menu_separator.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/missing_asset.tga b/indra/newview/skins/default/textures/missing_asset.tga
index 9a43f4db5d..9a43f4db5d 100644..100755
--- a/indra/newview/skins/default/textures/missing_asset.tga
+++ b/indra/newview/skins/default/textures/missing_asset.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png b/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
index d0b213cdc5..d0b213cdc5 100644..100755
--- a/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
+++ b/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/model_wizard/progress_light.png b/indra/newview/skins/default/textures/model_wizard/progress_light.png
index 019344f812..019344f812 100644..100755
--- a/indra/newview/skins/default/textures/model_wizard/progress_light.png
+++ b/indra/newview/skins/default/textures/model_wizard/progress_light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png b/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png
index 19569501fe..19569501fe 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png b/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png
index 3648c42656..3648c42656 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
index 0b3f252ccf..0b3f252ccf 100644..100755
--- a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
+++ b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
index 5c4c150bed..5c4c150bed 100644..100755
--- a/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
+++ b/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png b/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png
index d4f126f969..d4f126f969 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
index e27dbe2cad..e27dbe2cad 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
index 82d044d817..82d044d817 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
index 7909d54f2b..7909d54f2b 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
index 6670667022..6670667022 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png b/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png
index 5ab4abc5b8..5ab4abc5b8 100644..100755
--- a/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png
+++ b/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Flag.png b/indra/newview/skins/default/textures/navbar/Flag.png
index df53c89224..df53c89224 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Flag.png
+++ b/indra/newview/skins/default/textures/navbar/Flag.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Help_Press.png b/indra/newview/skins/default/textures/navbar/Help_Press.png
index ed3695f9d5..ed3695f9d5 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Help_Press.png
+++ b/indra/newview/skins/default/textures/navbar/Help_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Home_Off.png b/indra/newview/skins/default/textures/navbar/Home_Off.png
index fe3bc63b77..fe3bc63b77 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Home_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Home_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Info_Off.png b/indra/newview/skins/default/textures/navbar/Info_Off.png
index 64722255a3..64722255a3 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Info_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Info_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Info_Over.png b/indra/newview/skins/default/textures/navbar/Info_Over.png
index 84f1d03129..84f1d03129 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Info_Over.png
+++ b/indra/newview/skins/default/textures/navbar/Info_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Info_Press.png b/indra/newview/skins/default/textures/navbar/Info_Press.png
index 169105829e..169105829e 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Info_Press.png
+++ b/indra/newview/skins/default/textures/navbar/Info_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Lock.png b/indra/newview/skins/default/textures/navbar/Lock.png
index cf569d6ad2..cf569d6ad2 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Lock.png
+++ b/indra/newview/skins/default/textures/navbar/Lock.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG.png b/indra/newview/skins/default/textures/navbar/NavBar_BG.png
index 38eea783e6..38eea783e6 100644..100755
--- a/indra/newview/skins/default/textures/navbar/NavBar_BG.png
+++ b/indra/newview/skins/default/textures/navbar/NavBar_BG.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png
index a79d999932..a79d999932 100644..100755
--- a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png
+++ b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png
index b692ed92da..b692ed92da 100644..100755
--- a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png
+++ b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Row_Selection.png b/indra/newview/skins/default/textures/navbar/Row_Selection.png
index fc4f0c07ef..fc4f0c07ef 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Row_Selection.png
+++ b/indra/newview/skins/default/textures/navbar/Row_Selection.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Search.png b/indra/newview/skins/default/textures/navbar/Search.png
index 0d0e330bc7..0d0e330bc7 100644..100755
--- a/indra/newview/skins/default/textures/navbar/Search.png
+++ b/indra/newview/skins/default/textures/navbar/Search.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/separator.png b/indra/newview/skins/default/textures/navbar/separator.png
index b93e5791a7..b93e5791a7 100644..100755
--- a/indra/newview/skins/default/textures/navbar/separator.png
+++ b/indra/newview/skins/default/textures/navbar/separator.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/notify_caution_icon.tga b/indra/newview/skins/default/textures/notify_caution_icon.tga
index abc23d1d7a..abc23d1d7a 100644..100755
--- a/indra/newview/skins/default/textures/notify_caution_icon.tga
+++ b/indra/newview/skins/default/textures/notify_caution_icon.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/pixiesmall.j2c b/indra/newview/skins/default/textures/pixiesmall.j2c
index a1ff64014b..a1ff64014b 100644..100755
--- a/indra/newview/skins/default/textures/pixiesmall.j2c
+++ b/indra/newview/skins/default/textures/pixiesmall.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/red_x.png b/indra/newview/skins/default/textures/red_x.png
index a61202f09b..a61202f09b 100644..100755
--- a/indra/newview/skins/default/textures/red_x.png
+++ b/indra/newview/skins/default/textures/red_x.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/rounded_square.j2c b/indra/newview/skins/default/textures/rounded_square.j2c
index c8bb572fa9..c8bb572fa9 100644..100755
--- a/indra/newview/skins/default/textures/rounded_square.j2c
+++ b/indra/newview/skins/default/textures/rounded_square.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/script_error.j2c b/indra/newview/skins/default/textures/script_error.j2c
index 893cb642e7..893cb642e7 100644..100755
--- a/indra/newview/skins/default/textures/script_error.j2c
+++ b/indra/newview/skins/default/textures/script_error.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/silhouette.j2c b/indra/newview/skins/default/textures/silhouette.j2c
index 3859d4cb34..3859d4cb34 100644..100755
--- a/indra/newview/skins/default/textures/silhouette.j2c
+++ b/indra/newview/skins/default/textures/silhouette.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/slim_icon_16_viewer.tga b/indra/newview/skins/default/textures/slim_icon_16_viewer.tga
index 552181d36a..552181d36a 100644..100755
--- a/indra/newview/skins/default/textures/slim_icon_16_viewer.tga
+++ b/indra/newview/skins/default/textures/slim_icon_16_viewer.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/snapshot_download.png b/indra/newview/skins/default/textures/snapshot_download.png
index 6aa1abded5..6aa1abded5 100644..100755
--- a/indra/newview/skins/default/textures/snapshot_download.png
+++ b/indra/newview/skins/default/textures/snapshot_download.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/snapshot_email.png b/indra/newview/skins/default/textures/snapshot_email.png
index dee784a9bf..dee784a9bf 100644..100755
--- a/indra/newview/skins/default/textures/snapshot_email.png
+++ b/indra/newview/skins/default/textures/snapshot_email.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/spacer24.tga b/indra/newview/skins/default/textures/spacer24.tga
index c7cab6b38c..c7cab6b38c 100644..100755
--- a/indra/newview/skins/default/textures/spacer24.tga
+++ b/indra/newview/skins/default/textures/spacer24.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/tabarea.tga b/indra/newview/skins/default/textures/tabarea.tga
index 5517aebfc8..5517aebfc8 100644..100755
--- a/indra/newview/skins/default/textures/tabarea.tga
+++ b/indra/newview/skins/default/textures/tabarea.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png b/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png
index 213acbe87b..213acbe87b 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png
+++ b/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
index 50c01062a5..50c01062a5 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
index bf2065cd37..bf2065cd37 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
index 8b48258142..8b48258142 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
index 09efe779fe..09efe779fe 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Close_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Close_Off.png
index bc4e00c646..bc4e00c646 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Close_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Close_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Selected.png
index 293aeef5e6..293aeef5e6 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Selected.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png
index 760db9360d..760db9360d 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Open_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Open_Off.png
index 4556602f58..4556602f58 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Open_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Open_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png
index 691b600510..691b600510 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png
index f5a5f7a846..f5a5f7a846 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Off.png
index e56eda9802..e56eda9802 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png
index 4ed7a2b183..4ed7a2b183 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png
+++ b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png
index b3316386b9..b3316386b9 100644..100755
--- a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png
+++ b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/tearoff_pressed.tga b/indra/newview/skins/default/textures/tearoff_pressed.tga
index 620d109de0..620d109de0 100644..100755
--- a/indra/newview/skins/default/textures/tearoff_pressed.tga
+++ b/indra/newview/skins/default/textures/tearoff_pressed.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/tearoffbox.tga b/indra/newview/skins/default/textures/tearoffbox.tga
index 0670d2e91b..0670d2e91b 100644..100755
--- a/indra/newview/skins/default/textures/tearoffbox.tga
+++ b/indra/newview/skins/default/textures/tearoffbox.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 93c9cb02cb..fcab966dee 100644..100755
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -724,9 +724,6 @@ with the same filename but different name
<texture name="icon_for_sale.tga" file_name="icons/Icon_For_Sale.png" />
<texture name="icon_top_pick.tga" />
- <texture name="inv_folder_mesh.tga"/>
- <texture name="inv_item_mesh.tga"/>
-
<texture name="lag_status_critical.tga" />
<texture name="lag_status_good.tga" />
<texture name="lag_status_warning.tga" />
diff --git a/indra/newview/skins/default/textures/toolbar_icons/appearance.png b/indra/newview/skins/default/textures/toolbar_icons/appearance.png
index e6b1365388..e6b1365388 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/appearance.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/appearance.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/avatars.png b/indra/newview/skins/default/textures/toolbar_icons/avatars.png
index 8fa0600cee..8fa0600cee 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/avatars.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/avatars.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/build.png b/indra/newview/skins/default/textures/toolbar_icons/build.png
index e21ab3f0e4..e21ab3f0e4 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/build.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/build.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/caret_bottom.png b/indra/newview/skins/default/textures/toolbar_icons/caret_bottom.png
index 5f6a01eaa1..5f6a01eaa1 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/caret_bottom.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/caret_bottom.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/caret_left.png b/indra/newview/skins/default/textures/toolbar_icons/caret_left.png
index 0b8090314c..0b8090314c 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/caret_left.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/caret_left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/caret_right.png b/indra/newview/skins/default/textures/toolbar_icons/caret_right.png
index 044751560f..044751560f 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/caret_right.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/caret_right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/chat.png b/indra/newview/skins/default/textures/toolbar_icons/chat.png
index e0dbac495f..e0dbac495f 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/chat.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/chat.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/destinations.png b/indra/newview/skins/default/textures/toolbar_icons/destinations.png
index e2325f083a..e2325f083a 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/destinations.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/destinations.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/gestures.png b/indra/newview/skins/default/textures/toolbar_icons/gestures.png
index 2404bb4e25..2404bb4e25 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/gestures.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/gestures.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/howto.png b/indra/newview/skins/default/textures/toolbar_icons/howto.png
index 8594d71113..8594d71113 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/howto.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/howto.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/inventory.png b/indra/newview/skins/default/textures/toolbar_icons/inventory.png
index ab3191255e..ab3191255e 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/inventory.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/inventory.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/land.png b/indra/newview/skins/default/textures/toolbar_icons/land.png
index 89ea7604a4..89ea7604a4 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/land.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/land.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/map.png b/indra/newview/skins/default/textures/toolbar_icons/map.png
index ed1049b7db..ed1049b7db 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/map.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/map.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/marketplace.png b/indra/newview/skins/default/textures/toolbar_icons/marketplace.png
index 62bad20be6..62bad20be6 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/marketplace.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/marketplace.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png b/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
index 9fcf46794d..9fcf46794d 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/mini_map.png b/indra/newview/skins/default/textures/toolbar_icons/mini_map.png
index ab0a654056..ab0a654056 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/mini_map.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/mini_map.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/move.png b/indra/newview/skins/default/textures/toolbar_icons/move.png
index 5c2ced7375..5c2ced7375 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/move.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/move.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/nearbyvoice.png b/indra/newview/skins/default/textures/toolbar_icons/nearbyvoice.png
index 77a7cd5f44..77a7cd5f44 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/nearbyvoice.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/nearbyvoice.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/outbox.png b/indra/newview/skins/default/textures/toolbar_icons/outbox.png
index 0f3db1c47c..0f3db1c47c 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/outbox.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/outbox.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/people.png b/indra/newview/skins/default/textures/toolbar_icons/people.png
index 7228ae8e2f..7228ae8e2f 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/people.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/people.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/picks.png b/indra/newview/skins/default/textures/toolbar_icons/picks.png
index befda04b42..befda04b42 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/picks.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/picks.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/places.png b/indra/newview/skins/default/textures/toolbar_icons/places.png
index 97d9fa066c..97d9fa066c 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/places.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/places.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/preferences.png b/indra/newview/skins/default/textures/toolbar_icons/preferences.png
index 4ccd7b8ae1..4ccd7b8ae1 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/preferences.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/preferences.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/profile.png b/indra/newview/skins/default/textures/toolbar_icons/profile.png
index 32fe2bf8ac..32fe2bf8ac 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/profile.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/profile.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/search.png b/indra/newview/skins/default/textures/toolbar_icons/search.png
index bcb11e950d..bcb11e950d 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/search.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/search.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/snapshot.png b/indra/newview/skins/default/textures/toolbar_icons/snapshot.png
index d26da9b1d2..d26da9b1d2 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/snapshot.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/snapshot.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/speak.png b/indra/newview/skins/default/textures/toolbar_icons/speak.png
index 10cd354c5c..10cd354c5c 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/speak.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/speak.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/view.png b/indra/newview/skins/default/textures/toolbar_icons/view.png
index ddf0df7c26..ddf0df7c26 100644..100755
--- a/indra/newview/skins/default/textures/toolbar_icons/view.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/view.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/transparent.j2c b/indra/newview/skins/default/textures/transparent.j2c
index 1068e940b9..1068e940b9 100644..100755
--- a/indra/newview/skins/default/textures/transparent.j2c
+++ b/indra/newview/skins/default/textures/transparent.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/up_arrow.png b/indra/newview/skins/default/textures/up_arrow.png
index fe68ad49dc..fe68ad49dc 100644..100755
--- a/indra/newview/skins/default/textures/up_arrow.png
+++ b/indra/newview/skins/default/textures/up_arrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/uv_test1.j2c b/indra/newview/skins/default/textures/uv_test1.j2c
index 3d5b541796..3d5b541796 100644..100755
--- a/indra/newview/skins/default/textures/uv_test1.j2c
+++ b/indra/newview/skins/default/textures/uv_test1.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/uv_test2.tga b/indra/newview/skins/default/textures/uv_test2.tga
index a16000d1e4..a16000d1e4 100644..100755
--- a/indra/newview/skins/default/textures/uv_test2.tga
+++ b/indra/newview/skins/default/textures/uv_test2.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/voice_meter_dot.j2c b/indra/newview/skins/default/textures/voice_meter_dot.j2c
index e536c3338a..e536c3338a 100644..100755
--- a/indra/newview/skins/default/textures/voice_meter_dot.j2c
+++ b/indra/newview/skins/default/textures/voice_meter_dot.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/voice_meter_rings.j2c b/indra/newview/skins/default/textures/voice_meter_rings.j2c
index 17e7c6c6a1..17e7c6c6a1 100644..100755
--- a/indra/newview/skins/default/textures/voice_meter_rings.j2c
+++ b/indra/newview/skins/default/textures/voice_meter_rings.j2c
Binary files differ
diff --git a/indra/newview/skins/default/textures/white.tga b/indra/newview/skins/default/textures/white.tga
index 9fe68631cf..9fe68631cf 100644..100755
--- a/indra/newview/skins/default/textures/white.tga
+++ b/indra/newview/skins/default/textures/white.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Down.png b/indra/newview/skins/default/textures/widgets/Arrow_Down.png
index e10f6472eb..e10f6472eb 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Down.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Down.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Left.png b/indra/newview/skins/default/textures/widgets/Arrow_Left.png
index a424282839..a424282839 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Left.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Right.png b/indra/newview/skins/default/textures/widgets/Arrow_Right.png
index e32bee8f34..e32bee8f34 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Right.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Small_Left.png b/indra/newview/skins/default/textures/widgets/Arrow_Small_Left.png
index 2d624c3779..2d624c3779 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Small_Left.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Small_Left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Small_Right.png b/indra/newview/skins/default/textures/widgets/Arrow_Small_Right.png
index 91c03c426e..91c03c426e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Small_Right.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Small_Right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Small_Up.png b/indra/newview/skins/default/textures/widgets/Arrow_Small_Up.png
index 38aac0e5ca..38aac0e5ca 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Small_Up.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Small_Up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Up.png b/indra/newview/skins/default/textures/widgets/Arrow_Up.png
index 48df69d82e..48df69d82e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Up.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Badge_Background.png b/indra/newview/skins/default/textures/widgets/Badge_Background.png
index 5089c30312..5089c30312 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Badge_Background.png
+++ b/indra/newview/skins/default/textures/widgets/Badge_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Badge_Border.png b/indra/newview/skins/default/textures/widgets/Badge_Border.png
index 4b086a63fb..4b086a63fb 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Badge_Border.png
+++ b/indra/newview/skins/default/textures/widgets/Badge_Border.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
index c7c0eaa96b..c7c0eaa96b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
index 4a73c254fc..4a73c254fc 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
index 6fb5c432de..6fb5c432de 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
index fa18517933..fa18517933 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
index bed1a701bd..bed1a701bd 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
index 57ce9af574..57ce9af574 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
index 2c43022f0e..2c43022f0e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
index 6b8c1baca4..6b8c1baca4 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
index 51505e80c5..51505e80c5 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
index 9f93efbd93..9f93efbd93 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
index 3a4ec1a315..3a4ec1a315 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
index 1f1b4c2ed5..1f1b4c2ed5 100644..100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png
index c1ee210099..c1ee210099 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Off.png b/indra/newview/skins/default/textures/widgets/Checkbox_Off.png
index 2525405f37..2525405f37 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_Off.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On.png b/indra/newview/skins/default/textures/widgets/Checkbox_On.png
index 2d9dba1592..2d9dba1592 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_On.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png
index beaa7bcbf6..beaa7bcbf6 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png
index 5bced95a89..5bced95a89 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_Press.png
index 44be193678..44be193678 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Checkbox_Press.png
+++ b/indra/newview/skins/default/textures/widgets/Checkbox_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png b/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png
index d0fff1b3c3..d0fff1b3c3 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Off.png b/indra/newview/skins/default/textures/widgets/ComboButton_Off.png
index 80402458b7..80402458b7 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_Off.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_On.png b/indra/newview/skins/default/textures/widgets/ComboButton_On.png
index b42cc7542e..b42cc7542e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_On.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png b/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png
index bbc0657487..bbc0657487 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png b/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png
index 2330cb420b..2330cb420b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png b/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png
index b7b5c2e1d4..b7b5c2e1d4 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png
+++ b/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Off.png b/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Off.png
index 75057938d2..75057938d2 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Off.png
+++ b/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png b/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png
index b295752ea9..b295752ea9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Off.png b/indra/newview/skins/default/textures/widgets/DropDown_Off.png
index 4764ed4ee2..4764ed4ee2 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DropDown_Off.png
+++ b/indra/newview/skins/default/textures/widgets/DropDown_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_On.png b/indra/newview/skins/default/textures/widgets/DropDown_On.png
index 10262d3979..10262d3979 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DropDown_On.png
+++ b/indra/newview/skins/default/textures/widgets/DropDown_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Press.png b/indra/newview/skins/default/textures/widgets/DropDown_Press.png
index 16cb25cc77..16cb25cc77 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DropDown_Press.png
+++ b/indra/newview/skins/default/textures/widgets/DropDown_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/DropTarget.png b/indra/newview/skins/default/textures/widgets/DropTarget.png
index 3740c98cbc..3740c98cbc 100644..100755
--- a/indra/newview/skins/default/textures/widgets/DropTarget.png
+++ b/indra/newview/skins/default/textures/widgets/DropTarget.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Error_Tag_Background.png b/indra/newview/skins/default/textures/widgets/Error_Tag_Background.png
index c8dbc8e87a..c8dbc8e87a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Error_Tag_Background.png
+++ b/indra/newview/skins/default/textures/widgets/Error_Tag_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Linden_Dollar_Alert.png b/indra/newview/skins/default/textures/widgets/Linden_Dollar_Alert.png
index a1f21e8194..a1f21e8194 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Linden_Dollar_Alert.png
+++ b/indra/newview/skins/default/textures/widgets/Linden_Dollar_Alert.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Linden_Dollar_Background.png b/indra/newview/skins/default/textures/widgets/Linden_Dollar_Background.png
index 61f9b076ce..61f9b076ce 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Linden_Dollar_Background.png
+++ b/indra/newview/skins/default/textures/widgets/Linden_Dollar_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ListItem_Over.png b/indra/newview/skins/default/textures/widgets/ListItem_Over.png
index 4b2b9ab3e5..4b2b9ab3e5 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ListItem_Over.png
+++ b/indra/newview/skins/default/textures/widgets/ListItem_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ListItem_Select.png b/indra/newview/skins/default/textures/widgets/ListItem_Select.png
index 317c672441..317c672441 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ListItem_Select.png
+++ b/indra/newview/skins/default/textures/widgets/ListItem_Select.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png
index e603c44384..e603c44384 100644..100755
--- a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png
+++ b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png
index fbc164123f..fbc164123f 100644..100755
--- a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/New_Tag_Background.png b/indra/newview/skins/default/textures/widgets/New_Tag_Background.png
index cd639dd80f..cd639dd80f 100644..100755
--- a/indra/newview/skins/default/textures/widgets/New_Tag_Background.png
+++ b/indra/newview/skins/default/textures/widgets/New_Tag_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/New_Tag_Border.png b/indra/newview/skins/default/textures/widgets/New_Tag_Border.png
index 56df0d0127..56df0d0127 100644..100755
--- a/indra/newview/skins/default/textures/widgets/New_Tag_Border.png
+++ b/indra/newview/skins/default/textures/widgets/New_Tag_Border.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ProgressBar.png b/indra/newview/skins/default/textures/widgets/ProgressBar.png
index 3f0e4eba28..3f0e4eba28 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ProgressBar.png
+++ b/indra/newview/skins/default/textures/widgets/ProgressBar.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ProgressTrack.png b/indra/newview/skins/default/textures/widgets/ProgressTrack.png
index bb6d9f4144..bb6d9f4144 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ProgressTrack.png
+++ b/indra/newview/skins/default/textures/widgets/ProgressTrack.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png b/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png
index 04e91bdaab..04e91bdaab 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Off.png b/indra/newview/skins/default/textures/widgets/PushButton_Off.png
index 1ee0329e66..1ee0329e66 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Off.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On.png b/indra/newview/skins/default/textures/widgets/PushButton_On.png
index 661d1c5611..661d1c5611 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_On.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png b/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png
index 48e8aa2eab..48e8aa2eab 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Over.png
index c227f07513..c227f07513 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Over.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Press.png b/indra/newview/skins/default/textures/widgets/PushButton_Press.png
index 0a4a3a6ad9..0a4a3a6ad9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Press.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected.png
index 0a4a3a6ad9..0a4a3a6ad9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.png
index 661d1c5611..661d1c5611 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png
index 48e8aa2eab..48e8aa2eab 100644..100755
--- a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png
+++ b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png
index a1052684b9..a1052684b9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Off.png b/indra/newview/skins/default/textures/widgets/RadioButton_Off.png
index c58e0305ef..c58e0305ef 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_Off.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On.png b/indra/newview/skins/default/textures/widgets/RadioButton_On.png
index c09a2197c7..c09a2197c7 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_On.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png
index d7d444fd0c..d7d444fd0c 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png
index a707e8ceb8..a707e8ceb8 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Press.png b/indra/newview/skins/default/textures/widgets/RadioButton_Press.png
index 33eaa14030..33eaa14030 100644..100755
--- a/indra/newview/skins/default/textures/widgets/RadioButton_Press.png
+++ b/indra/newview/skins/default/textures/widgets/RadioButton_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png
index 186822da43..186822da43 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png
index a396380fb2..a396380fb2 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png
index 9568dea78a..9568dea78a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png
index 42f999a451..42f999a451 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png
index 549b3980f6..549b3980f6 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png
index a74abd5d8a..a74abd5d8a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png
index 176ffcdbb9..176ffcdbb9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png
index 36056d0ad9..36056d0ad9 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png
index 0c1fd6956b..0c1fd6956b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up.png
index 4d245eb57a..4d245eb57a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png
index 67a7a5568b..67a7a5568b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png
index 0cc8c4404b..0cc8c4404b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png
index 8a085aa966..8a085aa966 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png
index fc7fd93e7a..fc7fd93e7a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png b/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png
index 4f31c48c02..4f31c48c02 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png b/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png
index f89ee3f68f..f89ee3f68f 100644..100755
--- a/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png
+++ b/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png
index 3b39c51a77..3b39c51a77 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.png
index 57ed79d733..57ed79d733 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png
index 5b8878e0cb..5b8878e0cb 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.png
index 379953216b..379953216b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.png
index 379953216b..379953216b 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.png
index 77c4224539..77c4224539 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.png
index 8b93dd551e..8b93dd551e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png
index 3f207cbea2..3f207cbea2 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png
index deb87c8489..deb87c8489 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png
index ca7027da91..ca7027da91 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png
index 220df9db25..220df9db25 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png
index dde367f05e..dde367f05e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.png
index 8e6b9c8c6f..8e6b9c8c6f 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.png
index b1521199ff..b1521199ff 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.png
index 1574f48b28..1574f48b28 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.png
index 2717e7d7b0..2717e7d7b0 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.png
index 3883518033..3883518033 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.png
index 3883518033..3883518033 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.png
index ab31f6ded7..ab31f6ded7 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.png
index 1574f48b28..1574f48b28 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png
index b627232012..b627232012 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png
index b627232012..b627232012 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png
+++ b/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png
index 7081f9cfe0..7081f9cfe0 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png
+++ b/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png b/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png
index 232006ee5a..232006ee5a 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png
+++ b/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png b/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png
index cd002b3973..cd002b3973 100644..100755
--- a/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png
+++ b/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png b/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png
index cf0d8ee2c1..cf0d8ee2c1 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png
+++ b/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png b/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png
index fe3a7beafd..fe3a7beafd 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png
+++ b/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png b/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png
index 133589b8a6..133589b8a6 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png
+++ b/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png b/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png
index e83babc519..e83babc519 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png
+++ b/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Active.png b/indra/newview/skins/default/textures/widgets/TextField_Active.png
index ca6daab4e0..ca6daab4e0 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Active.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Active.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Disabled.png b/indra/newview/skins/default/textures/widgets/TextField_Disabled.png
index 3d205a3f2e..3d205a3f2e 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Off.png b/indra/newview/skins/default/textures/widgets/TextField_Off.png
index 911d907acc..911d907acc 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Off.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png b/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png
index fa79cb6260..fa79cb6260 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.png b/indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.png
index 8b504af101..8b504af101 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Search_Off.png b/indra/newview/skins/default/textures/widgets/TextField_Search_Off.png
index 862b13d219..862b13d219 100644..100755
--- a/indra/newview/skins/default/textures/widgets/TextField_Search_Off.png
+++ b/indra/newview/skins/default/textures/widgets/TextField_Search_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Tooltip.png b/indra/newview/skins/default/textures/widgets/Tooltip.png
index f989ac9083..f989ac9083 100644..100755
--- a/indra/newview/skins/default/textures/widgets/Tooltip.png
+++ b/indra/newview/skins/default/textures/widgets/Tooltip.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/bevel_background.png b/indra/newview/skins/default/textures/widgets/bevel_background.png
index fb5067503d..fb5067503d 100644..100755
--- a/indra/newview/skins/default/textures/widgets/bevel_background.png
+++ b/indra/newview/skins/default/textures/widgets/bevel_background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/buy_off.png b/indra/newview/skins/default/textures/widgets/buy_off.png
index ee5979046f..ee5979046f 100644..100755
--- a/indra/newview/skins/default/textures/widgets/buy_off.png
+++ b/indra/newview/skins/default/textures/widgets/buy_off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/buy_over.png b/indra/newview/skins/default/textures/widgets/buy_over.png
index 93adb68c86..93adb68c86 100644..100755
--- a/indra/newview/skins/default/textures/widgets/buy_over.png
+++ b/indra/newview/skins/default/textures/widgets/buy_over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/buy_press.png b/indra/newview/skins/default/textures/widgets/buy_press.png
index 3f442d6eaa..3f442d6eaa 100644..100755
--- a/indra/newview/skins/default/textures/widgets/buy_press.png
+++ b/indra/newview/skins/default/textures/widgets/buy_press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_left_in.png b/indra/newview/skins/default/textures/widgets/jump_left_in.png
index a1425ccfa0..a1425ccfa0 100644..100755
--- a/indra/newview/skins/default/textures/widgets/jump_left_in.png
+++ b/indra/newview/skins/default/textures/widgets/jump_left_in.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_left_out.png b/indra/newview/skins/default/textures/widgets/jump_left_out.png
index 38edf47d19..38edf47d19 100644..100755
--- a/indra/newview/skins/default/textures/widgets/jump_left_out.png
+++ b/indra/newview/skins/default/textures/widgets/jump_left_out.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_right_in.png b/indra/newview/skins/default/textures/widgets/jump_right_in.png
index 39359ab2e2..39359ab2e2 100644..100755
--- a/indra/newview/skins/default/textures/widgets/jump_right_in.png
+++ b/indra/newview/skins/default/textures/widgets/jump_right_in.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_right_out.png b/indra/newview/skins/default/textures/widgets/jump_right_out.png
index 3f76bbffac..3f76bbffac 100644..100755
--- a/indra/newview/skins/default/textures/widgets/jump_right_out.png
+++ b/indra/newview/skins/default/textures/widgets/jump_right_out.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Dragbar.png b/indra/newview/skins/default/textures/windows/Dragbar.png
index d94dda1aae..d94dda1aae 100644..100755
--- a/indra/newview/skins/default/textures/windows/Dragbar.png
+++ b/indra/newview/skins/default/textures/windows/Dragbar.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Flyout_Left.png b/indra/newview/skins/default/textures/windows/Flyout_Left.png
index 6ac9fe2efd..6ac9fe2efd 100644..100755
--- a/indra/newview/skins/default/textures/windows/Flyout_Left.png
+++ b/indra/newview/skins/default/textures/windows/Flyout_Left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Flyout_Pointer.png b/indra/newview/skins/default/textures/windows/Flyout_Pointer.png
index 69fc08ceaa..69fc08ceaa 100644..100755
--- a/indra/newview/skins/default/textures/windows/Flyout_Pointer.png
+++ b/indra/newview/skins/default/textures/windows/Flyout_Pointer.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Flyout_Right.png b/indra/newview/skins/default/textures/windows/Flyout_Right.png
index aa1f0625aa..aa1f0625aa 100644..100755
--- a/indra/newview/skins/default/textures/windows/Flyout_Right.png
+++ b/indra/newview/skins/default/textures/windows/Flyout_Right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
index 2292b79eda..2292b79eda 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Press.png b/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
index ea547fca6f..ea547fca6f 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Toast.png b/indra/newview/skins/default/textures/windows/Icon_Close_Toast.png
index ecf01c617a..ecf01c617a 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Toast.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Toast.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
index 4207ba68e5..4207ba68e5 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png b/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
index 2d09475783..2d09475783 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Gear_Background.png b/indra/newview/skins/default/textures/windows/Icon_Gear_Background.png
index 93d62a8d4f..93d62a8d4f 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Gear_Background.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Gear_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png
index b2b2a77a88..b2b2a77a88 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Gear_Press.png b/indra/newview/skins/default/textures/windows/Icon_Gear_Press.png
index 6fc3744d6b..6fc3744d6b 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Gear_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Gear_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
index 1a514742d3..1a514742d3 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
index 7478644b6a..7478644b6a 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
index 9f72a5422b..9f72a5422b 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
index 07db8be1b0..07db8be1b0 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
index 1e753aaf1d..1e753aaf1d 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png b/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
index be66b05230..be66b05230 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
index 9a71d16a3f..9a71d16a3f 100644..100755
--- a/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Inspector_Background.png b/indra/newview/skins/default/textures/windows/Inspector_Background.png
index 4c2a728ac5..4c2a728ac5 100644..100755
--- a/indra/newview/skins/default/textures/windows/Inspector_Background.png
+++ b/indra/newview/skins/default/textures/windows/Inspector_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Inspector_Hover.png b/indra/newview/skins/default/textures/windows/Inspector_Hover.png
index feeee78033..feeee78033 100644..100755
--- a/indra/newview/skins/default/textures/windows/Inspector_Hover.png
+++ b/indra/newview/skins/default/textures/windows/Inspector_Hover.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Inspector_I.png b/indra/newview/skins/default/textures/windows/Inspector_I.png
index b4875fd638..b4875fd638 100644..100755
--- a/indra/newview/skins/default/textures/windows/Inspector_I.png
+++ b/indra/newview/skins/default/textures/windows/Inspector_I.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Resize_Corner.png b/indra/newview/skins/default/textures/windows/Resize_Corner.png
index 16ed63e428..16ed63e428 100644..100755
--- a/indra/newview/skins/default/textures/windows/Resize_Corner.png
+++ b/indra/newview/skins/default/textures/windows/Resize_Corner.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Toast_Background.png b/indra/newview/skins/default/textures/windows/Toast_Background.png
index f27d1a12ec..f27d1a12ec 100644..100755
--- a/indra/newview/skins/default/textures/windows/Toast_Background.png
+++ b/indra/newview/skins/default/textures/windows/Toast_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png b/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png
index 78b137cdaf..78b137cdaf 100644..100755
--- a/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png
+++ b/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Toast_Over.png b/indra/newview/skins/default/textures/windows/Toast_Over.png
index 807e8e553c..807e8e553c 100644..100755
--- a/indra/newview/skins/default/textures/windows/Toast_Over.png
+++ b/indra/newview/skins/default/textures/windows/Toast_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Volume_Background.png b/indra/newview/skins/default/textures/windows/Volume_Background.png
index 43aaa441f5..43aaa441f5 100644..100755
--- a/indra/newview/skins/default/textures/windows/Volume_Background.png
+++ b/indra/newview/skins/default/textures/windows/Volume_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Wearables_Divider.png b/indra/newview/skins/default/textures/windows/Wearables_Divider.png
index 9dce7bf45c..9dce7bf45c 100644..100755
--- a/indra/newview/skins/default/textures/windows/Wearables_Divider.png
+++ b/indra/newview/skins/default/textures/windows/Wearables_Divider.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Window_Background.png b/indra/newview/skins/default/textures/windows/Window_Background.png
index db253900af..db253900af 100644..100755
--- a/indra/newview/skins/default/textures/windows/Window_Background.png
+++ b/indra/newview/skins/default/textures/windows/Window_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Window_Foreground.png b/indra/newview/skins/default/textures/windows/Window_Foreground.png
index b81ec5b43c..b81ec5b43c 100644..100755
--- a/indra/newview/skins/default/textures/windows/Window_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Window_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Window_NoTitle_Background.png b/indra/newview/skins/default/textures/windows/Window_NoTitle_Background.png
index a570ac06bd..a570ac06bd 100644..100755
--- a/indra/newview/skins/default/textures/windows/Window_NoTitle_Background.png
+++ b/indra/newview/skins/default/textures/windows/Window_NoTitle_Background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Window_NoTitle_Foreground.png b/indra/newview/skins/default/textures/windows/Window_NoTitle_Foreground.png
index d573e8c69a..d573e8c69a 100644..100755
--- a/indra/newview/skins/default/textures/windows/Window_NoTitle_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Window_NoTitle_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_down.png b/indra/newview/skins/default/textures/windows/hint_arrow_down.png
index ddadef0978..ddadef0978 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_down.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_down.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_left.png b/indra/newview/skins/default/textures/windows/hint_arrow_left.png
index 2794b967e8..2794b967e8 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_left.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png b/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
index 0dfc99898d..0dfc99898d 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_right.png b/indra/newview/skins/default/textures/windows/hint_arrow_right.png
index 7ac57f805b..7ac57f805b 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_right.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_up.png b/indra/newview/skins/default/textures/windows/hint_arrow_up.png
index bb3e1c07fa..bb3e1c07fa 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_up.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_background.png b/indra/newview/skins/default/textures/windows/hint_background.png
index cfac5deacb..cfac5deacb 100644..100755
--- a/indra/newview/skins/default/textures/windows/hint_background.png
+++ b/indra/newview/skins/default/textures/windows/hint_background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/startup_logo.png b/indra/newview/skins/default/textures/windows/startup_logo.png
index b89449692b..b89449692b 100644..100755
--- a/indra/newview/skins/default/textures/windows/startup_logo.png
+++ b/indra/newview/skins/default/textures/windows/startup_logo.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/yellow_gradient.png b/indra/newview/skins/default/textures/windows/yellow_gradient.png
index 5fd847aaef..5fd847aaef 100644..100755
--- a/indra/newview/skins/default/textures/windows/yellow_gradient.png
+++ b/indra/newview/skins/default/textures/windows/yellow_gradient.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/BeaconArrow.png b/indra/newview/skins/default/textures/world/BeaconArrow.png
index 54934f738a..54934f738a 100644..100755
--- a/indra/newview/skins/default/textures/world/BeaconArrow.png
+++ b/indra/newview/skins/default/textures/world/BeaconArrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/CameraDragDot.png b/indra/newview/skins/default/textures/world/CameraDragDot.png
index 57698e1956..57698e1956 100644..100755
--- a/indra/newview/skins/default/textures/world/CameraDragDot.png
+++ b/indra/newview/skins/default/textures/world/CameraDragDot.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/NoEntryLines.png b/indra/newview/skins/default/textures/world/NoEntryLines.png
index 18e270bde5..18e270bde5 100644..100755
--- a/indra/newview/skins/default/textures/world/NoEntryLines.png
+++ b/indra/newview/skins/default/textures/world/NoEntryLines.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/NoEntryPassLines.png b/indra/newview/skins/default/textures/world/NoEntryPassLines.png
index e4b8fc6ae2..e4b8fc6ae2 100644..100755
--- a/indra/newview/skins/default/textures/world/NoEntryPassLines.png
+++ b/indra/newview/skins/default/textures/world/NoEntryPassLines.png
Binary files differ
diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml
index fc8bc33096..fc8bc33096 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_about.xml
+++ b/indra/newview/skins/default/xui/da/floater_about.xml
diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml
index 5b9e618666..5b9e618666 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/da/floater_activeim.xml b/indra/newview/skins/default/xui/da/floater_activeim.xml
index 6fdac8d880..6fdac8d880 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/da/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/da/floater_animation_preview.xml b/indra/newview/skins/default/xui/da/floater_animation_preview.xml
index adf96841c0..adf96841c0 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_animation_preview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_auction.xml b/indra/newview/skins/default/xui/da/floater_auction.xml
index e74e8a991b..e74e8a991b 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_auction.xml
+++ b/indra/newview/skins/default/xui/da/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/da/floater_avatar_picker.xml b/indra/newview/skins/default/xui/da/floater_avatar_picker.xml
index e97089f61e..e97089f61e 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/da/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/da/floater_avatar_textures.xml b/indra/newview/skins/default/xui/da/floater_avatar_textures.xml
index d0d766eaab..d0d766eaab 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/da/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/da/floater_beacons.xml b/indra/newview/skins/default/xui/da/floater_beacons.xml
index 5100a6df1f..5100a6df1f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/da/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/da/floater_build_options.xml b/indra/newview/skins/default/xui/da/floater_build_options.xml
index d3c3ac1899..d3c3ac1899 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/da/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/da/floater_bulk_perms.xml b/indra/newview/skins/default/xui/da/floater_bulk_perms.xml
index 58a1c1b73e..58a1c1b73e 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/da/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/da/floater_bumps.xml b/indra/newview/skins/default/xui/da/floater_bumps.xml
index 6b265832cd..6b265832cd 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/da/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/da/floater_buy_contents.xml b/indra/newview/skins/default/xui/da/floater_buy_contents.xml
index 085fa2f9cc..085fa2f9cc 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/da/floater_buy_currency.xml b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
index 3c0428b2b0..3c0428b2b0 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/da/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/da/floater_buy_currency_html.xml
index e32b25ca17..e32b25ca17 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/da/floater_buy_land.xml b/indra/newview/skins/default/xui/da/floater_buy_land.xml
index f6ee78fa6d..f6ee78fa6d 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/da/floater_buy_object.xml b/indra/newview/skins/default/xui/da/floater_buy_object.xml
index 7eb4787139..7eb4787139 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/da/floater_camera.xml b/indra/newview/skins/default/xui/da/floater_camera.xml
index b5d5e8bc08..b5d5e8bc08 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_camera.xml
+++ b/indra/newview/skins/default/xui/da/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/da/floater_choose_group.xml b/indra/newview/skins/default/xui/da/floater_choose_group.xml
index 1ccda4f1d7..1ccda4f1d7 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/da/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/da/floater_color_picker.xml b/indra/newview/skins/default/xui/da/floater_color_picker.xml
index f744b06277..f744b06277 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/da/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/da/floater_critical.xml b/indra/newview/skins/default/xui/da/floater_critical.xml
index 8c2672f39f..8c2672f39f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_critical.xml
+++ b/indra/newview/skins/default/xui/da/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/da/floater_display_name.xml b/indra/newview/skins/default/xui/da/floater_display_name.xml
index e848006d8b..e848006d8b 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/da/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/da/floater_event.xml b/indra/newview/skins/default/xui/da/floater_event.xml
index a9eddaaf8d..a9eddaaf8d 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_event.xml
+++ b/indra/newview/skins/default/xui/da/floater_event.xml
diff --git a/indra/newview/skins/default/xui/da/floater_font_test.xml b/indra/newview/skins/default/xui/da/floater_font_test.xml
index 591d07188c..591d07188c 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/da/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/da/floater_gesture.xml b/indra/newview/skins/default/xui/da/floater_gesture.xml
index b7075e356a..b7075e356a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/da/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/da/floater_god_tools.xml b/indra/newview/skins/default/xui/da/floater_god_tools.xml
index 5d3453e327..5d3453e327 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/da/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
index a5942eb625..a5942eb625 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/da/floater_help_browser.xml b/indra/newview/skins/default/xui/da/floater_help_browser.xml
index 4eba4aee1f..4eba4aee1f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/da/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/da/floater_hud.xml b/indra/newview/skins/default/xui/da/floater_hud.xml
index c70da45955..c70da45955 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_hud.xml
+++ b/indra/newview/skins/default/xui/da/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/da/floater_im_container.xml b/indra/newview/skins/default/xui/da/floater_im_container.xml
index 28b2f7f7eb..28b2f7f7eb 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/da/floater_im_container.xml
diff --git a/indra/newview/skins/default/xui/da/floater_im_session.xml b/indra/newview/skins/default/xui/da/floater_im_session.xml
index 16df7e4b03..16df7e4b03 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/da/floater_im_session.xml
diff --git a/indra/newview/skins/default/xui/da/floater_image_preview.xml b/indra/newview/skins/default/xui/da/floater_image_preview.xml
index 5355127ef5..5355127ef5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_import_collada.xml b/indra/newview/skins/default/xui/da/floater_import_collada.xml
index ebc7c86388..ebc7c86388 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/da/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/da/floater_incoming_call.xml b/indra/newview/skins/default/xui/da/floater_incoming_call.xml
index dd8cb6f97a..dd8cb6f97a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/da/floater_incoming_call.xml
diff --git a/indra/newview/skins/default/xui/da/floater_inspect.xml b/indra/newview/skins/default/xui/da/floater_inspect.xml
index d0dca8863a..d0dca8863a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/da/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/da/floater_inventory.xml b/indra/newview/skins/default/xui/da/floater_inventory.xml
index 3a4b0fbd6b..3a4b0fbd6b 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/da/floater_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
index 59dcc87140..59dcc87140 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
index 655701bb96..655701bb96 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/da/floater_joystick.xml b/indra/newview/skins/default/xui/da/floater_joystick.xml
index 49e1397e9f..49e1397e9f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/da/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/da/floater_lagmeter.xml b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
index 149d174c34..149d174c34 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/da/floater_land_holdings.xml b/indra/newview/skins/default/xui/da/floater_land_holdings.xml
index b3c12627f7..b3c12627f7 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/da/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/da/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/da/floater_live_lsleditor.xml
index 0cc13fd736..0cc13fd736 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/da/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/da/floater_lsl_guide.xml b/indra/newview/skins/default/xui/da/floater_lsl_guide.xml
index 2594d6bb9d..2594d6bb9d 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/da/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/da/floater_map.xml b/indra/newview/skins/default/xui/da/floater_map.xml
index 4912d73ba0..4912d73ba0 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_map.xml
+++ b/indra/newview/skins/default/xui/da/floater_map.xml
diff --git a/indra/newview/skins/default/xui/da/floater_media_browser.xml b/indra/newview/skins/default/xui/da/floater_media_browser.xml
index d3028c32f9..d3028c32f9 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/da/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/da/floater_media_settings.xml b/indra/newview/skins/default/xui/da/floater_media_settings.xml
index 67c122b9d5..67c122b9d5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/da/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/da/floater_mem_leaking.xml b/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
index 60bb3149a5..60bb3149a5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/da/floater_model_preview.xml b/indra/newview/skins/default/xui/da/floater_model_preview.xml
index a98c70ff52..a98c70ff52 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_moveview.xml b/indra/newview/skins/default/xui/da/floater_moveview.xml
index 14d3604b43..14d3604b43 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/da/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_mute_object.xml b/indra/newview/skins/default/xui/da/floater_mute_object.xml
index 3b3f670792..3b3f670792 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/da/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/da/floater_nearby_chat.xml b/indra/newview/skins/default/xui/da/floater_nearby_chat.xml
index 76bc40edac..76bc40edac 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/da/floater_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/da/floater_openobject.xml b/indra/newview/skins/default/xui/da/floater_openobject.xml
index 92fdd1e0a6..92fdd1e0a6 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/da/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/da/floater_outgoing_call.xml b/indra/newview/skins/default/xui/da/floater_outgoing_call.xml
index a5545668a2..a5545668a2 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/da/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/da/floater_pay.xml b/indra/newview/skins/default/xui/da/floater_pay.xml
index 96ec106803..96ec106803 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_pay.xml
+++ b/indra/newview/skins/default/xui/da/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/da/floater_pay_object.xml b/indra/newview/skins/default/xui/da/floater_pay_object.xml
index 260b257c33..260b257c33 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/da/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/da/floater_perm_prefs.xml b/indra/newview/skins/default/xui/da/floater_perm_prefs.xml
index eecddbcdb0..eecddbcdb0 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/da/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/da/floater_postcard.xml b/indra/newview/skins/default/xui/da/floater_postcard.xml
index 44b0fd4faa..44b0fd4faa 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/da/floater_postcard.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preferences.xml b/indra/newview/skins/default/xui/da/floater_preferences.xml
index 6caac14cf5..6caac14cf5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/da/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preview_animation.xml b/indra/newview/skins/default/xui/da/floater_preview_animation.xml
index 436843decc..436843decc 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
index bd2b194717..bd2b194717 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preview_notecard.xml b/indra/newview/skins/default/xui/da/floater_preview_notecard.xml
index 5a0f5a32c0..5a0f5a32c0 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preview_sound.xml b/indra/newview/skins/default/xui/da/floater_preview_sound.xml
index 21f7656462..21f7656462 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/da/floater_preview_texture.xml b/indra/newview/skins/default/xui/da/floater_preview_texture.xml
index 48cf53f563..48cf53f563 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/da/floater_price_for_listing.xml b/indra/newview/skins/default/xui/da/floater_price_for_listing.xml
index b091fa09b5..b091fa09b5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/da/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/da/floater_publish_classified.xml b/indra/newview/skins/default/xui/da/floater_publish_classified.xml
index 0f65e6c18a..0f65e6c18a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/da/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/da/floater_region_debug_console.xml b/indra/newview/skins/default/xui/da/floater_region_debug_console.xml
index 71313f4fea..71313f4fea 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/da/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/da/floater_region_info.xml b/indra/newview/skins/default/xui/da/floater_region_info.xml
index ae00f90f16..ae00f90f16 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/da/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/da/floater_report_abuse.xml b/indra/newview/skins/default/xui/da/floater_report_abuse.xml
index 07978792b9..07978792b9 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/da/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_debug.xml b/indra/newview/skins/default/xui/da/floater_script_debug.xml
index df60a2e23f..df60a2e23f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/da/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_limits.xml b/indra/newview/skins/default/xui/da/floater_script_limits.xml
index a7f86a782a..a7f86a782a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_preview.xml b/indra/newview/skins/default/xui/da/floater_script_preview.xml
index 1aacab6915..1aacab6915 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_queue.xml b/indra/newview/skins/default/xui/da/floater_script_queue.xml
index 1ff5494458..1ff5494458 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/da/floater_script_search.xml b/indra/newview/skins/default/xui/da/floater_script_search.xml
index f1605cac34..f1605cac34 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/da/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/da/floater_search.xml b/indra/newview/skins/default/xui/da/floater_search.xml
index 80a30b1aa1..80a30b1aa1 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_search.xml
+++ b/indra/newview/skins/default/xui/da/floater_search.xml
diff --git a/indra/newview/skins/default/xui/da/floater_select_key.xml b/indra/newview/skins/default/xui/da/floater_select_key.xml
index 9f7aad5e03..9f7aad5e03 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/da/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/da/floater_sell_land.xml b/indra/newview/skins/default/xui/da/floater_sell_land.xml
index 873e6d7995..873e6d7995 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/da/floater_settings_debug.xml b/indra/newview/skins/default/xui/da/floater_settings_debug.xml
index f7eda56e48..f7eda56e48 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/da/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/da/floater_snapshot.xml b/indra/newview/skins/default/xui/da/floater_snapshot.xml
index 926c2429ac..926c2429ac 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/da/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/da/floater_sound_devices.xml b/indra/newview/skins/default/xui/da/floater_sound_devices.xml
index cb4cbba570..cb4cbba570 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/da/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/da/floater_sound_preview.xml b/indra/newview/skins/default/xui/da/floater_sound_preview.xml
index 5f74f28a23..5f74f28a23 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/da/floater_stats.xml b/indra/newview/skins/default/xui/da/floater_stats.xml
index fe3fa9626e..fe3fa9626e 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_stats.xml
+++ b/indra/newview/skins/default/xui/da/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/da/floater_sys_well.xml b/indra/newview/skins/default/xui/da/floater_sys_well.xml
index f203c2504f..f203c2504f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/da/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/da/floater_telehub.xml b/indra/newview/skins/default/xui/da/floater_telehub.xml
index 5a0e89aa98..5a0e89aa98 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/da/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml
index fbc7fe2319..fbc7fe2319 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml
diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml
index 815bde456e..815bde456e 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_tools.xml
+++ b/indra/newview/skins/default/xui/da/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/da/floater_top_objects.xml b/indra/newview/skins/default/xui/da/floater_top_objects.xml
index 86c24d2c19..86c24d2c19 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/da/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/da/floater_tos.xml b/indra/newview/skins/default/xui/da/floater_tos.xml
index af9ee0bd06..af9ee0bd06 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_tos.xml
+++ b/indra/newview/skins/default/xui/da/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/da/floater_url_entry.xml b/indra/newview/skins/default/xui/da/floater_url_entry.xml
index 30b3b7184b..30b3b7184b 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/da/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/da/floater_voice_controls.xml b/indra/newview/skins/default/xui/da/floater_voice_controls.xml
index 69de696bf5..69de696bf5 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/da/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/da/floater_voice_effect.xml b/indra/newview/skins/default/xui/da/floater_voice_effect.xml
index 86ad251103..86ad251103 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/da/floater_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/da/floater_web_content.xml b/indra/newview/skins/default/xui/da/floater_web_content.xml
index 74092e88ec..74092e88ec 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/da/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/da/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/da/floater_whitelist_entry.xml
index 443e84b64a..443e84b64a 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/da/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/da/floater_window_size.xml b/indra/newview/skins/default/xui/da/floater_window_size.xml
index db8ead21bd..db8ead21bd 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/da/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml
index 97364e0f9f..97364e0f9f 100644..100755
--- a/indra/newview/skins/default/xui/da/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/da/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/da/inspect_avatar.xml b/indra/newview/skins/default/xui/da/inspect_avatar.xml
index dc1ed562eb..dc1ed562eb 100644..100755
--- a/indra/newview/skins/default/xui/da/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/da/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/da/inspect_group.xml b/indra/newview/skins/default/xui/da/inspect_group.xml
index 486c5d8784..486c5d8784 100644..100755
--- a/indra/newview/skins/default/xui/da/inspect_group.xml
+++ b/indra/newview/skins/default/xui/da/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/da/inspect_object.xml b/indra/newview/skins/default/xui/da/inspect_object.xml
index 78ccc5b869..78ccc5b869 100644..100755
--- a/indra/newview/skins/default/xui/da/inspect_object.xml
+++ b/indra/newview/skins/default/xui/da/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/da/inspect_remote_object.xml b/indra/newview/skins/default/xui/da/inspect_remote_object.xml
index a06452afe6..a06452afe6 100644..100755
--- a/indra/newview/skins/default/xui/da/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/da/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/da/language_settings.xml b/indra/newview/skins/default/xui/da/language_settings.xml
index 0e3cbfd2d2..0e3cbfd2d2 100644..100755
--- a/indra/newview/skins/default/xui/da/language_settings.xml
+++ b/indra/newview/skins/default/xui/da/language_settings.xml
diff --git a/indra/newview/skins/default/xui/da/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/da/menu_add_wearable_gear.xml
index 1e8301dc4c..1e8301dc4c 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_attachment_other.xml b/indra/newview/skins/default/xui/da/menu_attachment_other.xml
index ca7b184942..ca7b184942 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/da/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/da/menu_attachment_self.xml b/indra/newview/skins/default/xui/da/menu_attachment_self.xml
index 35ba27f9e2..35ba27f9e2 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/da/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/da/menu_avatar_icon.xml b/indra/newview/skins/default/xui/da/menu_avatar_icon.xml
index 26b58ce1ab..26b58ce1ab 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/da/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/da/menu_avatar_other.xml b/indra/newview/skins/default/xui/da/menu_avatar_other.xml
index a778dedf0b..a778dedf0b 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/da/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/da/menu_avatar_self.xml b/indra/newview/skins/default/xui/da/menu_avatar_self.xml
index 4e6b42a744..4e6b42a744 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/da/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/da/menu_bottomtray.xml b/indra/newview/skins/default/xui/da/menu_bottomtray.xml
index a0d74db36d..a0d74db36d 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/da/menu_bottomtray.xml
diff --git a/indra/newview/skins/default/xui/da/menu_cof_attachment.xml b/indra/newview/skins/default/xui/da/menu_cof_attachment.xml
index 9d7fc0f223..9d7fc0f223 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/da/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/da/menu_cof_body_part.xml b/indra/newview/skins/default/xui/da/menu_cof_body_part.xml
index 0e90d5a3ae..0e90d5a3ae 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/da/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/da/menu_cof_clothing.xml b/indra/newview/skins/default/xui/da/menu_cof_clothing.xml
index 16c225b7d9..16c225b7d9 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/da/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/da/menu_cof_gear.xml b/indra/newview/skins/default/xui/da/menu_cof_gear.xml
index f44369fd84..f44369fd84 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_cof_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_edit.xml b/indra/newview/skins/default/xui/da/menu_edit.xml
index 3752f42b1c..3752f42b1c 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_edit.xml
+++ b/indra/newview/skins/default/xui/da/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/da/menu_favorites.xml b/indra/newview/skins/default/xui/da/menu_favorites.xml
index a4793e294c..a4793e294c 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/da/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/da/menu_gesture_gear.xml b/indra/newview/skins/default/xui/da/menu_gesture_gear.xml
index a9010e99b6..a9010e99b6 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_group_plus.xml b/indra/newview/skins/default/xui/da/menu_group_plus.xml
index 97fbec1ed1..97fbec1ed1 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/da/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/da/menu_hide_navbar.xml b/indra/newview/skins/default/xui/da/menu_hide_navbar.xml
index d96a8a8a17..d96a8a8a17 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/da/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/da/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/da/menu_imchiclet_adhoc.xml
index f64a6ad455..f64a6ad455 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/da/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/da/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/da/menu_imchiclet_group.xml
index b89d9a5789..b89d9a5789 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/da/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/da/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/da/menu_imchiclet_p2p.xml
index 6ebc40a8dd..6ebc40a8dd 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/da/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml
index 8da35adb1b..8da35adb1b 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/da/menu_inspect_object_gear.xml
index e28842836d..e28842836d 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml
index 887c6484bc..887c6484bc 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/da/menu_inv_offer_chiclet.xml
index c3b03232bf..c3b03232bf 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/da/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inventory.xml b/indra/newview/skins/default/xui/da/menu_inventory.xml
index f9bdf36f1f..f9bdf36f1f 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inventory_add.xml b/indra/newview/skins/default/xui/da/menu_inventory_add.xml
index eca03d3ee9..eca03d3ee9 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml
index 4809b24463..4809b24463 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/da/menu_land.xml b/indra/newview/skins/default/xui/da/menu_land.xml
index 1548f18f89..1548f18f89 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_land.xml
+++ b/indra/newview/skins/default/xui/da/menu_land.xml
diff --git a/indra/newview/skins/default/xui/da/menu_landmark.xml b/indra/newview/skins/default/xui/da/menu_landmark.xml
index 3cf2ffe375..3cf2ffe375 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/da/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/da/menu_login.xml b/indra/newview/skins/default/xui/da/menu_login.xml
index 0b7a5040ae..0b7a5040ae 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_login.xml
+++ b/indra/newview/skins/default/xui/da/menu_login.xml
diff --git a/indra/newview/skins/default/xui/da/menu_media_ctrl.xml b/indra/newview/skins/default/xui/da/menu_media_ctrl.xml
index 788b1c4b59..788b1c4b59 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/da/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/da/menu_mini_map.xml b/indra/newview/skins/default/xui/da/menu_mini_map.xml
index 186dbd476a..186dbd476a 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/da/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/da/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/da/menu_model_import_gear_default.xml
index d9626692d5..d9626692d5 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/da/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/da/menu_navbar.xml b/indra/newview/skins/default/xui/da/menu_navbar.xml
index c04206824a..c04206824a 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/da/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/da/menu_nearby_chat.xml b/indra/newview/skins/default/xui/da/menu_nearby_chat.xml
index be532ad406..be532ad406 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/da/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/da/menu_notification_well_button.xml b/indra/newview/skins/default/xui/da/menu_notification_well_button.xml
index 40b35b5fdd..40b35b5fdd 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/da/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/da/menu_object.xml b/indra/newview/skins/default/xui/da/menu_object.xml
index ba62ccf90c..ba62ccf90c 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_object.xml
+++ b/indra/newview/skins/default/xui/da/menu_object.xml
diff --git a/indra/newview/skins/default/xui/da/menu_object_icon.xml b/indra/newview/skins/default/xui/da/menu_object_icon.xml
index 08aeb633b6..08aeb633b6 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/da/menu_object_icon.xml
diff --git a/indra/newview/skins/default/xui/da/menu_outfit_gear.xml b/indra/newview/skins/default/xui/da/menu_outfit_gear.xml
index 0b0fff3b93..0b0fff3b93 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_outfit_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_outfit_tab.xml b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml
index d6a6f2724f..d6a6f2724f 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/da/menu_participant_list.xml b/indra/newview/skins/default/xui/da/menu_participant_list.xml
index 5951d3ffb9..5951d3ffb9 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/da/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml
index 32c5e6a6c7..32c5e6a6c7 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_groups.xml b/indra/newview/skins/default/xui/da/menu_people_groups.xml
index 841f58b619..841f58b619 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_groups.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml
index 0b9a791530..0b9a791530 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_nearby.xml b/indra/newview/skins/default/xui/da/menu_people_nearby.xml
index 5470c32761..5470c32761 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_nearby.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/da/menu_people_nearby_multiselect.xml
index 9318a0e340..9318a0e340 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_nearby_multiselect.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml
index 2f35ff3c92..2f35ff3c92 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml
index d081f637f2..d081f637f2 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/da/menu_picks.xml b/indra/newview/skins/default/xui/da/menu_picks.xml
index 81ee900773..81ee900773 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_picks.xml
+++ b/indra/newview/skins/default/xui/da/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/da/menu_picks_plus.xml b/indra/newview/skins/default/xui/da/menu_picks_plus.xml
index d95071fbbb..d95071fbbb 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/da/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/da/menu_place.xml b/indra/newview/skins/default/xui/da/menu_place.xml
index b87964ac14..b87964ac14 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_place.xml
+++ b/indra/newview/skins/default/xui/da/menu_place.xml
diff --git a/indra/newview/skins/default/xui/da/menu_place_add_button.xml b/indra/newview/skins/default/xui/da/menu_place_add_button.xml
index 7ad2253550..7ad2253550 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/da/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/da/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/da/menu_places_gear_folder.xml
index 5f573c2363..5f573c2363 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/da/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/da/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/da/menu_places_gear_landmark.xml
index 13dbcdd42e..13dbcdd42e 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/da/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/da/menu_profile_overflow.xml b/indra/newview/skins/default/xui/da/menu_profile_overflow.xml
index 6745007c99..6745007c99 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/da/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/da/menu_save_outfit.xml b/indra/newview/skins/default/xui/da/menu_save_outfit.xml
index 188229b586..188229b586 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/da/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/da/menu_script_chiclet.xml b/indra/newview/skins/default/xui/da/menu_script_chiclet.xml
index cdd3212373..cdd3212373 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/da/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/da/menu_slurl.xml b/indra/newview/skins/default/xui/da/menu_slurl.xml
index a9302e111e..a9302e111e 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/da/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/da/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/da/menu_teleport_history_gear.xml
index a1c25fea69..a1c25fea69 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/da/menu_teleport_history_item.xml
index dbaec62087..dbaec62087 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/da/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/da/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/da/menu_teleport_history_tab.xml
index c4d4bb4b5b..c4d4bb4b5b 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/da/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/da/menu_text_editor.xml b/indra/newview/skins/default/xui/da/menu_text_editor.xml
index 3ff31ea232..3ff31ea232 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/da/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/da/menu_topinfobar.xml b/indra/newview/skins/default/xui/da/menu_topinfobar.xml
index 08d1c25d6f..08d1c25d6f 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/da/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_agent.xml b/indra/newview/skins/default/xui/da/menu_url_agent.xml
index 491586f3b4..491586f3b4 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_agent.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_group.xml b/indra/newview/skins/default/xui/da/menu_url_group.xml
index c776159b0a..c776159b0a 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_http.xml b/indra/newview/skins/default/xui/da/menu_url_http.xml
index 4398777a39..4398777a39 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_inventory.xml b/indra/newview/skins/default/xui/da/menu_url_inventory.xml
index 9a7de23e06..9a7de23e06 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_map.xml b/indra/newview/skins/default/xui/da/menu_url_map.xml
index ff4a4d5174..ff4a4d5174 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_objectim.xml b/indra/newview/skins/default/xui/da/menu_url_objectim.xml
index e27cf84959..e27cf84959 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_objectim.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_parcel.xml b/indra/newview/skins/default/xui/da/menu_url_parcel.xml
index 0f21e14f66..0f21e14f66 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_slapp.xml b/indra/newview/skins/default/xui/da/menu_url_slapp.xml
index dd25db2aa7..dd25db2aa7 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_slurl.xml b/indra/newview/skins/default/xui/da/menu_url_slurl.xml
index 8d84a138bb..8d84a138bb 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/da/menu_url_teleport.xml b/indra/newview/skins/default/xui/da/menu_url_teleport.xml
index e0ca7b920d..e0ca7b920d 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/da/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml
index d695cd1f89..d695cd1f89 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/da/menu_viewer.xml
diff --git a/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml
index 63f4b0b388..63f4b0b388 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/menu_wearing_gear.xml b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml
index 515a15b287..515a15b287 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/da/menu_wearing_tab.xml b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml
index c0db7b6842..c0db7b6842 100644..100755
--- a/indra/newview/skins/default/xui/da/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/da/mime_types.xml b/indra/newview/skins/default/xui/da/mime_types.xml
index 0b00a29f07..0b00a29f07 100644..100755
--- a/indra/newview/skins/default/xui/da/mime_types.xml
+++ b/indra/newview/skins/default/xui/da/mime_types.xml
diff --git a/indra/newview/skins/default/xui/da/mime_types_linux.xml b/indra/newview/skins/default/xui/da/mime_types_linux.xml
index 69a0fb23f6..69a0fb23f6 100644..100755
--- a/indra/newview/skins/default/xui/da/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/da/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/da/mime_types_mac.xml b/indra/newview/skins/default/xui/da/mime_types_mac.xml
index bd9981b045..bd9981b045 100644..100755
--- a/indra/newview/skins/default/xui/da/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/da/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index 33b876bdb9..33b876bdb9 100644..100755
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
diff --git a/indra/newview/skins/default/xui/da/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/da/outfit_accordion_tab.xml
index e2d1f26d42..e2d1f26d42 100644..100755
--- a/indra/newview/skins/default/xui/da/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/da/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/da/panel_active_object_row.xml b/indra/newview/skins/default/xui/da/panel_active_object_row.xml
index 9c27ea7fe2..9c27ea7fe2 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/da/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml
index 1953fad31f..1953fad31f 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/da/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/da/panel_avatar_list_item.xml
index 890f4a2f0a..890f4a2f0a 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_avatar_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/da/panel_block_list_sidetray.xml
index 4f5041ad54..4f5041ad54 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/da/panel_block_list_sidetray.xml
diff --git a/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml
index d2ade170d1..d2ade170d1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/da/panel_bodyparts_list_button_bar.xml
index 4cbcdebbe4..4cbcdebbe4 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_bottomtray.xml b/indra/newview/skins/default/xui/da/panel_bottomtray.xml
index 3cd9d55dd0..3cd9d55dd0 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/da/panel_bottomtray.xml
diff --git a/indra/newview/skins/default/xui/da/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/da/panel_bottomtray_lite.xml
index bd31253ca4..bd31253ca4 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/da/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/da/panel_classified_info.xml b/indra/newview/skins/default/xui/da/panel_classified_info.xml
index a54d320ffd..a54d320ffd 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/da/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/da/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/da/panel_clothing_list_button_bar.xml
index c08d095c66..c08d095c66 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml
index 88b0636e9e..88b0636e9e 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_cof_wearables.xml b/indra/newview/skins/default/xui/da/panel_cof_wearables.xml
index 92d78b01a2..92d78b01a2 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/da/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml
index 700ad4fa14..700ad4fa14 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml
index dd8d86cfbf..dd8d86cfbf 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_alpha.xml b/indra/newview/skins/default/xui/da/panel_edit_alpha.xml
index 0f60a6df51..0f60a6df51 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_classified.xml b/indra/newview/skins/default/xui/da/panel_edit_classified.xml
index fc4780a34e..fc4780a34e 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_eyes.xml b/indra/newview/skins/default/xui/da/panel_edit_eyes.xml
index d801118cea..d801118cea 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_gloves.xml b/indra/newview/skins/default/xui/da/panel_edit_gloves.xml
index 36f58428a6..36f58428a6 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_hair.xml b/indra/newview/skins/default/xui/da/panel_edit_hair.xml
index e91e6324e8..e91e6324e8 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_jacket.xml b/indra/newview/skins/default/xui/da/panel_edit_jacket.xml
index 4e7336747d..4e7336747d 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_pants.xml b/indra/newview/skins/default/xui/da/panel_edit_pants.xml
index 61056e9e6c..61056e9e6c 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_physics.xml b/indra/newview/skins/default/xui/da/panel_edit_physics.xml
index 16c9b16fa3..16c9b16fa3 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_pick.xml b/indra/newview/skins/default/xui/da/panel_edit_pick.xml
index 3036f30240..3036f30240 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_profile.xml b/indra/newview/skins/default/xui/da/panel_edit_profile.xml
index 14fd48ba2f..14fd48ba2f 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_shape.xml b/indra/newview/skins/default/xui/da/panel_edit_shape.xml
index 7c1ffe5cfa..7c1ffe5cfa 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_shirt.xml b/indra/newview/skins/default/xui/da/panel_edit_shirt.xml
index 4dfb47aab2..4dfb47aab2 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_shoes.xml b/indra/newview/skins/default/xui/da/panel_edit_shoes.xml
index 653ea421b5..653ea421b5 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_skin.xml b/indra/newview/skins/default/xui/da/panel_edit_skin.xml
index 608e1d6e0b..608e1d6e0b 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_skirt.xml b/indra/newview/skins/default/xui/da/panel_edit_skirt.xml
index e80e60efd8..e80e60efd8 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_socks.xml b/indra/newview/skins/default/xui/da/panel_edit_socks.xml
index 82a7341317..82a7341317 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/da/panel_edit_tattoo.xml
index d4a12209db..d4a12209db 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_underpants.xml b/indra/newview/skins/default/xui/da/panel_edit_underpants.xml
index aacfae79e1..aacfae79e1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/da/panel_edit_undershirt.xml
index a9db5d2ab0..a9db5d2ab0 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/da/panel_edit_wearable.xml b/indra/newview/skins/default/xui/da/panel_edit_wearable.xml
index 906870e6d9..906870e6d9 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_control_panel.xml b/indra/newview/skins/default/xui/da/panel_group_control_panel.xml
index 26fe4f6ebe..26fe4f6ebe 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_general.xml b/indra/newview/skins/default/xui/da/panel_group_general.xml
index eccddb55c8..eccddb55c8 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/da/panel_group_info_sidetray.xml
index 3d561f1e5b..3d561f1e5b 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_invite.xml b/indra/newview/skins/default/xui/da/panel_group_invite.xml
index 49daf6c9f2..49daf6c9f2 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_land_money.xml b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
index 49d415e515..49d415e515 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_list_item.xml b/indra/newview/skins/default/xui/da/panel_group_list_item.xml
index e77e548340..e77e548340 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_list_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_notices.xml b/indra/newview/skins/default/xui/da/panel_group_notices.xml
index 0a0b8f5e04..0a0b8f5e04 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_notify.xml b/indra/newview/skins/default/xui/da/panel_group_notify.xml
index 8a684ca031..8a684ca031 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/da/panel_group_roles.xml b/indra/newview/skins/default/xui/da/panel_group_roles.xml
index ebc773f7ed..ebc773f7ed 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml b/indra/newview/skins/default/xui/da/panel_im_control_panel.xml
index 5cecb93d40..5cecb93d40 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/da/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/da/panel_inventory_item.xml b/indra/newview/skins/default/xui/da/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_landmark_info.xml b/indra/newview/skins/default/xui/da/panel_landmark_info.xml
index 8503a41763..8503a41763 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/da/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/da/panel_landmarks.xml b/indra/newview/skins/default/xui/da/panel_landmarks.xml
index e9e5e506fd..e9e5e506fd 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/da/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/da/panel_login.xml b/indra/newview/skins/default/xui/da/panel_login.xml
index b7cb76d4cb..b7cb76d4cb 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_login.xml
+++ b/indra/newview/skins/default/xui/da/panel_login.xml
diff --git a/indra/newview/skins/default/xui/da/panel_main_inventory.xml b/indra/newview/skins/default/xui/da/panel_main_inventory.xml
index d6406939c1..d6406939c1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/da/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/panel_me.xml b/indra/newview/skins/default/xui/da/panel_me.xml
index f98ced5f91..f98ced5f91 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_me.xml
+++ b/indra/newview/skins/default/xui/da/panel_me.xml
diff --git a/indra/newview/skins/default/xui/da/panel_media_settings_general.xml b/indra/newview/skins/default/xui/da/panel_media_settings_general.xml
index 48f08b9dfd..48f08b9dfd 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/da/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/da/panel_media_settings_permissions.xml
index 84468eb2a7..84468eb2a7 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/da/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/da/panel_media_settings_security.xml b/indra/newview/skins/default/xui/da/panel_media_settings_security.xml
index 1b64888271..1b64888271 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/da/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/da/panel_navigation_bar.xml b/indra/newview/skins/default/xui/da/panel_navigation_bar.xml
index 2ee87433a4..2ee87433a4 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
index eb104201f8..eb104201f8 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_nearby_media.xml b/indra/newview/skins/default/xui/da/panel_nearby_media.xml
index ef8ed3ad07..ef8ed3ad07 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/da/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/da/panel_notify_textbox.xml b/indra/newview/skins/default/xui/da/panel_notify_textbox.xml
index 30ad4ff9f6..30ad4ff9f6 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/da/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/da/panel_online_status_toast.xml b/indra/newview/skins/default/xui/da/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/da/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/da/panel_outfit_edit.xml b/indra/newview/skins/default/xui/da/panel_outfit_edit.xml
index 3736ea06ba..3736ea06ba 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml
index 055c42c003..055c42c003 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/da/panel_outfits_inventory_gear_default.xml
index 7b6469023b..7b6469023b 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_list.xml b/indra/newview/skins/default/xui/da/panel_outfits_list.xml
index 72caedb461..72caedb461 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml
index 8d25efa97b..8d25efa97b 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/da/panel_people.xml b/indra/newview/skins/default/xui/da/panel_people.xml
index 66a128cd13..66a128cd13 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_people.xml
+++ b/indra/newview/skins/default/xui/da/panel_people.xml
diff --git a/indra/newview/skins/default/xui/da/panel_pick_info.xml b/indra/newview/skins/default/xui/da/panel_pick_info.xml
index 8a5141f967..8a5141f967 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/da/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/da/panel_picks.xml b/indra/newview/skins/default/xui/da/panel_picks.xml
index 8af68ee69a..8af68ee69a 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_picks.xml
+++ b/indra/newview/skins/default/xui/da/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/da/panel_place_profile.xml b/indra/newview/skins/default/xui/da/panel_place_profile.xml
index 8dd0fb2d21..8dd0fb2d21 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/da/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/da/panel_places.xml b/indra/newview/skins/default/xui/da/panel_places.xml
index c555f2fb09..c555f2fb09 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_places.xml
+++ b/indra/newview/skins/default/xui/da/panel_places.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml
index 48106c7dfe..48106c7dfe 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/da/panel_preferences_alerts.xml
index 7caa17d514..7caa17d514 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
index 890a3038ef..890a3038ef 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_colors.xml b/indra/newview/skins/default/xui/da/panel_preferences_colors.xml
index cc3dc480bc..cc3dc480bc 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index 5702d48e97..5702d48e97 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
index 72200a07ad..72200a07ad 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_move.xml b/indra/newview/skins/default/xui/da/panel_preferences_move.xml
index 98dfed92c1..98dfed92c1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/da/panel_preferences_privacy.xml
index 0df330b016..0df330b016 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml
index 479e98817e..479e98817e 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_sound.xml b/indra/newview/skins/default/xui/da/panel_preferences_sound.xml
index 26d2ae4abd..26d2ae4abd 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml
index cfb32500c6..cfb32500c6 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_covenant.xml b/indra/newview/skins/default/xui/da/panel_region_covenant.xml
index 4b9c7539ea..4b9c7539ea 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_debug.xml b/indra/newview/skins/default/xui/da/panel_region_debug.xml
index 08e2d1e263..08e2d1e263 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_estate.xml b/indra/newview/skins/default/xui/da/panel_region_estate.xml
index 65948ce481..65948ce481 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_general.xml b/indra/newview/skins/default/xui/da/panel_region_general.xml
index 667c88c5b1..667c88c5b1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_terrain.xml b/indra/newview/skins/default/xui/da/panel_region_terrain.xml
index 14ef0060b1..14ef0060b1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml
index 45946fd222..45946fd222 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_texture.xml
diff --git a/indra/newview/skins/default/xui/da/panel_script_ed.xml b/indra/newview/skins/default/xui/da/panel_script_ed.xml
index 3dec4bf101..3dec4bf101 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/da/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/da/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/da/panel_script_limits_my_avatar.xml
index 821c82ccda..821c82ccda 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/da/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/da/panel_script_limits_region_memory.xml
index 91fc76dbb4..91fc76dbb4 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/da/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
index 99f61b938b..99f61b938b 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/da/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/da/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/da/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/da/panel_side_tray.xml b/indra/newview/skins/default/xui/da/panel_side_tray.xml
index 66c3e69904..66c3e69904 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/da/panel_side_tray.xml
diff --git a/indra/newview/skins/default/xui/da/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/da/panel_side_tray_tab_caption.xml
index ce3a1d8b4e..ce3a1d8b4e 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/da/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/da/panel_sound_devices.xml b/indra/newview/skins/default/xui/da/panel_sound_devices.xml
index 27b7666a1f..27b7666a1f 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/da/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/da/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/da/panel_stand_stop_flying.xml
index f25639d56f..f25639d56f 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/da/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/da/panel_status_bar.xml b/indra/newview/skins/default/xui/da/panel_status_bar.xml
index 6e7bdfc188..6e7bdfc188 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/da/panel_teleport_history.xml b/indra/newview/skins/default/xui/da/panel_teleport_history.xml
index e6e78028f5..e6e78028f5 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/da/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/da/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/da/panel_teleport_history_item.xml
index 8148588c86..8148588c86 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/da/panel_voice_effect.xml b/indra/newview/skins/default/xui/da/panel_voice_effect.xml
index 50f561ec7f..50f561ec7f 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/da/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/da/panel_world_map.xml b/indra/newview/skins/default/xui/da/panel_world_map.xml
index 138b922df1..138b922df1 100644..100755
--- a/indra/newview/skins/default/xui/da/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/da/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/da/role_actions.xml b/indra/newview/skins/default/xui/da/role_actions.xml
index 7e581200a5..7e581200a5 100644..100755
--- a/indra/newview/skins/default/xui/da/role_actions.xml
+++ b/indra/newview/skins/default/xui/da/role_actions.xml
diff --git a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
index c5caefe070..c5caefe070 100644..100755
--- a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/da/sidepanel_inventory.xml b/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
index b3293b981e..b3293b981e 100644..100755
--- a/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml
index d52845160b..d52845160b 100644..100755
--- a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml
index f80d5aeb15..f80d5aeb15 100644..100755
--- a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml
diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml
index 11d100eeff..11d100eeff 100644..100755
--- a/indra/newview/skins/default/xui/da/strings.xml
+++ b/indra/newview/skins/default/xui/da/strings.xml
diff --git a/indra/newview/skins/default/xui/da/teleport_strings.xml b/indra/newview/skins/default/xui/da/teleport_strings.xml
index 0d89fae986..0d89fae986 100644..100755
--- a/indra/newview/skins/default/xui/da/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/da/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/da/xui_version.xml b/indra/newview/skins/default/xui/da/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/da/xui_version.xml
+++ b/indra/newview/skins/default/xui/da/xui_version.xml
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 4387a61963..4387a61963 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index 44922fbe78..44922fbe78 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/de/floater_activeim.xml b/indra/newview/skins/default/xui/de/floater_activeim.xml
index 416e31b2d6..416e31b2d6 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/de/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/de/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/de/floater_animation_anim_preview.xml
index 3dc554b120..3dc554b120 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/de/floater_animation_bvh_preview.xml
index 9a6f5e0166..9a6f5e0166 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_auction.xml b/indra/newview/skins/default/xui/de/floater_auction.xml
index 8ededff319..8ededff319 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_auction.xml
+++ b/indra/newview/skins/default/xui/de/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/de/floater_autoreplace.xml b/indra/newview/skins/default/xui/de/floater_autoreplace.xml
index 0c774990ef..0c774990ef 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/de/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/de/floater_avatar.xml b/indra/newview/skins/default/xui/de/floater_avatar.xml
index ba0dd54d96..ba0dd54d96 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
index f66b87b76c..f66b87b76c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
index 8235eacde0..8235eacde0 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/de/floater_beacons.xml b/indra/newview/skins/default/xui/de/floater_beacons.xml
index 1a052bd814..1a052bd814 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/de/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/de/floater_build_options.xml b/indra/newview/skins/default/xui/de/floater_build_options.xml
index 939fd5dee4..939fd5dee4 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/de/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
index 8f99fc933c..8f99fc933c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/de/floater_bumps.xml b/indra/newview/skins/default/xui/de/floater_bumps.xml
index 5d02511ab1..5d02511ab1 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/de/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/de/floater_buy_contents.xml b/indra/newview/skins/default/xui/de/floater_buy_contents.xml
index bd6ace6bda..bd6ace6bda 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency.xml b/indra/newview/skins/default/xui/de/floater_buy_currency.xml
index 65926c088c..65926c088c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
index 38d3bdd77f..38d3bdd77f 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/de/floater_buy_land.xml b/indra/newview/skins/default/xui/de/floater_buy_land.xml
index ca4ee8981b..ca4ee8981b 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/de/floater_buy_object.xml b/indra/newview/skins/default/xui/de/floater_buy_object.xml
index 29b49f57b3..29b49f57b3 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/de/floater_camera.xml b/indra/newview/skins/default/xui/de/floater_camera.xml
index 163ef87d8c..163ef87d8c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_camera.xml
+++ b/indra/newview/skins/default/xui/de/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/de/floater_chat_bar.xml b/indra/newview/skins/default/xui/de/floater_chat_bar.xml
index ab77d4dae5..ab77d4dae5 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/de/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/de/floater_choose_group.xml b/indra/newview/skins/default/xui/de/floater_choose_group.xml
index 3d76b645fe..3d76b645fe 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/de/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/de/floater_color_picker.xml b/indra/newview/skins/default/xui/de/floater_color_picker.xml
index 0fe154b531..0fe154b531 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/de/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/de/floater_conversation_log.xml b/indra/newview/skins/default/xui/de/floater_conversation_log.xml
new file mode 100644
index 0000000000..19620a0fc9
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="UNTERHALTUNGSPROTOKOLL">
+ <panel name="buttons_panel">
+ <filter_editor label="Nach Personen filtern" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Aktionen für ausgewählte Person/Gruppe"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_conversation_preview.xml b/indra/newview/skins/default/xui/de/floater_conversation_preview.xml
new file mode 100644
index 0000000000..010ad19076
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="UNTERHALTUNG:">
+ <floater.string name="Title">
+ UNTERHALTUNG: [NAME]
+ </floater.string>
+ <text name="page_label" value="Seite"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_critical.xml b/indra/newview/skins/default/xui/de/floater_critical.xml
index 0b147926dd..0b147926dd 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_critical.xml
+++ b/indra/newview/skins/default/xui/de/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/de/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/de/floater_delete_env_preset.xml
index cc14ce640d..cc14ce640d 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/de/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/de/floater_destinations.xml b/indra/newview/skins/default/xui/de/floater_destinations.xml
index 57881488fd..57881488fd 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/de/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/de/floater_display_name.xml b/indra/newview/skins/default/xui/de/floater_display_name.xml
index 4c2914fccb..4c2914fccb 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/de/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml
index 8b29428c24..8b29428c24 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml
index ea4c5f7ebc..ea4c5f7ebc 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml
index 9b9d5e7d77..9b9d5e7d77 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/de/floater_environment_settings.xml b/indra/newview/skins/default/xui/de/floater_environment_settings.xml
index 946416980a..946416980a 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/de/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/de/floater_event.xml b/indra/newview/skins/default/xui/de/floater_event.xml
index 5b3267d7c9..5b3267d7c9 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_event.xml
+++ b/indra/newview/skins/default/xui/de/floater_event.xml
diff --git a/indra/newview/skins/default/xui/de/floater_fast_timers.xml b/indra/newview/skins/default/xui/de/floater_fast_timers.xml
index e61e542688..e61e542688 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/de/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/de/floater_font_test.xml b/indra/newview/skins/default/xui/de/floater_font_test.xml
index 29357b8ee0..29357b8ee0 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/de/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/de/floater_gesture.xml b/indra/newview/skins/default/xui/de/floater_gesture.xml
index 7b35da8d5c..7b35da8d5c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/de/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/de/floater_god_tools.xml b/indra/newview/skins/default/xui/de/floater_god_tools.xml
index 8cb1af9f7d..8cb1af9f7d 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/de/floater_hardware_settings.xml b/indra/newview/skins/default/xui/de/floater_hardware_settings.xml
index fd6c9a0875..fd6c9a0875 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/de/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/de/floater_help_browser.xml b/indra/newview/skins/default/xui/de/floater_help_browser.xml
index d55a3b0a26..d55a3b0a26 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/de/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/de/floater_how_to.xml b/indra/newview/skins/default/xui/de/floater_how_to.xml
index caea221f83..caea221f83 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/de/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/de/floater_hud.xml b/indra/newview/skins/default/xui/de/floater_hud.xml
index 8a10eccabe..8a10eccabe 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_hud.xml
+++ b/indra/newview/skins/default/xui/de/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/de/floater_im_container.xml b/indra/newview/skins/default/xui/de/floater_im_container.xml
index 95eda97938..5bf916c8e9 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/de/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="GESPRÄCHE"/>
+<multi_floater name="floater_im_box" title="GESPRÄCHE">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <button name="add_btn" tool_tip="Neue Unterhaltung starten"/>
+ <button name="speak_btn" tool_tip="Über Ihr Mikrofon mit anderen sprechen"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Diese Liste schließen/erweitern"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Dieses Fenster schließen"/>
+ <text name="stub_textbox">
+ Diese Unterhaltung erscheint in einem separaten Fenster. [secondlife:/// Zurückholen.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/de/floater_im_session.xml b/indra/newview/skins/default/xui/de/floater_im_session.xml
index abaf275651..f96eb72cb1 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/de/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="An" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] wurde zur Unterhaltung eingeladen."/>
+ <floater.string name="multiple_participants_added" value="[NAME] wurden zur Unterhaltung eingeladen."/>
+ <floater.string name="tooltip_to_separate_window" value="Diese Unterhaltung in separates Fenster verschieben"/>
+ <floater.string name="tooltip_to_main_window" value="Diese Unterhaltung zurück ins Hauptfenster verschieben"/>
+ <floater.string name="start_call_button_tooltip" value="Voice-Verbindung öffnen"/>
+ <floater.string name="end_call_button_tooltip" value="Voice-Verbindung schließen"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Dieses Fenster schließen"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Teilnehmerliste schließen"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Teilnehmerliste erweitern"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <menu_button name="gear_btn" tool_tip="Aktionen für ausgewählte Person"/>
+ <button name="add_btn" tool_tip="Jemanden zu dieser Unterhaltung hinzufügen"/>
+ <button name="voice_call_btn" tool_tip="Voice-Verbindung öffnen"/>
+ <button name="close_btn" tool_tip="Diese Unterhaltung beenden"/>
+ <button name="expand_collapse_btn" tool_tip="Dieses Fenster schließen/erweitern"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Chat übersetzen" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="An" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Nachrichtenfenster anzeigen/ausblenden"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_image_preview.xml b/indra/newview/skins/default/xui/de/floater_image_preview.xml
index d581c6051b..d581c6051b 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_import_collada.xml b/indra/newview/skins/default/xui/de/floater_import_collada.xml
index 8b1313c7b5..8b1313c7b5 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/de/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/de/floater_incoming_call.xml b/indra/newview/skins/default/xui/de/floater_incoming_call.xml
index 213d9f54f5..f13842f479 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/de/floater_incoming_call.xml
@@ -10,7 +10,7 @@
Anonym
</floater.string>
<floater.string name="VoiceInviteP2P">
- ruft an.
+ ruft Sie an.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
ist einem Voice-Konferenz-Chat beigetreten.
@@ -25,9 +25,9 @@
Möchten Sie [CURRENT_CHAT] verlassen und diesem Voice-Chat beitreten?
</floater.string>
<text name="question">
- Möchten Sie [CURRENT_CHAT] verlassen und diesem Voice-Chat beitreten?
+ Wenn Sie antworten, wird Ihre aktuelle Voice-Unterhaltung beendet.
</text>
- <button label="Akzeptieren" label_selected="Akzeptieren" name="Accept"/>
- <button label="Ablehnen" label_selected="Ablehnen" name="Reject"/>
- <button label="IM starten" name="Start IM"/>
+ <button label="Annehmen" label_selected="Annehmen" name="Accept"/>
+ <button label="Ignorieren" label_selected="Ignorieren" name="Reject"/>
+ <button label="Stattdessen IM öffnen" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_inspect.xml b/indra/newview/skins/default/xui/de/floater_inspect.xml
index da97ceb2d8..da97ceb2d8 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/de/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
index 7f48105460..7f48105460 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml
index d63426d684..d63426d684 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/de/floater_joystick.xml b/indra/newview/skins/default/xui/de/floater_joystick.xml
index 2efc11df29..2efc11df29 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/de/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/de/floater_lagmeter.xml b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
index 45ff37c147..45ff37c147 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/de/floater_land_holdings.xml b/indra/newview/skins/default/xui/de/floater_land_holdings.xml
index 73559407a9..73559407a9 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/de/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
index 3b42a8b741..3b42a8b741 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
index 73c21edc67..73c21edc67 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml
index c4c42af66d..c4c42af66d 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_map.xml
diff --git a/indra/newview/skins/default/xui/de/floater_media_browser.xml b/indra/newview/skins/default/xui/de/floater_media_browser.xml
index 2d438dfe21..2d438dfe21 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/de/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/de/floater_media_settings.xml b/indra/newview/skins/default/xui/de/floater_media_settings.xml
index 1b98ed7973..1b98ed7973 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/de/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
index fdc9b950b6..fdc9b950b6 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/de/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/de/floater_merchant_outbox.xml
index a412b530a4..a412b530a4 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/de/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/de/floater_model_preview.xml b/indra/newview/skins/default/xui/de/floater_model_preview.xml
index 4285462bc8..4285462bc8 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_moveview.xml b/indra/newview/skins/default/xui/de/floater_moveview.xml
index c1c8271310..c1c8271310 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/de/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_mute_object.xml b/indra/newview/skins/default/xui/de/floater_mute_object.xml
index 3f1af3dc63..3f1af3dc63 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/de/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/de/floater_my_appearance.xml b/indra/newview/skins/default/xui/de/floater_my_appearance.xml
index e26b2434cc..e26b2434cc 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/de/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/de/floater_my_inventory.xml b/indra/newview/skins/default/xui/de/floater_my_inventory.xml
index 0cfa17562e..0cfa17562e 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/de/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/floater_notification.xml b/indra/newview/skins/default/xui/de/floater_notification.xml
index 7752d22b52..7752d22b52 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_notification.xml
+++ b/indra/newview/skins/default/xui/de/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/de/floater_notifications_console.xml b/indra/newview/skins/default/xui/de/floater_notifications_console.xml
index e271cdace2..e271cdace2 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/de/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/de/floater_object_weights.xml b/indra/newview/skins/default/xui/de/floater_object_weights.xml
index e6641d3d18..e6641d3d18 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/de/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/de/floater_openobject.xml b/indra/newview/skins/default/xui/de/floater_openobject.xml
index c3e7052283..c3e7052283 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/de/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
index 7481e6d4b7..7481e6d4b7 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
index 81079a3c52..81079a3c52 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/de/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/de/floater_pathfinding_characters.xml
index 7096dbc156..7096dbc156 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/de/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/de/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/de/floater_pathfinding_console.xml
index ebf8f01632..88e9f53a4c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/de/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Anzeigen:
</text>
- <check_box label="Welt" name="show_world"/>
+ <check_box label="Test" name="show_world"/>
<check_box label="Nur bewegliche Objekte" name="show_world_movables_only"/>
<check_box label="Navmesh" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml
index 0d3ba59efb..0d3ba59efb 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/de/floater_pay.xml b/indra/newview/skins/default/xui/de/floater_pay.xml
index a0a622ecbc..a0a622ecbc 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_pay.xml
+++ b/indra/newview/skins/default/xui/de/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/de/floater_pay_object.xml b/indra/newview/skins/default/xui/de/floater_pay_object.xml
index 7159bbadb3..7159bbadb3 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/de/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/de/floater_people.xml b/indra/newview/skins/default/xui/de/floater_people.xml
index fd1db148ac..fd1db148ac 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_people.xml
+++ b/indra/newview/skins/default/xui/de/floater_people.xml
diff --git a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
index 9be22f3ccb..9be22f3ccb 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/de/floater_picks.xml b/indra/newview/skins/default/xui/de/floater_picks.xml
index 2521920e83..2521920e83 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_picks.xml
+++ b/indra/newview/skins/default/xui/de/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/de/floater_places.xml b/indra/newview/skins/default/xui/de/floater_places.xml
index 80a1490afd..80a1490afd 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_places.xml
+++ b/indra/newview/skins/default/xui/de/floater_places.xml
diff --git a/indra/newview/skins/default/xui/de/floater_post_process.xml b/indra/newview/skins/default/xui/de/floater_post_process.xml
index a6ed8cc3df..a6ed8cc3df 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/de/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preferences.xml b/indra/newview/skins/default/xui/de/floater_preferences.xml
index 3624c4c968..3624c4c968 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/de/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/de/floater_preferences_proxy.xml
index cdefb470c2..cdefb470c2 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/de/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preview_animation.xml b/indra/newview/skins/default/xui/de/floater_preview_animation.xml
index 2dd47a27ad..2dd47a27ad 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
index 76dc623ca4..76dc623ca4 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
index 14e666fd22..14e666fd22 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preview_sound.xml b/indra/newview/skins/default/xui/de/floater_preview_sound.xml
index 4629ec4a04..4629ec4a04 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/de/floater_preview_texture.xml b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
index 526c0813bd..526c0813bd 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/de/floater_price_for_listing.xml b/indra/newview/skins/default/xui/de/floater_price_for_listing.xml
index bdd772a9c2..bdd772a9c2 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/de/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/de/floater_publish_classified.xml b/indra/newview/skins/default/xui/de/floater_publish_classified.xml
index d91535ebc3..d91535ebc3 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/de/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/de/floater_region_debug_console.xml b/indra/newview/skins/default/xui/de/floater_region_debug_console.xml
index b8a1a89c30..b8a1a89c30 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/de/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/de/floater_region_info.xml b/indra/newview/skins/default/xui/de/floater_region_info.xml
index c0dc47a67d..c0dc47a67d 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/de/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
index e37e298478..e37e298478 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_debug.xml b/indra/newview/skins/default/xui/de/floater_script_debug.xml
index 585a6c36ea..585a6c36ea 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/de/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_limits.xml b/indra/newview/skins/default/xui/de/floater_script_limits.xml
index 94a24a97ae..94a24a97ae 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_preview.xml b/indra/newview/skins/default/xui/de/floater_script_preview.xml
index e0bcd42523..e0bcd42523 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_queue.xml b/indra/newview/skins/default/xui/de/floater_script_queue.xml
index f267fe4b7c..f267fe4b7c 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/de/floater_script_search.xml b/indra/newview/skins/default/xui/de/floater_script_search.xml
index ffae96f6a1..ffae96f6a1 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/de/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/de/floater_search.xml b/indra/newview/skins/default/xui/de/floater_search.xml
index bd39bf2bce..bd39bf2bce 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_search.xml
+++ b/indra/newview/skins/default/xui/de/floater_search.xml
diff --git a/indra/newview/skins/default/xui/de/floater_select_key.xml b/indra/newview/skins/default/xui/de/floater_select_key.xml
index 8ab9db520a..8ab9db520a 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/de/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml
index 646138eaad..646138eaad 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/de/floater_settings_debug.xml b/indra/newview/skins/default/xui/de/floater_settings_debug.xml
index 004e54a339..004e54a339 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/de/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 798461c007..798461c007 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/de/floater_sound_devices.xml b/indra/newview/skins/default/xui/de/floater_sound_devices.xml
index 22ccb2c1a2..22ccb2c1a2 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/de/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/de/floater_sound_preview.xml b/indra/newview/skins/default/xui/de/floater_sound_preview.xml
index 1070c93405..1070c93405 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/de/floater_spellcheck.xml b/indra/newview/skins/default/xui/de/floater_spellcheck.xml
index 213db277b6..213db277b6 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/de/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/de/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/de/floater_spellcheck_import.xml
index 374c0fc0d2..374c0fc0d2 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/de/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/de/floater_stats.xml b/indra/newview/skins/default/xui/de/floater_stats.xml
index f3239f73c7..f3239f73c7 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_stats.xml
+++ b/indra/newview/skins/default/xui/de/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/de/floater_sys_well.xml b/indra/newview/skins/default/xui/de/floater_sys_well.xml
index ec79b862b4..ec79b862b4 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/de/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/de/floater_telehub.xml b/indra/newview/skins/default/xui/de/floater_telehub.xml
index 83d37b2ce4..83d37b2ce4 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/de/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/de/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/de/floater_test_layout_stacks.xml
index 429447c378..429447c378 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/de/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/de/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/de/floater_test_text_vertical_aligment.xml
index 506d2b013a..506d2b013a 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/de/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml
index 9585622516..b794d879f0 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml
@@ -20,7 +20,7 @@
<button label="Leer" label_selected="Leer" name="Blank"/>
<button label="Keine" label_selected="Keine" name="None"/>
<button label="" label_selected="" name="Pipette"/>
- <check_box initial_value="true" label="Live-Vorschau" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Jetzt übernehmen" name="apply_immediate_check"/>
<text name="preview_disabled" value="Vorschau deaktiviert"/>
<filter_editor label="Texturen filtern" name="inventory search editor"/>
<check_box initial_value="false" label="Ordner anzeigen" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/de/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/de/floater_texture_fetch_debugger.xml
index 97b0364832..97b0364832 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/de/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 5f5c34a5cf..5f5c34a5cf 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/de/floater_top_objects.xml b/indra/newview/skins/default/xui/de/floater_top_objects.xml
index f8130c6379..f8130c6379 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/de/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index ba329371f8..ba329371f8 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/de/floater_toybox.xml b/indra/newview/skins/default/xui/de/floater_toybox.xml
index 90e50804d6..90e50804d6 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/de/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/de/floater_translation_settings.xml b/indra/newview/skins/default/xui/de/floater_translation_settings.xml
index 3d5d1d46a8..3d5d1d46a8 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/de/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/de/floater_url_entry.xml b/indra/newview/skins/default/xui/de/floater_url_entry.xml
index f5fa449c85..f5fa449c85 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/de/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/de/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/de/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..15259639e8
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="VOICE-CHAT-LAUTSTÄRKE">
+ <slider label="Voice-Chat" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_voice_controls.xml b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
index 5efda4136e..5efda4136e 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/de/floater_voice_effect.xml b/indra/newview/skins/default/xui/de/floater_voice_effect.xml
index 413a46525c..8d37950480 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/de/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Orte" name="voice_effects" title="VOICE MORPHING">
+<floater label="Orte" name="voice_effects" title="VOICE-MORPHING-VORSCHAU">
<string name="no_voice_effect">
(Kein Voice-Morphing)
</string>
diff --git a/indra/newview/skins/default/xui/de/floater_voice_volume.xml b/indra/newview/skins/default/xui/de/floater_voice_volume.xml
new file mode 100644
index 0000000000..258627c94f
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="LAUTSTÄRKE">
+ <slider name="volume_slider" tool_tip="Lautstärke" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_web_content.xml b/indra/newview/skins/default/xui/de/floater_web_content.xml
index 6ab119eeab..6ab119eeab 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/de/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
index 1332509529..1332509529 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/de/floater_window_size.xml b/indra/newview/skins/default/xui/de/floater_window_size.xml
index 6502f002a1..6502f002a1 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/de/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml
index befa46651a..befa46651a 100644..100755
--- a/indra/newview/skins/default/xui/de/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/de/inspect_avatar.xml b/indra/newview/skins/default/xui/de/inspect_avatar.xml
index 4b8fd8a0ad..4b8fd8a0ad 100644..100755
--- a/indra/newview/skins/default/xui/de/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/de/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/de/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml
index 60fa8ff0d8..60fa8ff0d8 100644..100755
--- a/indra/newview/skins/default/xui/de/inspect_group.xml
+++ b/indra/newview/skins/default/xui/de/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/de/inspect_object.xml b/indra/newview/skins/default/xui/de/inspect_object.xml
index 72b8235828..72b8235828 100644..100755
--- a/indra/newview/skins/default/xui/de/inspect_object.xml
+++ b/indra/newview/skins/default/xui/de/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/de/inspect_remote_object.xml b/indra/newview/skins/default/xui/de/inspect_remote_object.xml
index 9fe05455eb..9fe05455eb 100644..100755
--- a/indra/newview/skins/default/xui/de/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/de/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/de/language_settings.xml b/indra/newview/skins/default/xui/de/language_settings.xml
index f9346eef7d..f9346eef7d 100644..100755
--- a/indra/newview/skins/default/xui/de/language_settings.xml
+++ b/indra/newview/skins/default/xui/de/language_settings.xml
diff --git a/indra/newview/skins/default/xui/de/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/de/menu_add_wearable_gear.xml
index f3775a05ec..f3775a05ec 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_other.xml b/indra/newview/skins/default/xui/de/menu_attachment_other.xml
index 237c92f7d2..237c92f7d2 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
index 325d52a22e..325d52a22e 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
index c036cf5515..c036cf5515 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_other.xml b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
index 8aee0be3d2..8aee0be3d2 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_self.xml b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
index c49f4b198b..c49f4b198b 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/de/menu_cof_attachment.xml b/indra/newview/skins/default/xui/de/menu_cof_attachment.xml
index 05d3dfca9d..05d3dfca9d 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/de/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/de/menu_cof_body_part.xml b/indra/newview/skins/default/xui/de/menu_cof_body_part.xml
index 07960a525c..07960a525c 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/de/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/de/menu_cof_clothing.xml b/indra/newview/skins/default/xui/de/menu_cof_clothing.xml
index 7fced273a7..7fced273a7 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/de/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/de/menu_cof_gear.xml b/indra/newview/skins/default/xui/de/menu_cof_gear.xml
index 54b218d22f..2dd871b2ea 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="Neue Kleider" name="COF.Gear.New_Clothes"/>
- <menu label="Neue Körperteile" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="Neue Körperteile" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_conversation.xml b/indra/newview/skins/default/xui/de/menu_conversation.xml
new file mode 100644
index 0000000000..30d3ab79e1
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Unterhaltung schließen" name="close_conversation"/>
+ <menu_item_call label="Unterhaltung öffnen" name="open_voice_conversation"/>
+ <menu_item_call label="Voice-Verbindung trennen" name="disconnect_from_voice"/>
+ <menu_item_call label="Profil anzeigen" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Teleport anbieten" name="offer_teleport"/>
+ <menu_item_call label="Voice-Anruf" name="voice_call"/>
+ <menu_item_call label="Chatverlauf..." name="chat_history"/>
+ <menu_item_call label="Freund hinzufügen" name="add_friend"/>
+ <menu_item_call label="Freund entfernen" name="remove_friend"/>
+ <menu_item_call label="Freunde entfernen" name="remove_friends"/>
+ <menu_item_call label="In Gruppe einladen..." name="invite_to_group"/>
+ <menu_item_call label="Hineinzoomen" name="zoom_in"/>
+ <menu_item_call label="Karte" name="map"/>
+ <menu_item_call label="Freigeben" name="share"/>
+ <menu_item_call label="Bezahlen" name="pay"/>
+ <menu_item_check label="Voice ignorieren" name="block_unblock"/>
+ <menu_item_check label="Text ignorieren" name="MuteText"/>
+ <menu_item_call label="Gruppenprofil" name="group_profile"/>
+ <menu_item_call label="Gruppe aktivieren" name="activate_group"/>
+ <menu_item_call label="Gruppe verlassen" name="leave_group"/>
+ <context_menu label="Moderatoroptionen" name="Moderator Options">
+ <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/>
+ <menu_item_call label="Diesen Teilnehmer stummschalten" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Stummschaltung für diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Alle stummschalten" name="ModerateVoiceMute"/>
+ <menu_item_call label="Stummschaltung für alle aufheben" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/de/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..2ef8762128
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM..." name="IM"/>
+ <menu_item_call label="Voice-Anruf..." name="Call"/>
+ <menu_item_call label="Chatverlauf öffnen..." name="Chat history"/>
+ <menu_item_call label="Profil anzeigen" name="View Profile"/>
+ <menu_item_call label="Teleport anbieten" name="teleport"/>
+ <menu_item_call label="Freund hinzufügen" name="add_friend"/>
+ <menu_item_call label="Freund entfernen" name="remove_friend"/>
+ <menu_item_call label="In Gruppe einladen..." name="Invite"/>
+ <menu_item_call label="Karte" name="Map"/>
+ <menu_item_call label="Freigeben" name="Share"/>
+ <menu_item_call label="Bezahlen" name="Pay"/>
+ <menu_item_check label="Ignorieren/Nicht mehr ignorieren" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/de/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..ae3cc5bc97
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Nach Namen sortieren" name="sort_by_name"/>
+ <menu_item_check label="Nach Datum sortieren" name="sort_by_date"/>
+ <menu_item_check label="Freunde oben anzeigen" name="sort_by_friends"/>
+ <menu_item_call label="Verlaufsliste für „Chat in der Nähe“ anzeigen..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_edit.xml b/indra/newview/skins/default/xui/de/menu_edit.xml
index 37f68d68d5..37f68d68d5 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_edit.xml
+++ b/indra/newview/skins/default/xui/de/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/de/menu_favorites.xml b/indra/newview/skins/default/xui/de/menu_favorites.xml
index 0d0491d2eb..0d0491d2eb 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/de/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/de/menu_gesture_gear.xml b/indra/newview/skins/default/xui/de/menu_gesture_gear.xml
index 953c0eeed5..953c0eeed5 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_group_plus.xml b/indra/newview/skins/default/xui/de/menu_group_plus.xml
index 583ee793be..583ee793be 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/de/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
index 33d55e85bd..33d55e85bd 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/de/menu_im_conversation.xml b/indra/newview/skins/default/xui/de/menu_im_conversation.xml
new file mode 100644
index 0000000000..875524b19d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Profil anzeigen" name="View Profile"/>
+ <menu_item_call label="Freund hinzufügen" name="Add Friend"/>
+ <menu_item_call label="Freund entfernen" name="remove_friend"/>
+ <menu_item_call label="Teleport anbieten" name="offer_teleport"/>
+ <menu_item_call label="In Gruppe einladen..." name="invite_to_group"/>
+ <menu_item_call label="Chatverlauf..." name="chat_history"/>
+ <menu_item_call label="Hineinzoomen" name="zoom_in"/>
+ <menu_item_call label="Karte" name="map"/>
+ <menu_item_call label="Freigeben" name="Share"/>
+ <menu_item_call label="Bezahlen" name="Pay"/>
+ <menu_item_check label="Voice ignorieren" name="Block/Unblock"/>
+ <menu_item_check label="Text ignorieren" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/de/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..48f62d29a1
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Kompaktansicht" name="compact_view"/>
+ <menu_item_check label="Erweiterte Ansicht" name="expanded_view"/>
+ <menu_item_check label="Zeit anzeigen" name="IMShowTime"/>
+ <menu_item_check label="Namen in privaten Unterhaltungen anzeigen" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml
index 11f93f47b4..11f93f47b4 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/de/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/de/menu_imchiclet_group.xml
index 81ef3b6569..81ef3b6569 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/de/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/de/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/de/menu_imchiclet_p2p.xml
index d123238246..d123238246 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/de/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
index 641a0ceebe..641a0ceebe 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_object_gear.xml
index 73e0029b76..73e0029b76 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
index 5979194bfb..5979194bfb 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml
index 71cff7136b..71cff7136b 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index cd2fca313e..cd2fca313e 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inventory_add.xml b/indra/newview/skins/default/xui/de/menu_inventory_add.xml
index af70c08ba1..af70c08ba1 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
index 48dec3e856..48dec3e856 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/de/menu_land.xml b/indra/newview/skins/default/xui/de/menu_land.xml
index de679da3d8..de679da3d8 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_land.xml
+++ b/indra/newview/skins/default/xui/de/menu_land.xml
diff --git a/indra/newview/skins/default/xui/de/menu_landmark.xml b/indra/newview/skins/default/xui/de/menu_landmark.xml
index 2aff0eec95..2aff0eec95 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/de/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml
index b43b41a5dc..b43b41a5dc 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_login.xml
+++ b/indra/newview/skins/default/xui/de/menu_login.xml
diff --git a/indra/newview/skins/default/xui/de/menu_media_ctrl.xml b/indra/newview/skins/default/xui/de/menu_media_ctrl.xml
index 59c1c2ee86..59c1c2ee86 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/de/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/de/menu_mini_map.xml b/indra/newview/skins/default/xui/de/menu_mini_map.xml
index 2e0d72c40c..2e0d72c40c 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/de/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/de/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/de/menu_model_import_gear_default.xml
index e1faeedcde..e1faeedcde 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/de/menu_navbar.xml b/indra/newview/skins/default/xui/de/menu_navbar.xml
index 5175f34b41..5175f34b41 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/de/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/de/menu_nearby_chat.xml b/indra/newview/skins/default/xui/de/menu_nearby_chat.xml
index 99d6428c3f..99d6428c3f 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/de/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/de/menu_notification_well_button.xml b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml
index 0f2784f160..0f2784f160 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/de/menu_object.xml b/indra/newview/skins/default/xui/de/menu_object.xml
index 9f44ced928..9f44ced928 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_object.xml
+++ b/indra/newview/skins/default/xui/de/menu_object.xml
diff --git a/indra/newview/skins/default/xui/de/menu_object_icon.xml b/indra/newview/skins/default/xui/de/menu_object_icon.xml
index 8b6c558416..f92fa0f82b 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/de/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Objektprofil..." name="Object Profile"/>
<menu_item_call label="Ignorieren..." name="Block"/>
+ <menu_item_call label="Auf Karte anzeigen" name="show_on_map"/>
+ <menu_item_call label="Zu Objektposition teleportieren" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_outfit_gear.xml b/indra/newview/skins/default/xui/de/menu_outfit_gear.xml
index d56c93533c..0cf3c09882 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Neues Haar" name="New Hair"/>
<menu_item_call label="Neue Augen" name="New Eyes"/>
</menu>
+ <menu_item_call label="Alle Ordner erweitern" name="expand"/>
+ <menu_item_call label="Alle Ordner schließen" name="collapse"/>
<menu_item_call label="Outfit neu benennen" name="rename"/>
<menu_item_call label="Outfit löschen" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_outfit_tab.xml b/indra/newview/skins/default/xui/de/menu_outfit_tab.xml
index 32a65c96fc..32a65c96fc 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/de/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/de/menu_participant_list.xml b/indra/newview/skins/default/xui/de/menu_participant_list.xml
index 160f2f97be..160f2f97be 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/de/menu_participant_view.xml b/indra/newview/skins/default/xui/de/menu_participant_view.xml
new file mode 100644
index 0000000000..6ceb9ac4c5
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Unterhaltungen nach Typ sortieren" name="sort_sessions_by_type"/>
+ <menu_item_check label="Unterhaltungen nach Namen sortieren" name="sort_sessions_by_name"/>
+ <menu_item_check label="Unterhaltungen nach jüngster Aktivität sortieren" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Teilnehmer nach Namen sortieren" name="sort_participants_by_name"/>
+ <menu_item_check label="Teilnehmer nach jüngster Aktivität sortieren" name="sort_participants_by_recent"/>
+ <menu_item_call label="Chat-Einstellungen..." name="chat_preferences"/>
+ <menu_item_call label="Privatsphäre-Einstellungen..." name="privacy_preferences"/>
+ <menu_item_check label="Unterhaltungsprotokoll..." name="Conversation"/>
+ <menu_item_check label="Chat in der Nähe übersetzen" name="Translate_chat"/>
+ <menu_item_check label="Übersetzungseinstellungen..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/de/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..f69a453e58
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Nicht mehr ignorieren" name="unblock"/>
+ <menu_item_call label="Profil..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/de/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..041fde139d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Einwohner nach Namen ignorieren..." name="block_resident_by_name"/>
+ <menu_item_call label="Objekt nach Namen ignorieren" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/de/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..1dae593ebe
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Nach Namen sortieren" name="sort_by_name"/>
+ <menu_item_check label="Nach Typ sortieren" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_friends_view.xml b/indra/newview/skins/default/xui/de/menu_people_friends_view.xml
new file mode 100644
index 0000000000..da4890fe96
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Nach Namen sortieren" name="sort_name"/>
+ <menu_item_check label="Nach Status sortieren" name="sort_status"/>
+ <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/>
+ <menu_item_check label="Erteilte Genehmigungen anzeigen" name="view_permissions"/>
+ <menu_item_check label="Unterhaltungsprotokoll anzeigen..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml
index 84d9d8938c..84d9d8938c 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/de/menu_people_groups.xml b/indra/newview/skins/default/xui/de/menu_people_groups.xml
index 76225ba241..a69c82d3d8 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Info anzeigen" name="View Info"/>
<menu_item_call label="Chat" name="Chat"/>
- <menu_item_call label="Anrufen" name="Call"/>
+ <menu_item_call label="Voice-Anruf" name="Call"/>
<menu_item_call label="Aktivieren" name="Activate"/>
<menu_item_call label="Verlassen" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_groups_view.xml b/indra/newview/skins/default/xui/de/menu_people_groups_view.xml
new file mode 100644
index 0000000000..20386bba56
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Gruppensymbole anzeigen" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml
index b68597d8aa..b68597d8aa 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby.xml b/indra/newview/skins/default/xui/de/menu_people_nearby.xml
index 1db964357f..cdbb3ae917 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Profil anzeigen" name="View Profile"/>
- <menu_item_call label="Freund hinzufügen" name="Add Friend"/>
- <menu_item_call label="Freund entfernen" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Anrufen" name="Call"/>
- <menu_item_call label="Karte" name="Map"/>
- <menu_item_call label="Teilen" name="Share"/>
- <menu_item_call label="Bezahlen" name="Pay"/>
- <menu_item_check label="Ignorieren/Freischalten" name="Block/Unblock"/>
- <menu_item_call label="Teleport anbieten" name="teleport"/>
+ <menu_item_call label="Profil anzeigen" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Teleport anbieten" name="offer_teleport"/>
+ <menu_item_call label="Voice-Anruf" name="voice_call"/>
+ <menu_item_call label="Chatverlauf anzeigen..." name="chat_history"/>
+ <menu_item_call label="Freund hinzufügen" name="add_friend"/>
+ <menu_item_call label="Freund entfernen" name="remove_friend"/>
+ <menu_item_call label="In Gruppe einladen..." name="invite_to_group"/>
+ <menu_item_call label="Hineinzoomen" name="zoom_in"/>
+ <menu_item_call label="Karte" name="map"/>
+ <menu_item_call label="Freigeben" name="share"/>
+ <menu_item_call label="Bezahlen" name="pay"/>
+ <menu_item_check label="Ignorieren/Nicht mehr ignorieren" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/de/menu_people_nearby_multiselect.xml
index b6e99edfe1..ba6578e2d1 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Freunde hinzufügen" name="Add Friends"/>
- <menu_item_call label="Freunde entfernen" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Anrufen" name="Call"/>
- <menu_item_call label="Teilen" name="Share"/>
- <menu_item_call label="Bezahlen" name="Pay"/>
- <menu_item_call label="Teleport anbieten" name="teleport"/>
+ <menu_item_call label="Freunde hinzufügen" name="add_friends"/>
+ <menu_item_call label="Freunde entfernen" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Anrufen" name="call"/>
+ <menu_item_call label="Freigeben" name="share"/>
+ <menu_item_call label="Bezahlen" name="pay"/>
+ <menu_item_call label="Teleport anbieten" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/de/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..d38ec65037
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Nach letzten Sprechern sortieren" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Nach Namen sortieren" name="sort_name"/>
+ <menu_item_check label="Nach Nähe sortieren" name="sort_distance"/>
+ <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/>
+ <menu_item_check label="Karte anzeigen" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml
index a001544f3e..a001544f3e 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/de/menu_people_recent_view.xml b/indra/newview/skins/default/xui/de/menu_people_recent_view.xml
new file mode 100644
index 0000000000..a116ad0bc1
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Nach jüngsten sortieren" name="sort_most"/>
+ <menu_item_check label="Nach Namen sortieren" name="sort_name"/>
+ <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml
index 1ef020f5e1..1ef020f5e1 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/de/menu_picks.xml b/indra/newview/skins/default/xui/de/menu_picks.xml
index 9aec4c83b0..9aec4c83b0 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_picks.xml
+++ b/indra/newview/skins/default/xui/de/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/de/menu_picks_plus.xml b/indra/newview/skins/default/xui/de/menu_picks_plus.xml
index 385ff25b95..385ff25b95 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/de/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/de/menu_place.xml b/indra/newview/skins/default/xui/de/menu_place.xml
index d9c85f5b92..d9c85f5b92 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_place.xml
+++ b/indra/newview/skins/default/xui/de/menu_place.xml
diff --git a/indra/newview/skins/default/xui/de/menu_place_add_button.xml b/indra/newview/skins/default/xui/de/menu_place_add_button.xml
index 7c0ff4a46a..7c0ff4a46a 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/de/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/de/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/de/menu_places_gear_folder.xml
index 892f075d3c..892f075d3c 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/de/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/de/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/de/menu_places_gear_landmark.xml
index 8955f797a2..8955f797a2 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/de/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
index 9f3fcbca1d..9f3fcbca1d 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/de/menu_save_outfit.xml b/indra/newview/skins/default/xui/de/menu_save_outfit.xml
index 986c78b318..986c78b318 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/de/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/de/menu_script_chiclet.xml b/indra/newview/skins/default/xui/de/menu_script_chiclet.xml
index 3256aa1a87..3256aa1a87 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/de/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/de/menu_slurl.xml b/indra/newview/skins/default/xui/de/menu_slurl.xml
index b2ec017f9f..b2ec017f9f 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/de/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
index 68b8e21802..68b8e21802 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
index ff8fb0b181..ff8fb0b181 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_tab.xml
index 194dd16fd1..194dd16fd1 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/de/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/de/menu_text_editor.xml b/indra/newview/skins/default/xui/de/menu_text_editor.xml
index 2e33ed3416..2e33ed3416 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/de/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/de/menu_toolbars.xml b/indra/newview/skins/default/xui/de/menu_toolbars.xml
index 3fb48e26b2..3fb48e26b2 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/de/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/de/menu_topinfobar.xml b/indra/newview/skins/default/xui/de/menu_topinfobar.xml
index 5b0a724244..5b0a724244 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/de/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_agent.xml b/indra/newview/skins/default/xui/de/menu_url_agent.xml
index 9a808088fb..c61ebb0eae 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Einwohnerprofil anzeigen" name="show_agent"/>
+ <menu_item_call label="Profil anzeigen" name="show_agent"/>
+ <menu_item_call label="IM senden..." name="send_im"/>
+ <menu_item_call label="Freund hinzufügen..." name="add_friend"/>
<menu_item_call label="Name in Zwischenablage kopieren" name="url_copy_label"/>
<menu_item_call label="SLurl in die Zwischenablage kopieren" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_url_group.xml b/indra/newview/skins/default/xui/de/menu_url_group.xml
index 6bd86414bc..6bd86414bc 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_http.xml b/indra/newview/skins/default/xui/de/menu_url_http.xml
index 30eb1668a5..30eb1668a5 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_inventory.xml b/indra/newview/skins/default/xui/de/menu_url_inventory.xml
index dc069df02b..dc069df02b 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_map.xml b/indra/newview/skins/default/xui/de/menu_url_map.xml
index 2f6ffcd450..2f6ffcd450 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_objectim.xml b/indra/newview/skins/default/xui/de/menu_url_objectim.xml
index 90d3763d9c..77b7004e44 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Objektinformationen anzeigen" name="show_object"/>
+ <menu_item_call label="Objektprofil..." name="show_object"/>
<menu_item_call label="Auf Karte zeigen" name="show_on_map"/>
<menu_item_call label="Zu Objekt-Position teleportieren" name="teleport_to_object"/>
<menu_item_call label="Objektname in Zwischenablage kopieren" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/de/menu_url_parcel.xml b/indra/newview/skins/default/xui/de/menu_url_parcel.xml
index 9169bca24f..9169bca24f 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_slapp.xml b/indra/newview/skins/default/xui/de/menu_url_slapp.xml
index 72e916b902..72e916b902 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_slurl.xml b/indra/newview/skins/default/xui/de/menu_url_slurl.xml
index 5d48230ebf..5d48230ebf 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/de/menu_url_teleport.xml b/indra/newview/skins/default/xui/de/menu_url_teleport.xml
index 4cc1ecc70e..4cc1ecc70e 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/de/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 845df1f050..2c9d9fa7f1 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Animation meines Avatars stoppen" name="Stop Animating My Avatar"/>
<menu_item_call label="Gehen/Rennen/Fliegen..." name="Walk / run / fly"/>
</menu>
- <menu label="Status" name="Status">
- <menu_item_call label="Abwesend" name="Set Away"/>
- <menu_item_call label="Beschäftigt" name="Set Busy"/>
- </menu>
+ <menu label="Status" name="Status"/>
<menu_item_call label="L$ kaufen..." name="Buy and Sell L$"/>
<menu_item_call label="Händler-Outbox..." name="MerchantOutbox"/>
<menu_item_call label="Kontoübersicht..." name="Manage My Account">
@@ -32,14 +29,18 @@
<menu_item_call label="[APP_NAME] schließen" name="Quit"/>
</menu>
<menu label="Unterhalten" name="Communicate">
- <menu_item_check label="Chat..." name="Nearby Chat"/>
+ <menu_item_check label="Unterhaltungen..." name="Conversations"/>
+ <menu_item_check label="Chat in der Nähe..." name="Nearby Chat"/>
<menu_item_check label="Sprechen" name="Speak"/>
- <menu_item_check label="Voice-Einstellungen..." name="Nearby Voice"/>
- <menu_item_check label="Voice-Morphing..." name="ShowVoice"/>
+ <menu label="Voice-Morphing" name="VoiceMorphing">
+ <menu_item_check label="Kein Voice-Morphing" name="NoVoiceMorphing"/>
+ <menu_item_check label="Vorschau..." name="Preview"/>
+ <menu_item_call label="Abonnieren..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Gesten..." name="Gestures"/>
- <menu_item_call label="Freunde" name="My Friends"/>
- <menu_item_call label="Gruppen" name="My Groups"/>
- <menu_item_call label="Leute in der Nähe" name="Active Speakers"/>
+ <menu_item_check label="Freunde" name="My Friends"/>
+ <menu_item_check label="Gruppen" name="My Groups"/>
+ <menu_item_check label="Leute in der Nähe" name="Active Speakers"/>
<menu_item_call label="Blockierliste" name="Block List"/>
</menu>
<menu label="Welt" name="World">
@@ -115,7 +116,6 @@
<menu_item_call label="Kaufen" name="Menu Object Buy"/>
<menu_item_call label="Nehmen" name="Menu Object Take"/>
<menu_item_call label="Kopie nehmen" name="Take Copy"/>
- <menu_item_call label="Objekt wieder in meinem Inventar speichern" name="Save Object Back to My Inventory"/>
<menu_item_call label="Wieder in Objektinhalt speichern" name="Save Object Back to Object Contents"/>
<menu_item_call label="Objekt zurückgeben" name="Return Object back to Owner"/>
</menu>
@@ -130,6 +130,7 @@
<menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Figuren..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Anzeigen/Testen..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Region neu formen" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Optionen" name="Options">
<menu_item_check label="Erweiterte Berechtigungen anzeigen" name="DebugPermissions"/>
@@ -159,6 +160,13 @@
<menu label="Hilfe" name="Help">
<menu_item_call label="Anweisungen..." name="How To"/>
<menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
+ <menu_item_call label="Benutzerhandbuch" name="User’s guide"/>
+ <menu_item_call label="Knowledge Base" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Community-Foren" name="Community Forums"/>
+ <menu_item_call label="Support-Portal" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE]-Neuigkeiten" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE]-Blogs" name="Second Life Blogs"/>
<menu_item_call label="Missbrauch melden" name="Report Abuse"/>
<menu_item_call label="Fehler melden" name="Report Bug"/>
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
@@ -385,9 +393,14 @@
<menu_item_call label="Weiblich testen" name="Test Female"/>
<menu_item_check label="Avatarauswahl zulassen" name="Allow Select Avatar"/>
</menu>
+ <menu label="Animationsgeschwindigkeit" name="Animation Speed">
+ <menu_item_call label="Alle Animationen 10 % schneller" name="All Animations 10 Faster"/>
+ <menu_item_call label="Alle Animationen 10 % langsamer" name="All Animations 10 Slower"/>
+ <menu_item_call label="Alle Animationsgeschwindigkeiten zurücksetzen" name="Reset All Animation Speed"/>
+ <menu_item_check label="Zeitlupen-Animationen" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Param auf Standard erzwingen" name="Force Params to Default"/>
<menu_item_check label="Animations-Info" name="Animation Info"/>
- <menu_item_check label="Zeitlupen-Animationen" name="Slow Motion Animations"/>
<menu_item_check label="Kamerafokus anzeigen" name="Show Look At"/>
<menu_item_check label="Klickpunkt anzeigen??" name="Show Point At"/>
<menu_item_check label="Fehler in Landaktualisierung beseitigen" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml
index 283e454a06..283e454a06 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/de/menu_wearing_gear.xml b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml
index dacf898b6a..dacf898b6a 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/de/menu_wearing_tab.xml b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml
index 695451a105..695451a105 100644..100755
--- a/indra/newview/skins/default/xui/de/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/de/mime_types.xml b/indra/newview/skins/default/xui/de/mime_types.xml
index de93107e94..de93107e94 100644..100755
--- a/indra/newview/skins/default/xui/de/mime_types.xml
+++ b/indra/newview/skins/default/xui/de/mime_types.xml
diff --git a/indra/newview/skins/default/xui/de/mime_types_linux.xml b/indra/newview/skins/default/xui/de/mime_types_linux.xml
index e4b5c53292..e4b5c53292 100644..100755
--- a/indra/newview/skins/default/xui/de/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/de/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/de/mime_types_mac.xml b/indra/newview/skins/default/xui/de/mime_types_mac.xml
index e4b5c53292..e4b5c53292 100644..100755
--- a/indra/newview/skins/default/xui/de/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/de/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 4b7a60b4eb..dc0d7dc6b4 100644..100755
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -523,6 +523,24 @@ Weitere Informationen finden Sie auf [_URL].
</url>
<usetemplate ignoretext="Mein Grafiktreiber ist veraltet" name="okcancelignore" notext="Nein" yestext="Ja"/>
</notification>
+ <notification name="AMDOldDriver">
+ Wahrscheinlich gibt es einen neueren Treiber für Ihren Grafikchip. Durch Aktualisieren der Grafiktreiber lässt sich die Leistung u. U. beträchtlich verbessern.
+
+ Unter [_URL] nach aktualisierten Treibern suchen?
+ <url name="url">
+ http://support.amd.com/de/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Mein Grafiktreiber ist veraltet" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Wahrscheinlich gibt es einen neueren Treiber für Ihren Grafikchip. Durch Aktualisieren der Grafiktreiber lässt sich die Leistung u. U. beträchtlich verbessern.
+
+ Unter [_URL] nach aktualisierten Treibern suchen?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=de-de
+ </url>
+ <usetemplate ignoretext="Mein Grafiktreiber ist veraltet" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
<notification name="UnknownGPU">
Ihr System verwendet eine Grafikkarte, die [APP_NAME] nicht erkennt.
Dies passiert dann, wenn die neue Hardware noch nicht mit [APP_NAME] getestet wurde. Wahrscheinlich wird das Programm richtig ausgeführt, aber Sie müssen eventuell ein paar Grafikeinstellungen vornehmen.
@@ -1558,10 +1576,13 @@ Diese Gruppe verlassen?
Sie können gerade keine Freundschaft anbieten. Warten Sie kurz und versuchen Sie es dann noch einmal.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- Beschäftigt-Modus ist aktiviert.
-Chat und Instant Messages werden ausgeblendet. Instant Messages (Sofortnachrichten) erhalten Ihre Beschäftigt-Antwort. Alle Teleport-Angebote werden abgelehnt. Alle Inventar-Angebote werden in Ihren Papierkorb geschoben.
- <usetemplate ignoretext="Ich ändere meinen Status zu Beschäftigt" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Nicht-stören-Modus ist aktiviert: Sie erhalten keine Benachrichtigung über eingehende Kommunikation.
+
+- Andere Einwohner erhalten Ihre Nicht-stören-Antwort (festgelegt in Einstellungen &gt; Allgemein).
+- Teleport-Angebote werden abgelehnt.
+- Voice-Anrufe werden abgelehnt.
+ <usetemplate ignoretext="Ich ändere meinen Status zu „Nicht stören“" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Sie haben die maximale Anzahl an Gruppen erreicht. Bitte verlassen Sie eine andere Gruppe, um dieser beitreten zu können oder lehnen Sie das Angebot ab.
@@ -2049,6 +2070,10 @@ Inventarobjekt(e) verschieben?
Möchten Sie Ihre [http://secondlife.com/account/ Startseite] aufrufen, um Ihre Konto-Statistik anzuzeigen?
<usetemplate ignoretext="Meinen Browser starten, um meine Konto-Statistik anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="Gehe zu Seite"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Wenn Sie eine Person zu einer vorhandenen Unterhaltung hinzufügen, wird eine neue Unterhaltung erstellt. Alle Teilnehmer erhalten neue Unterhaltungsbenachrichtigungen.
+ <usetemplate ignoretext="Hinzufügen von Chat-Teilnehmern bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
<notification name="ConfirmQuit">
Wirklich beenden?
<usetemplate ignoretext="Bestätigen, bevor Sitzung beendet wird" name="okcancelignore" notext="Nicht beenden" yestext="Beenden"/>
@@ -2122,14 +2147,14 @@ Möchten Sie es mit dem ausgewählten Objekt ersetzen?
<button ignore="Nie ersetzen" name="No" text="Abbrechen"/>
</form>
</notification>
- <notification label="Beschäftigt-Modus-Warnung" name="BusyModePay">
- Sie sind im Beschäftigt-Modus, sodass Sie im Austausch für diese Zahlung keine Objekte erhalten können.
+ <notification label="Warnung für Nicht-stören-Modus" name="DoNotDisturbModePay">
+ Sie haben den Nicht-stören-Modus aktiviert. Sie erhalten keine Artikel, die im Gegenzug für diese Zahlung angeboten werden.
-Möchten Sie den Bechäftigt-Modus verlassen, bevor Sie diese Transaktion abschließen?
+Möchten Sie den Nicht-stören-Modus deaktivieren, bevor Sie diese Transaktion abschließen?
<form name="form">
- <ignore name="ignore" save_option="true" text="Ich bin im Begriff eine Person oder ein Objekt zu bezahlen, während ich im Modus Beschäftigt bin."/>
- <button ignore="Beschäftigt-Modus immer deaktivieren" name="Yes" text="OK"/>
- <button ignore="Beschäftigt-Modus aktiviert lassen" name="No" text="Abbrechen"/>
+ <ignore name="ignore" text="Ich bin im Begriff eine Person oder ein Objekt zu bezahlen, während ich im Nicht-stören-Modus bin."/>
+ <button ignore="„Nicht stören“-Modus immer verlassen" name="Yes" text="OK"/>
+ <button ignore="„Nicht stören“-Modus nie verlassen" name="No" text="Abbrechen"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2264,11 +2289,8 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies
<notification name="GroupNotice">
Betreff: [SUBJECT], Nachricht: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; ist online
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; ist offline
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; ist [STATUS]
</notification>
<notification name="AddSelfFriend">
Obwohl Sie ein sehr netter Mensch sind, können Sie sich nicht selbst als Freund hinzufügen.
@@ -2496,13 +2518,6 @@ Fliegen ist hier nicht möglich.
<notification name="DynamicPathfindingDisabled">
Dynamisches Pathfinding ist in dieser Region nicht aktiviert. Geskriptete Objekte, die Pathfinding-LSL-Aufrufe verwenden, funktionieren in dieser Region u. U. nicht wie erwartet.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- Wenn Sie bestimmte Objekte in dieser Region ändern, verhalten sich andere bewegliche Objekte u. U. inkorrekt. Um dieses Problem zu beheben, klicken Sie auf die Schaltfläche „Region neu formen“. Um weitere Informationen zu erhalten, klicken Sie auf „Hilfe“.
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Hilfe" ignoretext="Wenn Sie bestimmte Objekte in dieser Region ändern, verhalten sich andere bewegliche Objekte u. U. inkorrekt." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Fehler aufgetreten. Möglicherweise ist ein Netzwerk- oder Serverproblem aufgetreten oder Sie haben nicht die erforderlichen Baurechte. Dieses Problem lässt sich manchmal durch Ab- und Anmelden lösen.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2765,7 +2780,7 @@ Ist das OK?
<notification name="ScriptQuestionCaution">
Achtung: Das Objekt „&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;“ fordert uneingeschränkten Zugriff auf Ihr Linden-Dollar-Konto an. Wenn Sie Zugriff gewähren, kann dieses Objekt jederzeit und ohne weitere Warnung Ihr Konto belasten bzw. ganz leeren.
-Eine solche Anforderung ist nur in seltenen Fällen legitim. Gewähren Sie dem Objekt nur dann Zugriff, wenn Sie genau verstehen, wieso ein solcher Zugriff auf Ihr Konto erforderlich ist.
+Gewähren Sie dem Objekt nur dann Zugriff, wenn Sie genau verstehen, wieso ein solcher Zugriff auf Ihr Konto erforderlich ist.
<form name="form">
<button name="Grant" text="Uneingeschränkten Zugriff gewähren"/>
<button name="Deny" text="Verweigern"/>
@@ -3346,4 +3361,633 @@ Versuch abgebrochen.
Sie sind dabei, [NUM_ITEMS] Objekte zu löschen. Möchten Sie diesen Vorgang wirklich fortsetzen?
<usetemplate ignoretext="Möchten Sie wirklich mehrere Objekte löschen?" name="okcancelignore" notext="Nein" yestext="Ja"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] hat Sie eingefroren. Sie können sich nicht bewegen oder mit der Welt interagieren.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] hat Sie [AV_FREEZE_TIME] Sekunden lang eingefroren. Sie können sich nicht bewegen oder mit der Welt interagieren.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar eingefroren.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] hat Sie aufgetaut.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar aufgetaut.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ Einfrieren fehlgeschlagen, da Sie keine Berechtigung für diese Parzelle haben.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Sie sind nicht mehr eingefroren und können sich frei bewegen.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Dieser Benutzer kann nicht eingefroren werden.
+ </notification>
+ <notification name="NowOwnObject">
+ Sie sind jetzt Eigentümer des Objekts [OBJECT_NAME]
+ </notification>
+ <notification name="CantRezOnLand">
+ Objekt kann nicht an [OBJECT_POS] gerezzt werden, da der Landeigentümer dies nicht zulässt. Machen Sie den Landeigentümer mit dem Landwerkzeug ausfindig.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ Objekt kann nicht gerezzt werden, da zu viele Anforderungen vorliegen.
+ </notification>
+ <notification name="SitFailCantMove">
+ Sie können sich nicht hinsetzen, da Sie zur Zeit unbeweglich sind.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Sie können sich nicht hinsetzen, da Sie auf diesem Land keine Berechtigung dazu haben.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Kommen Sie näher heran. Sitzen auf Objekt nicht möglich, da
+es sich nicht in der gleichen Region befindet wie Sie.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Neues Objekt kann nicht erstellt werden. Die Region ist voll.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Objekt konnte nicht an festgelegtem Ort platziert werden. Versuchen Sie es erneut.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Auf Land, das Sie nicht besitzen, können Sie keine Bäume und Gräser erstellen.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ Kopieren fehlgeschlagen, da Sie keine Berechtigung zum Kopieren des Objekts „OBJ_NAME]“ besitzen.
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ Kopieren fehlgeschlagen, weil Objekt „[OBJ_NAME]“ nicht an Sie übertragen werden kann.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ Kopieren fehlgeschlagen, weil Objekt „[OBJ_NAME]“ zum Navmesh beiträgt.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Ohne ausgewählte Hauptobjekte duplizieren.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Objekte können nicht dupliziert werden, da die Region voll ist.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Objekte können nicht dupliziert werden, da die Parzelle, in der sie sich befinden, nicht auffindbar ist.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Objekt kann nicht erstellt werden, da
+die Parzelle voll ist.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Versuch zum Rezzen eines Objekts fehlgeschlagen.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Objekt, das in dieser Region zu Problemen geführt hat, kann nicht erstellt werden.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Dieses Inventarobjekt ist auf der schwarzen Liste.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Sie können gegenwärtig keine Objekte erstellen.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Landsuche blockiert.
+Sie haben zu viele Landsuchen in zu kurzer Zeit durchgeführt.
+Warten Sie kurz und versuchen Sie es noch einmal.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Nicht genügend Skriptressourcen verfügbar, um Objekt anzuhängen.
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Sie sind gestorben und wurden nach Hause teleportiert
+ </notification>
+ <notification name="EjectComingSoon">
+ Sie nicht hier nicht mehr zugelassen und haben [EJECT_TIME] Sekunden Zeit, um zu gehen.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Sie können diese Region nicht betreten, da
+der Server voll ist.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Erneutes Speichern im Inventar ist deaktiviert.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ „[OBJ_NAME]“ kann nicht im Objektinhalt gespeichert werden, da das Objekt, aus dem es gerezzt wurde, nicht mehr existiert.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ „[OBJ_NAME]“ kann nicht in Objektinhalt gespeichert werden, da Sie nicht die Berechtigung zum Modifizieren des Objekts „[DEST_NAME]“ besitzen.
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ „[OBJ_NAME]“ kann nicht erneut im Inventar gespeichert werden – dieser Vorgang wurde deaktiviert.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ Sie können Ihre Auswahl nicht kopieren, da Sie nicht die Berechtigung zum Kopieren des Objekts „[OBJ_NAME]“ haben.
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ Sie können Ihre Auswahl nicht kopieren, da das Objekt „[OBJ_NAME]“ nicht übertragbar ist.
+ </notification>
+ <notification name="NoTransNoCopy">
+ Sie können Ihre Auswahl nicht kopieren, da das Objekt „[OBJ_NAME]“ nicht übertragbar ist.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ Entfernen des Objekts „[OBJ_NAME]“ aus dem Simulator wird vom Berechtigungssystem nicht gestattet.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ Sie können Ihre Auswahl nicht speichern, da Sie keine Berechtigung zum Modifizieren des Objekts „[OBJ_NAME]“ besitzen.
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ Ihre Auswahl kann nicht gespeichert werden, da das Objekt „[OBJ_NAME]“ nicht kopiert werden kann.
+ </notification>
+ <notification name="NoModNoTaking">
+ Sie können Ihre Auswahl nicht in Empfang nehmen, da Sie nicht die Berechtigung zum Modifizieren des Objekts „[OBJ_NAME]“ haben.
+ </notification>
+ <notification name="RezDestInternalError">
+ Interner Fehler: Unbekannter Zielttyp.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Löschen fehlgeschlagen, da Objekt nicht gefunden wurde
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Dieser Benutzer kann nicht hinausgeworfen werden.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Diese Region gestattet nicht, dass Sie hier Ihr Zuhause festlegen.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Ihr Zuhause kann sich nur auf Ihrem eigenen Land oder in einem Infohub auf dem Mainland befinden.
+ </notification>
+ <notification name="HomePositionSet">
+ Position für Zuhause festgelegt.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar hinausgeworfen.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ Hinauswerfen fehlgeschlagen, da Sie keine Admin-Berechtigung für diese Parzelle haben.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da die Parzelle voll ist.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da Ihre Objekte auf dieser Parzelle nicht gestattet sind.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da nicht genügend Ressourcen für dieses Objekt auf dieser Parzelle vorhanden sind.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da die andere Region eine ältere Version verwendet, die das Empfangen dieses Objekts per Regionswechsel nicht unterstützt.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da Sie das Navmesh nicht regionsübergreifend modifizieren können.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Objekt „[OBJECT_NAME]“ kann nicht nach
+[OBJ_POSITION] in Region [REGION_NAME] verschoben werden, da ein unbekannter Fehler vorliegt. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ Ihnen fehlt die Berechtigung zum Modifizieren dieses Objekts.
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Physik kann nicht für ein Objekt aktiviert werden, das zum Navmesh beiträgt.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Physik für Keyframe-Objekte kann nicht aktiviert werden.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Physik für Objekte kann nicht aktiviert werden – nicht genügend Landressourcen.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Physik für Objekt mit Physikressourcenkosten höher als [MAX_OBJECTS] kann nicht aktiviert werden.
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Dieses Objekt kann kein konkaves Teil enthalten, da es ein Phantom ist und zum Navmesh beiträgt.
+ </notification>
+ <notification name="UnableAddItem">
+ Objekt konnte nicht hinzugefügt werden.
+ </notification>
+ <notification name="UnableEditItem">
+ Kein Bearbeiten möglich.
+ </notification>
+ <notification name="NoPermToEdit">
+ Bearbeiten nicht gestattet.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Kopieren dieses Inventars nicht gestattet.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Kein Speichern in Objektinhalt möglich: Objekt nicht mehr vorhanden.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Kein Speichern in Objektinhalt möglich: Artikel mit diesem Namen ist bereits im Inventar vorhanden.
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Kein Speichern in Objektinhalt möglich: Dadurch würden die Anhängeberechtigungen geändert.
+ </notification>
+ <notification name="TooManyScripts">
+ Zu viele Skripts.
+ </notification>
+ <notification name="UnableAddScript">
+ Skript konnte nicht hinzugefügt werden.
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Asset-Server hat nicht rechtzeitig reagiert. Objekt wurde zum Sim zurückübertragen.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ In dieser Region sind keine Physikformen aktiviert.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Sie können das Navmesh nicht regionsübergreifend modifizieren.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Für diesen Objekttyp können keine Physikeigenschaften gesetzt werden.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ Hauptprim kann nicht auf formlos eingestellt werden.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ In dieser Region sind keine Physikmaterialien aktiviert.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Nur bei Hauptprims können die Physikmaterialien angepasst werden.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ Die Anwendung von Physikmaterialien auf Personen wird noch nicht unterstützt.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Eine oder mehrere der angegebenen Eigenschaften für Physikmaterialien waren ungültig.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Sie können den Nahttyp eines Mesh-Objekts nicht ändern.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Sie können die Form eines Mesh-Objekts nicht ändern.
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Sie können diese Region nicht betreten, \nda die Region voll ist.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Verknüpfungsfehler – Eigentümer sind unterschiedlich
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Verknüpfungsfehler – Navmesh kann nicht regionsübergreifend modifiziert werden.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Verknüpfungsfehler, da Sie keine Berechtigung zum Bearbeiten haben.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Verknüpfungsfehler – zu viele Primitive
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Verknüpfungsfehler – nichtkopierfähige Objekte können nicht mit nichtübertragungsfähigen Objekten verknüpft werden
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Verknüpfungsfehler – nichts zum Verknüpfen vorhanden.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Verknüpfungsfehler – zu viele Pathfinding-Figuren
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Verknüpfungsfehler – nicht genügend Landressourcen
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ Objekt verwendet zu viele Physikressourcen – seine Dynamik wurde deaktiviert.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Sie wurden vom Objekt „[OBJECT_NAME]“ auf der Parzelle „[PARCEL_NAME]“ nach Hause teleportiert
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Sie wurden von Objekt „[OBJECT_NAME]“ nach Hause teleportiert.
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Sie wurden von einem Anhang an [ITEM_ID] teleportiert
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Sie wurden von Objekt „[OBJECT_NAME]“ auf der Parzelle „[PARCEL_NAME]“ teleportiert
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Sie wurden von Objekt „[OBJECT_NAME]“, das [OWNER_ID] gehört, teleportiert
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Sie wurden von Objekt „[OBJECT_NAME]“, das einem unbekannten Benutzer gehört, teleportiert.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Angefordertes Objekt kann nicht erstellt werden. Die Region ist voll.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Sie können nicht mehrere Objekte an ein und derselben Stelle anhängen.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Sie können hier nicht mehrere Objekte erstellen.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Angefordertes Objekt kann nicht erstellt werden. Objekt fehlt in Datenbank.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Angefordertes Objekt kann nicht erstellt werden. Zeitüberschreitung bei Anforderung. Versuchen Sie es erneut.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Angefordertes Objekt kann nicht erstellt werden. Versuchen Sie es erneut.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Fehler beim Rezzen; Laden des angeforderten Objekts hat zu lang gedauert.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Objekt konnte nicht an angegebenem Ort platziert werden. Versuchen Sie es erneut.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Auf diesem Land können keine Pflanzen erstellt werden.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Objekt kann nicht wiederhergestellt werden. Keine Weltposition gefunden.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Objekt kann nicht gerezzt werden, da seine Meshdaten ungültig sind.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Objekt kann nicht gerezzt werden, da die Region bereits zu viele Skripts aufweist.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Ihr Zugangsberechtigungen gestatten nicht das Erstellen von Objekten an dieser Stelle.
+ </notification>
+ <notification name="CantCreateObject">
+ Sie können gegenwärtig keine Objekte erstellen.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Ungültige Objektparameter
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Ihre Zugangsberechtigungen gestatten nicht das Duplizieren von Objekten an dieser Stelle.
+ </notification>
+ <notification name="CantChangeShape">
+ Sie können diese Form nicht ändern.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Ihr Zugangsberechtigungen gestatten nicht das Beanspruchen von Objekten an dieser Stelle.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Übertragung fehlgeschlagen, da Sie keine Berechtigung zum Übertragen von Objekten für Ihre Gruppe haben.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Ihr Zugangsberechtigungen gestatten nicht das Kaufen von Objekten an dieser Stelle.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Objekt kann nicht angehängt werden, da ein Avatar darauf sitzt.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Bäume und Gräser können nicht als Anhänge getragen werden.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Objekte im Gruppenbesitz können nicht angehängt werden.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Objekte, die Ihnen nicht gehören, können nicht angehängt werden.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Objekte, die zum Navmesh beitragen, können nicht angehängt werden.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ Objekt kann nicht angehängt werden, weil Sie es nicht verschieben dürfen.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Nicht genügend Skriptressourcen verfügbar, um Objekt anzuhängen.
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Ablegen von Objekten hier nicht möglich; versuchen Sie es mit dem kostenlosen Testbereich.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Sie können keine Mesh-Anhänge ablegen. In Inventar zurückführen und inworld rezzen.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Anhang konnte nicht abgelegt werden: Ihnen fehlt die Berechtigung zum Ablegen an dieser Stelle.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Anhang konnte nicht abgelegt werden: nicht genügend Landressourcen verfügbar.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Anhänge konnten nicht abgelegt werden: nicht genügend Ressourcen.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Objekt kann nicht hier abgelegt werden. Die Parzelle ist voll.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Dieses Objekt kann nicht berührt/angefasst werden, da Sie von der Landparzelle verbannt sind.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Grenzen Sie Ihre Löschparameter ein.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Asset kann nicht hochgeladen werden.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Keinen Benutzer zum Teleportieren nach Hause gefunden
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ Anforderdung nach übernatürlichen Kräften fehlgeschlagen
+ </notification>
+ <notification name="GenericRequestFailed">
+ generische Anforderdung fehlgeschlagen
+ </notification>
+ <notification name="CantUploadPostcard">
+ Postkarte kann nicht hochgeladen werden. Versuchen Sie es später erneut.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ Inventardetails für Gruppenmitteilung kann nicht abgerufen werden.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Gruppenmitteilung kann nicht gesendet werden – Vorgang nicht gestattet.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Gruppenmitteilung kann nicht gesendet werden – Bauen von Inventar nicht möglich.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Inventar in Mitteilung kann nicht geparst werden.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Fehler beim Hochladen von Terrain.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Terraindatei geschrieben.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Terraindatei geschrieben, Download beginnt...
+ </notification>
+ <notification name="TerrainBaked">
+ Terrain geformt.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Nur die ersten 10 ausgewählten Objekte wurden deaktiviert. Aktualisieren Sie die Anzeige und wählen Sie ggf. weitere Objekte aus.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Um diese Parzelle zu kaufen, müssen Sie Ihren Viewer aktualisieren.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Kein Kauf möglich; die ausgewählte Parzelle steht nicht zum Verkauf.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Kein Kauf möglich, da sich der Verkaufspreis oder die Fläche geändert haben.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Sie sind nicht der autorisierte Käufer dieser Parzelle.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Sie können diese Parzelle nicht kaufen, da sie bereits auf Kaufauthorisierung wartet.
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Sie können hier keine Objekte bauen, denn dies würde den Rahmen der Parzelle sprengen.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Sie haben Land mit unterschiedlichen Besitzern ausgewählt. Wählen Sie ein kleineres Gebiet aus und versuchen Sie es erneut.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Auswahl enthält nicht genügend gemietete Parzellen zum Zusammenlegen.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Land kann nicht geteilt werden.\nMehr als eine Parzelle ist ausgewählt.\nWählen Sie ein kleineres Stück Land aus.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ Land kann nicht geteilt werden.\nParzelle nicht auffindbar.\nMelden Sie das Problem über „Hilfe“ -&gt; „Fehler melden“...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Land kann nicht geteilt werden. Die gesamte Parzelle ist ausgewählt.\nWählen Sie ein kleineres Stück Land aus.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ Land wurde geteilt.
+ </notification>
+ <notification name="PassPurchased">
+ Sie haben einen Pass gekauft.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ Region lässt keine Werbung zu.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Ihr Pass für dieses Land läuft demnächst ab.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Keine geeignete Oberfläche zum Sitzen; probieren Sie es an einer anderen Stelle.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Kein Platz zum Hinsetzen; probieren Sie es an einer anderen Stelle.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ Objektbeanspruchung fehlgeschlagen, da Sie keine Berechtigung haben.
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ Objektbeanspruchung fehlgeschlagen, da Sie nicht genügend L$ haben.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Land in Gruppenbesitz kann nicht übertragen werden.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ Objektkauf fehlgeschlagen, da Sie nicht genügend L$ haben.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ Inventarkauf fehlgeschlagen, da Sie nicht genügend L$ haben.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ Sie haben nicht genügend L$, um einen Pass für dieses Land zu kaufen.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Passkauf momentan nicht möglich. Versuchen Sie es später erneut.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Objekt kann nicht erstellt werden, \nda die Parzelle voll ist.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Objekt konnte nicht an festgelegtem Ort platziert werden. Versuchen Sie es erneut.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Landmarke für dieses Ereignis kann nicht erstellt werden.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ Ihre übernatürlichen Kräfte heben das Einfrieren auf!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Anforderung nach Superpower fehlgeschlagen. Diese Anforderung wurde protokolliert.
+ </notification>
+ <notification name="ExpireExplanation">
+ Das System kann Ihre Anfrage momentan nicht verarbeiten. Zeitüberschreitung bei Anforderung.
+ </notification>
+ <notification name="DieExplanation">
+ Das System kann Ihre Anfrage nicht verarbeiten.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Sie haben nicht genügend Geld, um Primitive zu erstellen.
+ </notification>
+ <notification name="RezObjectFailure">
+ Sie haben nicht genügend Geld, um Objekt zu erstellen.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Zuhause-Position neu festlegen, da Zuhause nicht zulässig war.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Sie können gegenwärtig niemanden an Ihren Standort einladen, da die Region voll ist. Versuchen Sie es später erneut.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Diese Region gestattet nicht, dass Sie hier Ihr Zuhause festlegen.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Ihr Zuhause kann sich nur auf Ihrem eigenen Land oder in einem Infohub auf dem Mainland befinden.
+ </notification>
+ <notification name="SetHomePosition">
+ Position für Zuhause festgelegt.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Aufgrund eines Inventarfehlers kann das Rezzen dieses Objekts nicht aufgehoben werden.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Angefordertes Inventar kann nicht erstellt werden.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Angeforderter Inventarordner kann nicht erstellt werden.
+ </notification>
+ <notification name="CantCreateInventory">
+ Dieses Inventar kann nicht erstellt werden.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Landmarke kann nicht erstellt werden.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Im Moment kann kein Outfit erstellt werden. Versuchen Sie es gleich noch einmal.
+ </notification>
+ <notification name="InventoryNotForSale">
+ Inventar steht nicht zum Verkauf.
+ </notification>
+ <notification name="CantFindInvItem">
+ Inventarobjekt kann nicht gefunden werden.
+ </notification>
+ <notification name="CantFindObject">
+ Objekt kann nicht gefunden werden.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Geldüberweisungen an Objekte sind in dieser Region gegenwärtig deaktiviert.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Nicht ersichtlich, wer bezahlt werden muss.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Sie können öffentlichen Objekten keine L$ geben.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Inventarerstellung für Inworld-Objekt fehlgeschlagen.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Aufgrund eines internen Fehlers konnte Ihr Viewer nicht ordnungsgemäß aktualisiert werden. Der in Ihrem Viewer angezeigte L$-Kontostand oder Parzellenbesitz stimmt möglicherweise nicht mit dem aktuellen Stand auf den Servern überein.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Große Prims, die sich mit anderen Spielern überschneiden, können nicht erstellt werden. Bitte erneut versuchen, wenn sich die anderen Spieler bewegt haben.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Dadurch werden die Protokolle vorheriger Unterhaltungen und alle Backups dieser Datei gelöscht.
+ <usetemplate ignoretext="Löschen des Protokolls vorheriger Unterhaltungen bestätigen." name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Dadurch werden die Transkripte aller vorherigen Unterhaltungen gelöscht. Die Liste vergangener Unterhaltungen ist davon nicht betroffen. Alle Dateien mit den Suffixen .txt und txt.backup im Order [FOLDER] werden gelöscht.
+ <usetemplate ignoretext="Um Bestätigung bitten, bevor ich Transkripte lösche." name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Dateien können nicht verschoben werden. Vorheriger Pfad wurde wiederhergestellt.
+ <usetemplate ignoretext="Dateien können nicht verschoben werden. Vorheriger Pfad wurde wiederhergestellt." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/de/panel_active_object_row.xml b/indra/newview/skins/default/xui/de/panel_active_object_row.xml
index 00de705a30..00de705a30 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/de/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
index 6ad18781f5..6ad18781f5 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
index dcfcffa6e2..79a2ebe9df 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Dieser Freund kann Ihre Objekte bearbeiten, löschen und an sich nehmen"/>
<icon name="permission_map_icon" tool_tip="Dieser Freund kann Sie auf der Karte finden"/>
<icon name="permission_online_icon" tool_tip="Dieser Freund kann sehen, wenn Sie online sind"/>
+ <button name="info_btn" tool_tip="Mehr Infos"/>
<button name="profile_btn" tool_tip="Profil anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_avatar_tag.xml b/indra/newview/skins/default/xui/de/panel_avatar_tag.xml
index 09f930ec01..09f930ec01 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/de/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
index 2d140515d4..c105a5b8a3 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel" width="300">
- <text left_pad="5" name="title_text" width="260">
- Liste der ignorierten Einwohner
- </text>
- <scroll_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner" width="290"/>
- <button label="Einwohner ignorieren" label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="Wählen Sie einen Einwohner, um ihn zu ignorieren"/>
- <button label="Objekt nach Name ignorieren" label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswählen, um nach Namen zu ignorieren."/>
- <button label="Freischalten" label_selected="Freischalten" name="Unblock" tool_tip="Einwohner oder Objekt von der Liste der ignorierten Einwohner oder Objekte entfernen"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtern" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Aktionen für ausgewählte(s) Person/Objekt"/>
+ <menu_button name="view_btn" tool_tip="Sortieroptionen"/>
+ <menu_button name="plus_btn" tool_tip="Einwohner oder Objekt zum ignorieren auswählen"/>
+ <button name="unblock_btn" tool_tip="Einwohner oder Objekt aus der Liste der ignorierten Einwohner oder Objekte entfernen"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner" width="290"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
index 799586f021..799586f021 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
index 4d7e65405a..4d7e65405a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/de/panel_bottomtray_lite.xml
index 9c84105254..9c84105254 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/de/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/de/panel_chat_header.xml b/indra/newview/skins/default/xui/de/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/de/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml
index bcc6772bb9..bcc6772bb9 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_classified_info.xml b/indra/newview/skins/default/xui/de/panel_classified_info.xml
index 007e9d69f0..007e9d69f0 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/de/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
index fc45c9ce79..fc45c9ce79 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
index 945acb02d7..945acb02d7 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_cof_wearables.xml b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
index 12294a43ce..12294a43ce 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/de/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/de/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..a9bfe4754e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(laden)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/de/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..afeaa14e81
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="Enthielt eine Voice-Unterhaltung"/>
+ <icon name="unread_ims_icon" tool_tip="Nachrichten trafen ein, während Sie abgemeldet waren"/>
+ <button name="delete_btn" tool_tip="Diesen Eintrag entfernen"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
index a27252e23e..a27252e23e 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
index b7ad1bdc1b..b7ad1bdc1b 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml
index 4c6facf5e3..4c6facf5e3 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_classified.xml b/indra/newview/skins/default/xui/de/panel_edit_classified.xml
index bd270697ea..bd270697ea 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_eyes.xml b/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
index 69bcf2fb71..69bcf2fb71 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_gloves.xml b/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
index fb7d18f66c..fb7d18f66c 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_hair.xml b/indra/newview/skins/default/xui/de/panel_edit_hair.xml
index d6efde8306..d6efde8306 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_jacket.xml b/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
index 1b7c1d79a5..1b7c1d79a5 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_pants.xml b/indra/newview/skins/default/xui/de/panel_edit_pants.xml
index 533cf20412..533cf20412 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_physics.xml b/indra/newview/skins/default/xui/de/panel_edit_physics.xml
index bd9c84577a..bd9c84577a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_pick.xml b/indra/newview/skins/default/xui/de/panel_edit_pick.xml
index aafffc7ae3..aafffc7ae3 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
index 03974e7f7f..03974e7f7f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shape.xml b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
index 80d3b29cad..80d3b29cad 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shirt.xml b/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
index 4f140a2b01..4f140a2b01 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shoes.xml b/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
index abedb8d89e..abedb8d89e 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_skin.xml b/indra/newview/skins/default/xui/de/panel_edit_skin.xml
index 60f6919485..60f6919485 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_skirt.xml b/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
index 07ce8a7436..07ce8a7436 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_socks.xml b/indra/newview/skins/default/xui/de/panel_edit_socks.xml
index 4e72b63f49..4e72b63f49 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
index 075a9d752a..075a9d752a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_underpants.xml b/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
index 1fad0ccedb..1fad0ccedb 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
index 9d193ffedb..9d193ffedb 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
index 94a79a0bbd..94a79a0bbd 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
index 9cb72fafff..9cb72fafff 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml
index 9d4301de73..9d4301de73 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
index bf4d44af52..bf4d44af52 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_invite.xml b/indra/newview/skins/default/xui/de/panel_group_invite.xml
index c32d2fe4bf..c32d2fe4bf 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index d9d237be2e..d9d237be2e 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_list_item.xml b/indra/newview/skins/default/xui/de/panel_group_list_item.xml
index d097a2b18c..fc911a64df 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Unbekannt"/>
+ <button name="info_btn" tool_tip="Mehr Infos"/>
<button name="profile_btn" tool_tip="Profil anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_notices.xml b/indra/newview/skins/default/xui/de/panel_group_notices.xml
index df423cc69a..df423cc69a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_notify.xml b/indra/newview/skins/default/xui/de/panel_group_notify.xml
index 9c05e99786..9c05e99786 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/de/panel_group_roles.xml b/indra/newview/skins/default/xui/de/panel_group_roles.xml
index f297d32a91..f297d32a91 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
index abf8011d9d..abf8011d9d 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/de/panel_instant_message.xml b/indra/newview/skins/default/xui/de/panel_instant_message.xml
index 372def78ca..372def78ca 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/de/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/de/panel_inventory_item.xml b/indra/newview/skins/default/xui/de/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_landmark_info.xml b/indra/newview/skins/default/xui/de/panel_landmark_info.xml
index 10cf34c170..10cf34c170 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/de/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/de/panel_landmarks.xml b/indra/newview/skins/default/xui/de/panel_landmarks.xml
index c1f8a20728..c1f8a20728 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/de/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index 8cc467185c..8cc467185c 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
index 2f00782ef0..2f00782ef0 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/panel_me.xml b/indra/newview/skins/default/xui/de/panel_me.xml
index f49446fbbf..f49446fbbf 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_me.xml
+++ b/indra/newview/skins/default/xui/de/panel_me.xml
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
index 75c9057571..75c9057571 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
index dd408b8275..dd408b8275 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
index adc0d22ce6..adc0d22ce6 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
index 53794b6619..53794b6619 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
index 07ad761791..07ad761791 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
index 69cf6d98de..69cf6d98de 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_media.xml b/indra/newview/skins/default/xui/de/panel_nearby_media.xml
index 90885c7192..90885c7192 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/de/panel_notifications_channel.xml b/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
index 35bd76ce70..35bd76ce70 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
diff --git a/indra/newview/skins/default/xui/de/panel_notify_textbox.xml b/indra/newview/skins/default/xui/de/panel_notify_textbox.xml
index da672a0309..da672a0309 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/de/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/de/panel_online_status_toast.xml b/indra/newview/skins/default/xui/de/panel_online_status_toast.xml
index 7c7448c061..7c7448c061 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/de/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/de/panel_outbox_inventory.xml
index 4006022ffc..4006022ffc 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
index 1af0492aa1..1af0492aa1 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
index d5158b2d97..d5158b2d97 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
index ad0e039070..ad0e039070 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_list.xml b/indra/newview/skins/default/xui/de/panel_outfits_list.xml
index ea3a938be9..ea3a938be9 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml
index 27141796a8..27141796a8 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index 4e76147746..8c05ca2c24 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -14,81 +14,53 @@ Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
<string name="no_filtered_friends_msg">
Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche].
</string>
- <string name="people_filter_label" value="Nach Leuten filtern"/>
- <string name="groups_filter_label" value="Nach Gruppen filtern"/>
<string name="no_filtered_groups_msg" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/groups/[SEARCH_TERM] Suche]."/>
<string name="no_groups_msg" value="Suchen Sie nach Gruppen? Versuchen Sie es mit der [secondlife:///app/search/groups Suche]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Doppelklicken, um Karte zu öffnen; Umschalttaste gedrückt halten und ziehen, um zu schwenken)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Doppelklicken, um zu teleportieren; Umschalttaste gedrückt halten und ziehen, um zu schwenken)"/>
- <filter_editor label="Filter" name="filter_input"/>
<tab_container name="tabs">
<panel label="IN DER NÄHE" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Optionen"/>
- <button name="add_friend_btn" tool_tip="Ausgewählten Einwohner zur Freundeliste hinzufügen"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Nach Personen filtern" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Aktionen für ausgewählte Person"/>
+ <menu_button name="nearby_view_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <button name="add_friend_btn" tool_tip="Einem Einwohner die Freundschaft anbieten"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Ausgewählte Person als Freund entfernen"/>
</panel>
</panel>
- <panel label="MEINE FREUNDE" name="friends_panel">
+ <panel label="FREUNDE" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Nach Personen filtern" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Aktionen für ausgewählte Person"/>
+ <menu_button name="friends_view_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <button name="friends_add_btn" tool_tip="Einem Einwohner die Freundschaft anbieten"/>
+ <dnd_button name="friends_del_btn" tool_tip="Ausgewählte Person als Freund entfernen"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Online"/>
<accordion_tab name="tab_all" title="Alle"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Bieten Sie einem Einwohner die Freundschaft an"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Ausgewählte Person aus Ihrer Freundesliste entfernen"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="MEINE GRUPPEN" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Optionen"/>
- <button name="plus_btn" tool_tip="Gruppe beitreten/Neue Gruppe erstellen"/>
- <button name="activate_btn" tool_tip="Ausgewählte Gruppe aktivieren"/>
+ <panel label="GRUPPEN" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Nach Gruppen filtern" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Aktionen für ausgewählte Gruppe"/>
+ <menu_button name="groups_view_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <menu_button name="plus_btn" tool_tip="Gruppe beitreten/Neue Gruppe erstellen"/>
+ <dnd_button name="minus_btn" tool_tip="Ausgewählte Gruppe verlassen"/>
</panel>
</panel>
<panel label="AKTUELL" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Optionen"/>
- <button name="add_friend_btn" tool_tip="Ausgewählten Einwohner zur Freundeliste hinzufügen"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Nach Personen filtern" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Aktionen für ausgewählte Person"/>
+ <menu_button name="recent_view_btn" tool_tip="Anzeige-/Sortieroptionen"/>
+ <button name="add_friend_btn" tool_tip="Einem Einwohner die Freundschaft anbieten"/>
+ <dnd_button name="recent_del_btn" tool_tip="Ausgewählte Person als Freund entfernen"/>
</panel>
</panel>
+ <panel label="IGNORIERT" name="blocked_panel">
+ <panel label="Ignorierte Einwohner und Objekte" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Profil" name="view_profile_btn" tool_tip="Bilder, Gruppen und andere Einwohner-Informationen anzeigen"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="IM-Sitzung öffnen"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Anrufen" name="call_btn" tool_tip="Diesen Einwohner anrufen"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Freigeben" name="share_btn" tool_tip="Inventarobjekt freigeben"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Gruppe anrufen" name="group_call_btn" tool_tip="Diese Gruppe anrufen"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_pick_info.xml b/indra/newview/skins/default/xui/de/panel_pick_info.xml
index f215c43a3d..f215c43a3d 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/de/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/de/panel_picks.xml b/indra/newview/skins/default/xui/de/panel_picks.xml
index 6aaa3151a8..6aaa3151a8 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_picks.xml
+++ b/indra/newview/skins/default/xui/de/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/de/panel_place_profile.xml b/indra/newview/skins/default/xui/de/panel_place_profile.xml
index 4077fdab36..4077fdab36 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/de/panel_places.xml b/indra/newview/skins/default/xui/de/panel_places.xml
index 602ffff94d..602ffff94d 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_places.xml
+++ b/indra/newview/skins/default/xui/de/panel_places.xml
diff --git a/indra/newview/skins/default/xui/de/panel_postcard_message.xml b/indra/newview/skins/default/xui/de/panel_postcard_message.xml
index 6eeef8af71..6eeef8af71 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/de/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/de/panel_postcard_settings.xml b/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
index c1a1c0cc46..c1a1c0cc46 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
index 8a5c175f2f..8a5c175f2f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
index fcb45e26be..fcb45e26be 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index c9ae350147..8193fd42c1 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Text-Chat" name="chat">
- <text name="font_size">
- Schriftgröße:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Klein" name="radio" value="0"/>
- <radio_item label="Mittel" name="radio2" value="1"/>
- <radio_item label="Groß" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/>
- <check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/>
- <check_box label="Kompakten IM- und Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
- <check_box label="Blasen-Chat" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- IMs anzeigen in:
- </text>
- <text name="requires_restart_label">
- (Neustart erforderlich)
- </text>
- <radio_group name="chat_window" tool_tip="Zeigen Sie Ihre Sofortnachrichten (Instant Messages) in einem anderen Fenster oder in einem einzigen Fenster mit vielen Registerkarten an (Neustart erforderlich).">
- <radio_item label="Getrennte Fenster" name="radio" value="0"/>
- <radio_item label="Registerkarten" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Popups für eingehende Chats aktivieren:
- </text>
- <check_box label="Gruppen-Chats" name="EnableGroupChatPopups" tool_tip="Markieren, um Popups zu sehen, wenn Gruppen-Chat-Message eintrifft"/>
- <check_box label="IM-Chats" name="EnableIMChatPopups" tool_tip="Markieren, um Popups zu sehen, wenn Instant Message eintrifft"/>
- <spinner label="Lebenszeit von Toasts für Chat in der Nähe:" name="nearby_toasts_lifetime"/>
- <spinner label="Ein-/Ausblenddauer von Toasts für Chat in der Nähe:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/>
+ <check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/>
+ <check_box label="Nur IMs und Anrufe von Freunden oder Gruppen durchstellen" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Schriftgröße:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Klein" name="Small" value="0"/>
+ <item label="Mittel" name="Medium" value="1"/>
+ <item label="Groß" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Blasen-Chat" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Benachrichtigungen
+ </text>
+ <text name="friend_ims">
+ IMs von Freunden:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Unterhaltungsfenster öffnen" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Nachricht in Popup anzeigen" name="PopUpMessage" value="toast"/>
+ <item label="Flash-Symbolleistenschaltfläche" name="FlashToolbarButton" value="flash"/>
+ <item label="None" name="None" value="none"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ IMs von anderen:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Unterhaltungsfenster öffnen" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Nachricht in Popup anzeigen" name="PopUpMessage" value="toast"/>
+ <item label="Flash-Symbolleistenschaltfläche" name="FlashToolbarButton" value="flash"/>
+ <item label="None" name="None" value="none"/>
+ </combo_box>
+ <text name="conference_ims">
+ Konferenz-IMs:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Unterhaltungsfenster öffnen" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Nachricht in Popup anzeigen" name="PopUpMessage" value="toast"/>
+ <item label="Flash-Symbolleistenschaltfläche" name="FlashToolbarButton" value="flash"/>
+ <item label="None" name="None" value="none"/>
+ </combo_box>
+ <text name="group_chat">
+ Gruppen-Chat:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Unterhaltungsfenster öffnen" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Nachricht in Popup anzeigen" name="PopUpMessage" value="toast"/>
+ <item label="Flash-Symbolleistenschaltfläche" name="FlashToolbarButton" value="flash"/>
+ <item label="None" name="None" value="none"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Chat in der Nähe:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Unterhaltungsfenster öffnen" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Nachricht in Popup anzeigen" name="PopUpMessage" value="toast"/>
+ <item label="Flash-Symbolleistenschaltfläche" name="FlashToolBarButton" value="flash"/>
+ <item label="None" name="None" value="none"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Um vorübergehend alle Benachrichtigungen zu stoppen, wählen Sie „Unterhalten“ &gt; „Nicht stören“.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Sound abspielen:
+ </text>
+ <check_box label="Neue Unterhaltung" name="new_conversation"/>
+ <check_box label="Eingehender Anruf..." name="incoming_voice_call"/>
+ <check_box label="Teleport-Angebot" name="teleport_offer"/>
+ <check_box label="Inventarangebot" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Protokoll löschen..." name="clear_log"/>
+ <button label="Protokolle löschen..." name="delete_transcripts"/>
+ <button label="Durchsuchen..." label_selected="Durchsuchen" name="log_path_button"/>
+ </panel>
<button label="Übersetzen..." name="ok_btn"/>
<button label="Automatisch ersetzen..." name="autoreplace_showgui"/>
<button label="Rechtschreibprüfung..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_colors.xml b/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
index 19c5efcb05..19c5efcb05 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 979ccba48d..4e453b6969 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -69,9 +69,9 @@
<combo_box.item label="nie" name="item4"/>
</combo_box>
<text name="text_box3">
- Antwort, wenn im „Beschäftigt“-Modus:
+ Nicht-stören-Antwort:
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
index 9175ea0bae..9175ea0bae 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_move.xml b/indra/newview/skins/default/xui/de/panel_preferences_move.xml
index 3e248f0bf0..3e248f0bf0 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
index e21bed6bb5..e21bed6bb5 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
index 8c7ea688d7..8c7ea688d7 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
index 1e6a03c99f..1e6a03c99f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
index c85f2762b1..c85f2762b1 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_covenant.xml b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
index 225c98b84f..225c98b84f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_debug.xml b/indra/newview/skins/default/xui/de/panel_region_debug.xml
index a03a0b8b7b..a03a0b8b7b 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_environment.xml b/indra/newview/skins/default/xui/de/panel_region_environment.xml
index daadd30f62..daadd30f62 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index b087451391..b087451391 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_general.xml b/indra/newview/skins/default/xui/de/panel_region_general.xml
index f383be992b..f383be992b 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/de/panel_region_terrain.xml b/indra/newview/skins/default/xui/de/panel_region_terrain.xml
index 7801be30e4..7801be30e4 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/de/panel_script_ed.xml b/indra/newview/skins/default/xui/de/panel_script_ed.xml
index 7e03aeff15..7e03aeff15 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/de/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml
index c91eb98e9c..c91eb98e9c 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml
index 8d7cc1bf9a..8d7cc1bf9a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/de/panel_script_question_toast.xml b/indra/newview/skins/default/xui/de/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/de/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/de/panel_scrolling_param.xml b/indra/newview/skins/default/xui/de/panel_scrolling_param.xml
index 50590b8d73..50590b8d73 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/de/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/de/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/de/panel_side_tray_tab_caption.xml
index 652fb7c836..652fb7c836 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/de/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/de/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/de/panel_sidetray_home_tab.xml
index cf3080a4f9..cf3080a4f9 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/de/panel_sidetray_home_tab.xml
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
index 10827ce6f2..10827ce6f2 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
index 3aeae80388..3aeae80388 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_options.xml b/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
index e1d8a5dc6d..e1d8a5dc6d 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
index c9afe86d7f..c9afe86d7f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
index 8d1c52dea8..8d1c52dea8 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/de/panel_sound_devices.xml b/indra/newview/skins/default/xui/de/panel_sound_devices.xml
index b739b6197f..b739b6197f 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/de/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/de/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/de/panel_stand_stop_flying.xml
index be21429007..be21429007 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/de/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml
index 14ace0ac3a..14ace0ac3a 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/de/panel_sys_well_item.xml b/indra/newview/skins/default/xui/de/panel_sys_well_item.xml
index 504f1727e2..504f1727e2 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_sys_well_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_sys_well_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history.xml b/indra/newview/skins/default/xui/de/panel_teleport_history.xml
index 4d721f2af6..4d721f2af6 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/de/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
index 4b57aa69b6..4b57aa69b6 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/de/panel_voice_effect.xml b/indra/newview/skins/default/xui/de/panel_voice_effect.xml
index 533deb8597..533deb8597 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/de/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/de/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/de/panel_volume_pulldown.xml
index 3d43200e48..3d43200e48 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/de/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/de/panel_world_map.xml b/indra/newview/skins/default/xui/de/panel_world_map.xml
index 35fe3d3ffc..35fe3d3ffc 100644..100755
--- a/indra/newview/skins/default/xui/de/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/de/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml
index 5d9dcacd51..5d9dcacd51 100644..100755
--- a/indra/newview/skins/default/xui/de/role_actions.xml
+++ b/indra/newview/skins/default/xui/de/role_actions.xml
diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
index 7fb9b34e0a..7fb9b34e0a 100644..100755
--- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index 18aad64f96..18aad64f96 100644..100755
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
index 1b67eaf03b..1b67eaf03b 100644..100755
--- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
index 4c8d77d336..29239033fe 100644..100755
--- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Objekt kaufen" name="Buyobject"/>
<combo_box.item label="Objekt bezahlen" name="Payobject"/>
<combo_box.item label="Öffnen" name="Open"/>
+ <combo_box.item label="Zoomen" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 79cb73ecf9..e142cb8029 100644..100755
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -137,7 +137,7 @@
Beenden
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=de-DE&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
Mit dem von Ihnen verwendeten Viewer ist der Zugriff auf Second Life nicht mehr möglich. Laden Sie von den folgenden Seite einen neuen Viewer herunter:
@@ -622,8 +622,8 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="AvatarAway">
Abwesend
</string>
- <string name="AvatarBusy">
- Beschäftigt
+ <string name="AvatarDoNotDisturb">
+ Nicht stören
</string>
<string name="AvatarMuted">
Ignoriert
@@ -859,6 +859,12 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="ST_NO_JOINT">
HAUPTVERZEICHNIS oder VERBINDUNG nicht gefunden.
</string>
+ <string name="NearbyChatTitle">
+ Chat in der Nähe
+ </string>
+ <string name="NearbyChatLabel">
+ (Chat in der Nähe)
+ </string>
<string name="whisper">
flüstert:
</string>
@@ -922,12 +928,15 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="ControlYourCamera">
Kamerasteuerung
</string>
- <string name="TeleportYourAgent">
- Sie teleportieren
- </string>
<string name="NotConnected">
Nicht verbunden
</string>
+ <string name="AgentNameSubst">
+ (Sie)
+ </string>
+ <string name="TeleportYourAgent">
+ Sie teleportieren
+ </string>
<string name="SIM_ACCESS_PG">
Generell
</string>
@@ -1009,18 +1018,6 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="dictionary_files">
Wörterbücher
</string>
- <string name="AvatarSetNotAway">
- Nicht abwesend
- </string>
- <string name="AvatarSetAway">
- Abwesend
- </string>
- <string name="AvatarSetNotBusy">
- Nicht beschäftigt
- </string>
- <string name="AvatarSetBusy">
- Beschäftigt
- </string>
<string name="shape">
Form
</string>
@@ -1989,8 +1986,8 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="PanelContentsNewScript">
Neues Skript
</string>
- <string name="BusyModeResponseDefault">
- Der Einwohner/Die Einwohnerin ist „beschäftigt”, d.h. er/sie möchte im Moment nicht gestört werden. Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden.
+ <string name="DoNotDisturbModeResponseDefault">
+ Dieser Einwohner hat den Nicht-stören-Modus aktiviert und wird Ihre Nachricht später sehen.
</string>
<string name="MuteByName">
(Nach Namen)
@@ -2103,9 +2100,6 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Inhalte
- </string>
<string name="AcquiredItems">
Erworbene Artikel
</string>
@@ -3877,7 +3871,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Generelle Region
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Avatare sichtbar; Chat außerhalb dieser Parzelle gestattet
+ Avatare in dieser Parzelle können von Avataren außerhalb dieser Parzelle weder gesehen noch gehört werden
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Bewegliche Objekte verhalten sich in dieser Region u. U. erst dann korrekt, wenn die Region neu geformt wird.
@@ -3954,6 +3948,12 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="IM_unblock_only_groups_friends">
Wenn Sie diese Meldung sehen, müssen Sie unter „Einstellungen“ &gt; „Privatsphäre“ die Option „Nur IMs und Anrufe von Freunden oder Gruppen durchstellen“ deaktivieren.
</string>
+ <string name="OnlineStatus">
+ Online
+ </string>
+ <string name="OfflineStatus">
+ Offline
+ </string>
<string name="answered_call">
Ihr Anruf wurde entgegengenommen
</string>
@@ -3963,6 +3963,9 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="you_joined_call">
Sie sind dem Gespräch beigetreten
</string>
+ <string name="you_auto_rejected_call-im">
+ Sie haben den Voice-Anruf automatisch abgelehnt, während der Nicht-stören-Modus aktiviert war.
+ </string>
<string name="name_started_call">
[NAME] hat einen Voice-Anruf begonnen
</string>
@@ -3979,7 +3982,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Wird verbunden...
</string>
<string name="conference-title">
- Ad-hoc-Konferenz
+ Chat mit mehreren Personen
</string>
<string name="conference-title-incoming">
Konferenz mit [AGENT_NAME]
@@ -4859,6 +4862,9 @@ Setzen Sie den Editorpfad in Anführungszeichen
<string name="Command_Chat_Label">
Chat
</string>
+ <string name="Command_Conversations_Label">
+ Unterhaltungen
+ </string>
<string name="Command_Compass_Label">
Kompass
</string>
@@ -4934,6 +4940,9 @@ Setzen Sie den Editorpfad in Anführungszeichen
<string name="Command_Chat_Tooltip">
Mit Leuten in der Nähe chatten
</string>
+ <string name="Command_Conversations_Tooltip">
+ Mit allen unterhalten
+ </string>
<string name="Command_Compass_Tooltip">
Kompass
</string>
@@ -5063,4 +5072,13 @@ Setzen Sie den Editorpfad in Anführungszeichen
<string name="UserDictionary">
[Benutzer]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ Unterhaltungen werden nicht protokolliert. Um ein Protokoll zu starten, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ &gt; „Chat“.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Es werden keine Unterhaltungen mehr protokolliert. Um weiterhin ein Protokoll zu führen, wählen Sie „Speichern: nur Protokoll“ oder „Speichern: Protokoll und Transkripte“ unter „Einstellungen“ &gt; „Chat“.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Keine protokollierten Unterhaltungen verfügbar. Hier erscheint ein Protokolleintrag, wenn Sie eine Person kontaktieren oder von einer Person kontaktiert werden.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/de/teleport_strings.xml b/indra/newview/skins/default/xui/de/teleport_strings.xml
index 8062633df6..8062633df6 100644..100755
--- a/indra/newview/skins/default/xui/de/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/de/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/de/xui_version.xml b/indra/newview/skins/default/xui/de/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/de/xui_version.xml
+++ b/indra/newview/skins/default/xui/de/xui_version.xml
diff --git a/indra/newview/skins/default/xui/en/accordion_drag.xml b/indra/newview/skins/default/xui/en/accordion_drag.xml
index e8a705e744..e8a705e744 100644..100755
--- a/indra/newview/skins/default/xui/en/accordion_drag.xml
+++ b/indra/newview/skins/default/xui/en/accordion_drag.xml
diff --git a/indra/newview/skins/default/xui/en/accordion_parent.xml b/indra/newview/skins/default/xui/en/accordion_parent.xml
index e17a0dd351..e17a0dd351 100644..100755
--- a/indra/newview/skins/default/xui/en/accordion_parent.xml
+++ b/indra/newview/skins/default/xui/en/accordion_parent.xml
diff --git a/indra/newview/skins/default/xui/en/alert_button.xml b/indra/newview/skins/default/xui/en/alert_button.xml
index a60e9afab1..a60e9afab1 100644..100755
--- a/indra/newview/skins/default/xui/en/alert_button.xml
+++ b/indra/newview/skins/default/xui/en/alert_button.xml
diff --git a/indra/newview/skins/default/xui/en/alert_check_box.xml b/indra/newview/skins/default/xui/en/alert_check_box.xml
index 5535a5dc2a..5535a5dc2a 100644..100755
--- a/indra/newview/skins/default/xui/en/alert_check_box.xml
+++ b/indra/newview/skins/default/xui/en/alert_check_box.xml
diff --git a/indra/newview/skins/default/xui/en/alert_icon.xml b/indra/newview/skins/default/xui/en/alert_icon.xml
index b0886fce06..b0886fce06 100644..100755
--- a/indra/newview/skins/default/xui/en/alert_icon.xml
+++ b/indra/newview/skins/default/xui/en/alert_icon.xml
diff --git a/indra/newview/skins/default/xui/en/alert_line_editor.xml b/indra/newview/skins/default/xui/en/alert_line_editor.xml
index 54dbc698c8..54dbc698c8 100644..100755
--- a/indra/newview/skins/default/xui/en/alert_line_editor.xml
+++ b/indra/newview/skins/default/xui/en/alert_line_editor.xml
diff --git a/indra/newview/skins/default/xui/en/favorites_bar_button.xml b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
index e7dd62eb64..e7dd62eb64 100644..100755
--- a/indra/newview/skins/default/xui/en/favorites_bar_button.xml
+++ b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml
index d11373ce1d..d11373ce1d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/en/floater_aaa.xml
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index 63eb87f27a..63eb87f27a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 793a6e6fa1..793a6e6fa1 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/en/floater_activeim.xml b/indra/newview/skins/default/xui/en/floater_activeim.xml
index b79c5d9a19..b79c5d9a19 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/en/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/en/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_anim_preview.xml
index b5538a511c..b5538a511c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_bvh_preview.xml
index cb6b2f6ebc..cb6b2f6ebc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_auction.xml b/indra/newview/skins/default/xui/en/floater_auction.xml
index 9c6d114c4c..9c6d114c4c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_auction.xml
+++ b/indra/newview/skins/default/xui/en/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/en/floater_autoreplace.xml b/indra/newview/skins/default/xui/en/floater_autoreplace.xml
index 0bfefc8abe..0bfefc8abe 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/en/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml
index cd5cca02bd..cd5cca02bd 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
index 1a55dc2e2c..1a55dc2e2c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_textures.xml b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml
index bac3ea86f1..bac3ea86f1 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/en/floater_beacons.xml b/indra/newview/skins/default/xui/en/floater_beacons.xml
index 3d29356b22..3d29356b22 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/en/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/en/floater_build_options.xml b/indra/newview/skins/default/xui/en/floater_build_options.xml
index 38428b36fc..38428b36fc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
index 4e0cfb0cd4..4e0cfb0cd4 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/en/floater_bumps.xml b/indra/newview/skins/default/xui/en/floater_bumps.xml
index 1f2fe62b3c..1f2fe62b3c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/en/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/en/floater_buy_contents.xml b/indra/newview/skins/default/xui/en/floater_buy_contents.xml
index ac96a70805..ac96a70805 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
index 553c5d51d0..553c5d51d0 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml
index 0637eedfb2..0637eedfb2 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml
index 22cc058e46..22cc058e46 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/en/floater_buy_object.xml b/indra/newview/skins/default/xui/en/floater_buy_object.xml
index 5fdd4aa49d..5fdd4aa49d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index 521389d7b3..521389d7b3 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/en/floater_choose_group.xml b/indra/newview/skins/default/xui/en/floater_choose_group.xml
index 2cf6e682fd..2cf6e682fd 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/en/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml
index e06d10606a..e06d10606a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/en/floater_conversation_log.xml b/indra/newview/skins/default/xui/en/floater_conversation_log.xml
index 19a4cbc119..19a4cbc119 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_conversation_log.xml
+++ b/indra/newview/skins/default/xui/en/floater_conversation_log.xml
diff --git a/indra/newview/skins/default/xui/en/floater_conversation_preview.xml b/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
index 764b9d8385..764b9d8385 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_critical.xml b/indra/newview/skins/default/xui/en/floater_critical.xml
index 143bcb4430..143bcb4430 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_critical.xml
+++ b/indra/newview/skins/default/xui/en/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/en/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/en/floater_delete_env_preset.xml
index b5de4166f6..b5de4166f6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/en/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/en/floater_destinations.xml b/indra/newview/skins/default/xui/en/floater_destinations.xml
index 94ebaa9cb2..94ebaa9cb2 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/en/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/en/floater_display_name.xml b/indra/newview/skins/default/xui/en/floater_display_name.xml
index 9a9fd32a77..9a9fd32a77 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/en/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/en/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/en/floater_edit_day_cycle.xml
index d9a3ad0c4b..d9a3ad0c4b 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/en/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/en/floater_edit_sky_preset.xml
index 56233d91ee..56233d91ee 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/en/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/en/floater_edit_water_preset.xml
index 905983e7fa..905983e7fa 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/en/floater_environment_settings.xml b/indra/newview/skins/default/xui/en/floater_environment_settings.xml
index 1b1cafaca6..1b1cafaca6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/en/floater_event.xml b/indra/newview/skins/default/xui/en/floater_event.xml
index cf61b7d24d..cf61b7d24d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_event.xml
+++ b/indra/newview/skins/default/xui/en/floater_event.xml
diff --git a/indra/newview/skins/default/xui/en/floater_fast_timers.xml b/indra/newview/skins/default/xui/en/floater_fast_timers.xml
index 77adb5524e..77adb5524e 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/en/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/en/floater_font_test.xml b/indra/newview/skins/default/xui/en/floater_font_test.xml
index 3ab19ec9d9..3ab19ec9d9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/en/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/en/floater_gesture.xml b/indra/newview/skins/default/xui/en/floater_gesture.xml
index 200e9b9537..200e9b9537 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml
index e7131e20cb..e7131e20cb 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
index 9deb0d2030..9deb0d2030 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/en/floater_help_browser.xml b/indra/newview/skins/default/xui/en/floater_help_browser.xml
index c06cb63f8a..c06cb63f8a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/en/floater_how_to.xml b/indra/newview/skins/default/xui/en/floater_how_to.xml
index 8c0077a8cc..8c0077a8cc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/en/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/en/floater_hud.xml b/indra/newview/skins/default/xui/en/floater_hud.xml
index e2d860881a..e2d860881a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_hud.xml
+++ b/indra/newview/skins/default/xui/en/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml
index 65f623a47e..65f623a47e 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_container.xml
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 d8b085063f..2152a9f6e9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -42,58 +42,55 @@
<floater.string
name="multiple_participants_added"
value="[NAME] were invited to the conversation."/>
- <floater.string
+ <floater.string
name="tooltip_to_separate_window"
value="Move this conversation to a separate window"/>
- <floater.string
+ <floater.string
name="tooltip_to_main_window"
value="Move this conversation back to main window"/>
- <floater.string
+ <floater.string
name="start_call_button_tooltip"
value="Open voice connection"/>
- <floater.string
+ <floater.string
name="end_call_button_tooltip"
value="Close voice connection"/>
- <floater.string
+ <floater.string
name="expcol_button_not_tearoff_tooltip"
value="Collapse this pane"/>
- <floater.string
+ <floater.string
name="expcol_button_tearoff_and_expanded_tooltip"
value="Collapse participant list"/>
- <floater.string
+ <floater.string
name="expcol_button_tearoff_and_collapsed_tooltip"
value="Expand participant list"/>
<view
- follows="all"
- layout="topleft"
- name="contents_view"
- top="0"
- left="0"
- height="355"
- width="394">
- <layout_stack
- animate="false"
- default_tab_group="2"
- follows="all"
- height="355"
- width="394"
- layout="topleft"
- orientation="vertical"
- name="main_stack"
- tab_group="1"
- top="0"
- left="0">
-
- <layout_panel
- follows="left|top|right"
- layout="topleft"
- name="toolbar_panel"
+ follows="all"
+ layout="topleft"
+ name="contents_view"
+ top="0"
+ left="0"
+ right="-1"
+ bottom="-3">
+ <layout_stack
+ animate="false"
+ default_tab_group="2"
+ follows="all"
+ right="-5"
+ bottom="-1"
top="0"
- left="0"
- height="35"
- min_height="35"
- width="394">
- <menu_button
+ left="5"
+ border_size="0"
+ layout="topleft"
+ orientation="vertical"
+ name="main_stack"
+ tab_group="1">
+ <layout_panel
+ auto_resize="false"
+ name="toolbar_panel"
+ height="35"
+ right="-1"
+ left="1">
+ <menu_button
menu_filename="menu_im_session_showmodes.xml"
follows="top|left"
height="25"
@@ -107,22 +104,22 @@
tool_tip="View/sort options"
top="5"
width="31" />
- <menu_button
- menu_filename="menu_im_conversation.xml"
- follows="top|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="OptionsMenu_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- top="5"
- left_pad="2"
- name="gear_btn"
- visible="false"
- tool_tip="Actions on selected person"
- width="31"/>
- <button
+ <menu_button
+ menu_filename="menu_im_conversation.xml"
+ follows="top|left"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_overlay="OptionsMenu_Off"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ layout="topleft"
+ top="5"
+ left_pad="2"
+ name="gear_btn"
+ visible="false"
+ tool_tip="Actions on selected person"
+ width="31"/>
+ <button
enabled="false"
follows="top|left"
height="25"
@@ -136,7 +133,7 @@
name="add_btn"
tool_tip="Add someone to this conversation"
width="31"/>
- <button
+ <button
follows="top|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
@@ -149,19 +146,19 @@
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
+ <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"
image_hover_unselected="Toolbar_Middle_Over"
@@ -170,232 +167,170 @@
image_unselected="Toolbar_Middle_Off"
layout="topleft"
top="5"
- left="292"
+ right="-67"
name="close_btn"
tool_tip="End this conversation"
width="31" />
- <button
+ <button
follows="right|top"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="Conv_toolbar_collapse"
image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
+ image_unselected="Toolbar_Middle_Off"
layout="topleft"
top="5"
left_pad="2"
name="expand_collapse_btn"
tool_tip="Collapse/Expand this pane"
width="31" />
- <button
+ <button
follows="right|top"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="Conv_toolbar_arrow_ne"
image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
+ image_unselected="Toolbar_Middle_Off"
layout="topleft"
- top="5"
left_pad="2"
name="tear_off_btn"
+ top="5"
width="31" />
- </layout_panel>
- <layout_panel
- name="body_panel"
- follows="all"
- width="394"
- height="235"
- user_resize="false"
- auto_resize="true">
- <layout_stack
- animate="true"
- default_tab_group="2"
- follows="all"
- height="275"
- width="394"
- layout="topleft"
- orientation="horizontal"
- name="im_panels"
- tab_group="1"
- top_pad="0"
- left="0">
- <layout_panel
- name="speakers_list_panel"
- follows="all"
- expanded_min_dim="115"
- min_dim="0"
- width="150"
- height="275"
- user_resize="true"
- auto_resize="false">
- </layout_panel>
- <layout_panel
- default_tab_group="3"
- left="0"
- tab_group="2"
- follows="all"
- top="0"
- height="275"
- width="244"
- layout="topleft"
- user_resize="true"
- auto_resize="true"
- visible="true"
- name="right_part_holder"
- min_width="221">
- <panel
- name="trnsAndChat_panel"
- follows="all"
- layout="topleft"
- visible="true"
- height="240"
- width="244">
- <layout_stack
- animate="true"
- default_tab_group="2"
- follows="all"
- height="240"
- width="244"
- layout="topleft"
- visible="true"
- orientation="vertical"
- name="translate_and_chat_stack"
- tab_group="1"
- left_pad="0"
- top="0"
- left="0">
- <layout_panel
- auto_resize="false"
- user_resize="false"
- height="26"
- layout="topleft"
- left_delta="0"
- name="translate_chat_checkbox_lp"
- top_delta="0"
- visible="true"
- width="210">
- <check_box
- top="10"
- control_name="TranslateChat"
- enabled="true"
- height="16"
- label="Translate chat"
- layout="topleft"
- left="5"
- name="translate_chat_checkbox"
- width="230" />
</layout_panel>
<layout_panel
- width="210"
- layout="topleft"
- follows="all"
- left_delta="0"
- top_delta="0"
- bottom="0"
- visible="true"
- user_resize="false"
- auto_resize="true"
- name="chat_holder">
- <chat_history
- font="SansSerifSmall"
- follows="all"
- visible="true"
- name="chat_history"
- parse_highlights="true"
- parse_urls="true"
- layout="topleft"
- right="-5"
- left="5"
- top="0"
- bottom="1">
- </chat_history>
+ name="body_panel"
+ top="1"
+ bottom="-1">
+ <layout_stack
+ default_tab_group="2"
+ follows="all"
+ orientation="horizontal"
+ name="im_panels"
+ tab_group="1"
+ top="0"
+ right="-1"
+ bottom="-1"
+ left="0">
+ <layout_panel
+ name="speakers_list_panel"
+ expanded_min_dim="115"
+ min_dim="0"
+ width="150"
+ user_resize="true"
+ auto_resize="false"
+ bottom="-1" />
+ <layout_panel
+ default_tab_group="3"
+ tab_group="2"
+ name="right_part_holder"
+ min_width="221"
+ bottom="-1">
+ <layout_stack
+ animate="true"
+ default_tab_group="2"
+ follows="all"
+ orientation="vertical"
+ name="translate_and_chat_stack"
+ tab_group="1"
+ top="0"
+ left="0"
+ right="-1"
+ bottom="-1">
+ <layout_panel
+ auto_resize="false"
+ height="26"
+ name="translate_chat_checkbox_lp">
+ <check_box
+ top="10"
+ control_name="TranslateChat"
+ enabled="true"
+ height="16"
+ label="Translate chat"
+ left="5"
+ name="translate_chat_checkbox"
+ width="230" />
+ </layout_panel>
+ <layout_panel
+ name="chat_holder">
+ <chat_history
+ font="SansSerifSmall"
+ follows="all"
+ name="chat_history"
+ parse_highlights="true"
+ parse_urls="true"
+ right="-1"
+ left="5"
+ top="0"
+ bottom="-1" />
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
</layout_panel>
- </layout_stack>
- </panel>
- </layout_panel>
- </layout_stack>
- </layout_panel>
- <layout_panel
- height="35"
- layout="topleft"
- follows="left|right|bottom"
- left_delta="0"
- right="0"
+ <layout_panel
top_delta="0"
- bottom="0"
- visible="true"
- user_resize="false"
+ top="0"
+ height="26"
+ bottom="-1"
auto_resize="false"
name="chat_layout_panel">
- <layout_stack
- animate="true"
- default_tab_group="2"
- follows="all"
- height="35"
- right="0"
- layout="topleft"
- orientation="horizontal"
- name="input_panels"
- top_pad="0"
- left="0">
- <layout_panel
- height="35"
- layout="topleft"
- follows="left|right|bottom"
- left_delta="0"
- top_delta="0"
- bottom="0"
- visible="true"
- user_resize="false"
- auto_resize="true"
- name="input_editor_layout_panel">
- <chat_editor
- expand_lines_count="5"
- follows="left|right|bottom"
- font="SansSerifSmall"
- visible="true"
- height="20"
- is_expandable="true"
- label="To"
- text_tentative_color="TextFgTentativeColor"
- layout="topleft"
- name="chat_editor"
- max_length="1023"
- spellcheck="true"
- tab_group="3"
- width="160"
- top="6"
- left="5"
- right="-5"
- wrap="true">
- </chat_editor>
+ <layout_stack
+ animate="false"
+ default_tab_group="2"
+ follows="all"
+ orientation="horizontal"
+ name="input_panels"
+ top="0"
+ bottom="-2"
+ left="0"
+ right="-1">
+ <layout_panel
+ name="input_editor_layout_panel"
+ auto_resize="true"
+ user_resize="false"
+ top="0"
+ bottom="-1">
+ <chat_editor
+ layout="topleft"
+ expand_lines_count="5"
+ follows="left|right|bottom"
+ font="SansSerifSmall"
+ height="20"
+ is_expandable="true"
+ text_tentative_color="TextFgTentativeColor"
+ name="chat_editor"
+ max_length="1023"
+ spellcheck="true"
+ tab_group="3"
+ top="1"
+ bottom="-2"
+ left="4"
+ right="-4"
+ wrap="true" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ user_resize="false"
+ name="input_button_layout_panel"
+ width="30"
+ top="0"
+ bottom="-1">
+ <button
+ layout="topleft"
+ left="1"
+ right="-1"
+ top="1"
+ height="22"
+ follows="left|right|top"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_overlay="Conv_expand_one_line"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ name="minz_btn"
+ tool_tip="Shows/hides message panel" />
+ </layout_panel>
+ </layout_stack>
</layout_panel>
- <layout_panel
- height="35"
- layout="topleft"
- follows="left|right|bottom"
- left_delta="0"
- top_delta="0"
- bottom="0"
- width="35"
- visible="true"
- user_resize="false"
- auto_resize="false"
- name="input_button_layout_panel">
- <button
- follows="left|right|bottom"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="Conv_expand_one_line"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- name="minz_btn"
- tool_tip="Shows/hides message panel"
- width="28"/>
- </layout_panel>
- </layout_stack>
- </layout_panel>
- </layout_stack>
+ </layout_stack>
</view>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_image_preview.xml b/indra/newview/skins/default/xui/en/floater_image_preview.xml
index 44d2c14cc8..44d2c14cc8 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_import_collada.xml b/indra/newview/skins/default/xui/en/floater_import_collada.xml
index 441ab6a2de..441ab6a2de 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/en/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
index a7864381a9..a7864381a9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
diff --git a/indra/newview/skins/default/xui/en/floater_inspect.xml b/indra/newview/skins/default/xui/en/floater_inspect.xml
index bea35e5fc1..bea35e5fc1 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/en/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
index adef066aef..adef066aef 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
index c86ed595a7..c86ed595a7 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/en/floater_joystick.xml b/indra/newview/skins/default/xui/en/floater_joystick.xml
index 59f6a9434c..59f6a9434c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/en/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/en/floater_lagmeter.xml b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
index b24c745bdd..b24c745bdd 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/en/floater_land_holdings.xml b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
index 390ec9ab7d..390ec9ab7d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml
index 5cd7cd196d..5cd7cd196d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/en/floater_lsl_guide.xml b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml
index e9676777f4..e9676777f4 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index b8893e11d9..b8893e11d9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml
index ce788654aa..ce788654aa 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/en/floater_media_settings.xml b/indra/newview/skins/default/xui/en/floater_media_settings.xml
index 0e03c0ab6d..0e03c0ab6d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/en/floater_mem_leaking.xml b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml
index fb7d09a21e..fb7d09a21e 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml
index b98f280b56..b98f280b56 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml
index 5e92a12251..5e92a12251 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 5e84283ab0..5e84283ab0 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_mute_object.xml b/indra/newview/skins/default/xui/en/floater_mute_object.xml
index 22b0a1783f..22b0a1783f 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/en/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/en/floater_my_appearance.xml b/indra/newview/skins/default/xui/en/floater_my_appearance.xml
index fdea7a821a..fdea7a821a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/en/floater_my_inventory.xml b/indra/newview/skins/default/xui/en/floater_my_inventory.xml
index 178987962b..178987962b 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/floater_my_web_profile.xml b/indra/newview/skins/default/xui/en/floater_my_web_profile.xml
index df46fc198f..df46fc198f 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_my_web_profile.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_web_profile.xml
diff --git a/indra/newview/skins/default/xui/en/floater_notification.xml b/indra/newview/skins/default/xui/en/floater_notification.xml
index 1f9ddecac2..1f9ddecac2 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_notification.xml
+++ b/indra/newview/skins/default/xui/en/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/en/floater_notifications_console.xml b/indra/newview/skins/default/xui/en/floater_notifications_console.xml
index e243ccd2f9..e243ccd2f9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/en/floater_object_weights.xml b/indra/newview/skins/default/xui/en/floater_object_weights.xml
index eb283a1043..eb283a1043 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/en/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/en/floater_openobject.xml b/indra/newview/skins/default/xui/en/floater_openobject.xml
index f526970ad0..f526970ad0 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/en/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
index bbe280582b..bbe280582b 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
index ffbb6aa28b..ffbb6aa28b 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_characters.xml
index 46ee113b69..46ee113b69 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/en/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
index 79f2027c31..2629313069 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
@@ -152,7 +152,7 @@
</text>
<check_box
height="19"
- label="Test"
+ label="World"
layout="topleft"
name="show_world"
top_pad="4"
diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
index 4a457fb929..4a457fb929 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/en/floater_pay.xml b/indra/newview/skins/default/xui/en/floater_pay.xml
index 41a7134b1d..41a7134b1d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_pay.xml
+++ b/indra/newview/skins/default/xui/en/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/en/floater_pay_object.xml b/indra/newview/skins/default/xui/en/floater_pay_object.xml
index d3a35c2051..d3a35c2051 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/en/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/en/floater_people.xml b/indra/newview/skins/default/xui/en/floater_people.xml
index 701233ba4a..701233ba4a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_people.xml
+++ b/indra/newview/skins/default/xui/en/floater_people.xml
diff --git a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
index ff454e3ebf..ff454e3ebf 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/en/floater_picks.xml b/indra/newview/skins/default/xui/en/floater_picks.xml
index 984894b016..984894b016 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_picks.xml
+++ b/indra/newview/skins/default/xui/en/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/en/floater_places.xml b/indra/newview/skins/default/xui/en/floater_places.xml
index b241e265a9..b241e265a9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_places.xml
+++ b/indra/newview/skins/default/xui/en/floater_places.xml
diff --git a/indra/newview/skins/default/xui/en/floater_post_process.xml b/indra/newview/skins/default/xui/en/floater_post_process.xml
index 05943a10d3..05943a10d3 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/en/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index bd6faf4ed8..bd6faf4ed8 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
index 93bfe53aae..93bfe53aae 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preview_animation.xml b/indra/newview/skins/default/xui/en/floater_preview_animation.xml
index 3ea5f54f2c..3ea5f54f2c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
index 8baa0a56f7..8baa0a56f7 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
index 2e1c8ce670..2e1c8ce670 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preview_sound.xml b/indra/newview/skins/default/xui/en/floater_preview_sound.xml
index 83a1f5a96f..83a1f5a96f 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
index 137e278ddc..137e278ddc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/en/floater_price_for_listing.xml b/indra/newview/skins/default/xui/en/floater_price_for_listing.xml
index 6312366b86..6312366b86 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/en/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml
index 322e34272c..322e34272c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
index 7c7ee2df4c..7c7ee2df4c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/en/floater_region_info.xml b/indra/newview/skins/default/xui/en/floater_region_info.xml
index 3b58cd08f6..3b58cd08f6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/en/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml
index 9561f67941..9561f67941 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script.xml b/indra/newview/skins/default/xui/en/floater_script.xml
index bd4edb81c8..bd4edb81c8 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script.xml
+++ b/indra/newview/skins/default/xui/en/floater_script.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_debug.xml b/indra/newview/skins/default/xui/en/floater_script_debug.xml
index 53d4925214..53d4925214 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml
index b5dd2f97b9..b5dd2f97b9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_limits.xml b/indra/newview/skins/default/xui/en/floater_script_limits.xml
index 6b36cdfcc5..6b36cdfcc5 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_preview.xml b/indra/newview/skins/default/xui/en/floater_script_preview.xml
index 91a9e67e4c..91a9e67e4c 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_queue.xml b/indra/newview/skins/default/xui/en/floater_script_queue.xml
index f4aca7bb3d..f4aca7bb3d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/en/floater_script_search.xml b/indra/newview/skins/default/xui/en/floater_script_search.xml
index ade0156bc7..ade0156bc7 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml
index c3e7028dc5..c3e7028dc5 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_search.xml
diff --git a/indra/newview/skins/default/xui/en/floater_select_key.xml b/indra/newview/skins/default/xui/en/floater_select_key.xml
index 4e89df5a73..4e89df5a73 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/en/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/en/floater_sell_land.xml b/indra/newview/skins/default/xui/en/floater_sell_land.xml
index 52de9ddd47..52de9ddd47 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/en/floater_settings_debug.xml b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
index 3ed2bd7206..3ed2bd7206 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml b/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
index 9f14e9ae0a..9f14e9ae0a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
+++ b/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index 49d64767cc..49d64767cc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/en/floater_sound_devices.xml b/indra/newview/skins/default/xui/en/floater_sound_devices.xml
index dec0e9b6c6..dec0e9b6c6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/en/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/en/floater_sound_preview.xml b/indra/newview/skins/default/xui/en/floater_sound_preview.xml
index af791466b6..af791466b6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_spellcheck.xml b/indra/newview/skins/default/xui/en/floater_spellcheck.xml
index 76a350dd29..76a350dd29 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/en/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/en/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/en/floater_spellcheck_import.xml
index b54090015d..b54090015d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/en/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index f9eb16d224..f9eb16d224 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index ecedb27438..ecedb27438 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/en/floater_telehub.xml b/indra/newview/skins/default/xui/en/floater_telehub.xml
index 547613fb67..547613fb67 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/en/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_button.xml b/indra/newview/skins/default/xui/en/floater_test_button.xml
index 9bc05107a2..9bc05107a2 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_button.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_button.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
index 95aaadfcf3..95aaadfcf3 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_combobox.xml b/indra/newview/skins/default/xui/en/floater_test_combobox.xml
index 45e2e34da7..45e2e34da7 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_combobox.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_combobox.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
index 209285da2e..209285da2e 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_layout.xml b/indra/newview/skins/default/xui/en/floater_test_layout.xml
index 94f7e0b798..94f7e0b798 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_layout.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_layout.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/en/floater_test_layout_stacks.xml
index a04050e7eb..a04050e7eb 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_line_editor.xml b/indra/newview/skins/default/xui/en/floater_test_line_editor.xml
index 2894ad2a32..2894ad2a32 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_line_editor.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_line_editor.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_list_view.xml b/indra/newview/skins/default/xui/en/floater_test_list_view.xml
index 32ccc31dfd..32ccc31dfd 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_list_view.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_list_view.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml b/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml
index f4a50ecc96..f4a50ecc96 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml
index db14ecae83..db14ecae83 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_slider.xml b/indra/newview/skins/default/xui/en/floater_test_slider.xml
index 20bd555a03..20bd555a03 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_slider.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_slider.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_spinner.xml b/indra/newview/skins/default/xui/en/floater_test_spinner.xml
index acd49aa492..acd49aa492 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_spinner.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_spinner.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
index e1fefc3631..e1fefc3631 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/en/floater_test_text_vertical_aligment.xml
index d11373ce1d..d11373ce1d 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_textbox.xml b/indra/newview/skins/default/xui/en/floater_test_textbox.xml
index 1d31fbd6dc..1d31fbd6dc 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_textbox.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_textbox.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_toolbar.xml b/indra/newview/skins/default/xui/en/floater_test_toolbar.xml
index 067c1fed82..067c1fed82 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_toolbar.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_toolbar.xml
diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
index 10854f5a49..10854f5a49 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
index 6021ba0a5a..6021ba0a5a 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
diff --git a/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml
index 1ea256b8b3..1ea256b8b3 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/en/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index 436e9f8fed..436e9f8fed 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/en/floater_top_objects.xml b/indra/newview/skins/default/xui/en/floater_top_objects.xml
index 0b71177345..0b71177345 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/en/floater_tos.xml b/indra/newview/skins/default/xui/en/floater_tos.xml
index af1617eb39..af1617eb39 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_tos.xml
+++ b/indra/newview/skins/default/xui/en/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml
index d8211c24a7..d8211c24a7 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/en/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/en/floater_translation_settings.xml b/indra/newview/skins/default/xui/en/floater_translation_settings.xml
index a212ce7889..a212ce7889 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/en/floater_ui_preview.xml b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
index eb01294831..eb01294831 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_ui_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_url_entry.xml b/indra/newview/skins/default/xui/en/floater_url_entry.xml
index 29fb29fabf..29fb29fabf 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/en/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
index 5c71fd3bc6..5c71fd3bc6 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
diff --git a/indra/newview/skins/default/xui/en/floater_voice_effect.xml b/indra/newview/skins/default/xui/en/floater_voice_effect.xml
index 146c3d7e30..146c3d7e30 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/en/floater_voice_volume.xml b/indra/newview/skins/default/xui/en/floater_voice_volume.xml
index 9346295d5b..9346295d5b 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_voice_volume.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_volume.xml
diff --git a/indra/newview/skins/default/xui/en/floater_web_content.xml b/indra/newview/skins/default/xui/en/floater_web_content.xml
index cea10adca8..cea10adca8 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/en/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/en/floater_web_profile.xml b/indra/newview/skins/default/xui/en/floater_web_profile.xml
index d0225f78a9..d0225f78a9 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_web_profile.xml
+++ b/indra/newview/skins/default/xui/en/floater_web_profile.xml
diff --git a/indra/newview/skins/default/xui/en/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/en/floater_whitelist_entry.xml
index 897d959b98..897d959b98 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/en/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/en/floater_window_size.xml b/indra/newview/skins/default/xui/en/floater_window_size.xml
index 115fe413f3..115fe413f3 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/en/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
index 83407069d2..83407069d2 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/en/fonts.xml b/indra/newview/skins/default/xui/en/fonts.xml
index ebbb53729d..ebbb53729d 100644..100755
--- a/indra/newview/skins/default/xui/en/fonts.xml
+++ b/indra/newview/skins/default/xui/en/fonts.xml
diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml
index ef4f19cd4c..ef4f19cd4c 100644..100755
--- a/indra/newview/skins/default/xui/en/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/en/inspect_group.xml b/indra/newview/skins/default/xui/en/inspect_group.xml
index 324ff3eabd..324ff3eabd 100644..100755
--- a/indra/newview/skins/default/xui/en/inspect_group.xml
+++ b/indra/newview/skins/default/xui/en/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/en/inspect_object.xml b/indra/newview/skins/default/xui/en/inspect_object.xml
index bfeb8fc470..bfeb8fc470 100644..100755
--- a/indra/newview/skins/default/xui/en/inspect_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/en/inspect_remote_object.xml b/indra/newview/skins/default/xui/en/inspect_remote_object.xml
index e83257d2a0..e83257d2a0 100644..100755
--- a/indra/newview/skins/default/xui/en/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/en/inspect_toast.xml b/indra/newview/skins/default/xui/en/inspect_toast.xml
index 0221397a8c..0221397a8c 100644..100755
--- a/indra/newview/skins/default/xui/en/inspect_toast.xml
+++ b/indra/newview/skins/default/xui/en/inspect_toast.xml
diff --git a/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml b/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
index a7ecc39ed8..a7ecc39ed8 100644..100755
--- a/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
diff --git a/indra/newview/skins/default/xui/en/language_settings.xml b/indra/newview/skins/default/xui/en/language_settings.xml
index 51779e4bfd..51779e4bfd 100644..100755
--- a/indra/newview/skins/default/xui/en/language_settings.xml
+++ b/indra/newview/skins/default/xui/en/language_settings.xml
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index a87027a113..a87027a113 100644..100755
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml
index 5033ea9546..5033ea9546 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
index b46b62ec4d..46ba4bd29d 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
@@ -79,6 +79,14 @@
<menu_item_call.on_visible
function="IsGodCustomerService"/>
</menu_item_call>
+ <menu_item_call
+ label="Dump XML"
+ name="Dump XML">
+ <menu_item_call.on_click
+ function="Advanced.AppearanceToXML" />
+ <menu_item_call.on_visible
+ function="Advanced.EnableAppearanceToXML"/>
+ </menu_item_call>
<menu_item_call
label="Zoom In"
name="Zoom In">
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_self.xml b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
index b8128da358..28e032ce5f 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
@@ -123,6 +123,14 @@ name="Edit Outfit">
<menu_item_call.on_visible
function="IsGodCustomerService"/>
</menu_item_call>
+ <menu_item_call
+ label="Dump XML"
+ name="Dump XML">
+ <menu_item_call.on_click
+ function="Advanced.AppearanceToXML" />
+ <menu_item_call.on_visible
+ function="Advanced.EnableAppearanceToXML"/>
+ </menu_item_call>
<menu_item_separator
layout="topleft" />
<menu_item_call
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
index 50910dff32..50910dff32 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_other.xml b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
index 276b5f106f..e7c2b80da2 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
@@ -79,6 +79,14 @@
<menu_item_call.on_visible
function="IsGodCustomerService"/>
</menu_item_call>
+ <menu_item_call
+ label="Dump XML"
+ name="Dump XML">
+ <menu_item_call.on_click
+ function="Advanced.AppearanceToXML" />
+ <menu_item_call.on_visible
+ function="Advanced.EnableAppearanceToXML"/>
+ </menu_item_call>
<menu_item_call
label="Zoom In"
name="Zoom In">
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_self.xml b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
index d9bdfece38..c1ff026a74 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
@@ -261,4 +261,12 @@
<menu_item_call.on_visible
function="IsGodCustomerService"/>
</menu_item_call>
+ <menu_item_call
+ label="Dump XML"
+ name="Dump XML">
+ <menu_item_call.on_click
+ function="Advanced.AppearanceToXML" />
+ <menu_item_call.on_visible
+ function="Advanced.EnableAppearanceToXML"/>
+ </menu_item_call>
</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_cof_attachment.xml b/indra/newview/skins/default/xui/en/menu_cof_attachment.xml
index c402100fb1..c402100fb1 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/en/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/en/menu_cof_body_part.xml b/indra/newview/skins/default/xui/en/menu_cof_body_part.xml
index f0e8461360..f0e8461360 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/en/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/en/menu_cof_clothing.xml b/indra/newview/skins/default/xui/en/menu_cof_clothing.xml
index 206d49e8c7..206d49e8c7 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/en/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/en/menu_cof_gear.xml b/indra/newview/skins/default/xui/en/menu_cof_gear.xml
index 45cf780557..45cf780557 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_cof_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_conversation.xml b/indra/newview/skins/default/xui/en/menu_conversation.xml
index d8eb2f0ffd..d8eb2f0ffd 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_conversation.xml
+++ b/indra/newview/skins/default/xui/en/menu_conversation.xml
diff --git a/indra/newview/skins/default/xui/en/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/en/menu_conversation_log_gear.xml
index a1a3afbf68..a1a3afbf68 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_conversation_log_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_conversation_log_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml
index ce65b23971..ce65b23971 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_edit.xml b/indra/newview/skins/default/xui/en/menu_edit.xml
index 99061e089a..99061e089a 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_edit.xml
+++ b/indra/newview/skins/default/xui/en/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/en/menu_favorites.xml b/indra/newview/skins/default/xui/en/menu_favorites.xml
index be380e11e5..be380e11e5 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/en/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
index b08d21e8f4..b08d21e8f4 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_group_plus.xml b/indra/newview/skins/default/xui/en/menu_group_plus.xml
index eca9e7f3c9..eca9e7f3c9 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/en/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/en/menu_hide_navbar.xml b/indra/newview/skins/default/xui/en/menu_hide_navbar.xml
index b517fd7957..b517fd7957 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/en/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/en/menu_im_conversation.xml b/indra/newview/skins/default/xui/en/menu_im_conversation.xml
index 43287c6ec3..43287c6ec3 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_im_conversation.xml
+++ b/indra/newview/skins/default/xui/en/menu_im_conversation.xml
diff --git a/indra/newview/skins/default/xui/en/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/en/menu_im_session_showmodes.xml
index b0adca0e0e..b0adca0e0e 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_im_session_showmodes.xml
+++ b/indra/newview/skins/default/xui/en/menu_im_session_showmodes.xml
diff --git a/indra/newview/skins/default/xui/en/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/en/menu_imchiclet_adhoc.xml
index eb5e31b57d..eb5e31b57d 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/en/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/en/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/en/menu_imchiclet_group.xml
index 8cbe62cfb0..8cbe62cfb0 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/en/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml
index 038b8328cb..038b8328cb 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
index 2c420aa1e3..2c420aa1e3 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/en/menu_inv_offer_chiclet.xml
index 45a0a6635b..45a0a6635b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/en/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 512205ba43..512205ba43 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/menu_inventory_add.xml b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
index 29720a680b..29720a680b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
index d2519a5aa4..d2519a5aa4 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/en/menu_land.xml b/indra/newview/skins/default/xui/en/menu_land.xml
index cc6d8ad9c1..cc6d8ad9c1 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_land.xml
+++ b/indra/newview/skins/default/xui/en/menu_land.xml
diff --git a/indra/newview/skins/default/xui/en/menu_landmark.xml b/indra/newview/skins/default/xui/en/menu_landmark.xml
index 93b6db222a..93b6db222a 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/en/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 101e104eab..52c4fb1613 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -180,7 +180,8 @@
name="Set Logging Level"
tear_off="true">
<menu_item_check
- label="Debug">
+ name="Debug"
+ label="Debug">
<menu_item_check.on_check
function="Develop.CheckLoggingLevel"
parameter="0" />
@@ -189,7 +190,8 @@
parameter="0" />
</menu_item_check>
<menu_item_check
- label="Info">
+ name="Info"
+ label="Info">
<menu_item_check.on_check
function="Develop.CheckLoggingLevel"
parameter="1" />
@@ -198,7 +200,8 @@
parameter="1" />
</menu_item_check>
<menu_item_check
- label="Warning">
+ name="Warning"
+ label="Warning">
<menu_item_check.on_check
function="Develop.CheckLoggingLevel"
parameter="2" />
@@ -207,7 +210,8 @@
parameter="2" />
</menu_item_check>
<menu_item_check
- label="Error">
+ name="Error"
+ label="Error">
<menu_item_check.on_check
function="Develop.CheckLoggingLevel"
parameter="3" />
@@ -216,7 +220,8 @@
parameter="3" />
</menu_item_check>
<menu_item_check
- label="None">
+ name="None"
+ label="None">
<menu_item_check.on_check
function="Develop.CheckLoggingLevel"
parameter="4" />
diff --git a/indra/newview/skins/default/xui/en/menu_media_ctrl.xml b/indra/newview/skins/default/xui/en/menu_media_ctrl.xml
index 960da4bd7a..960da4bd7a 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/en/menu_mini_map.xml b/indra/newview/skins/default/xui/en/menu_mini_map.xml
index ea263d05ce..ea263d05ce 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/en/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/en/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/en/menu_model_import_gear_default.xml
index 2650903f88..2650903f88 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/en/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/en/menu_navbar.xml b/indra/newview/skins/default/xui/en/menu_navbar.xml
index b71b866c4b..b71b866c4b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/en/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/en/menu_nearby_chat.xml b/indra/newview/skins/default/xui/en/menu_nearby_chat.xml
index ff89e20ea5..ff89e20ea5 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/en/menu_notification_well_button.xml b/indra/newview/skins/default/xui/en/menu_notification_well_button.xml
index 263ac40f4e..263ac40f4e 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/en/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
index f6004621a6..f6004621a6 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_object.xml
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
diff --git a/indra/newview/skins/default/xui/en/menu_object_icon.xml b/indra/newview/skins/default/xui/en/menu_object_icon.xml
index 2d4f1792c2..2d4f1792c2 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/en/menu_object_icon.xml
diff --git a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
index 3b8ace6308..3b8ace6308 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_outfit_tab.xml b/indra/newview/skins/default/xui/en/menu_outfit_tab.xml
index 8c8bb29baf..8c8bb29baf 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/en/menu_participant_list.xml b/indra/newview/skins/default/xui/en/menu_participant_list.xml
index 2c32d9d303..2c32d9d303 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/en/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/en/menu_participant_view.xml b/indra/newview/skins/default/xui/en/menu_participant_view.xml
index 7ea87ee05c..7ea87ee05c 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_participant_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_participant_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/en/menu_people_blocked_gear.xml
index 63295ea27b..63295ea27b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_blocked_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_blocked_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/en/menu_people_blocked_plus.xml
index 0c7155667e..0c7155667e 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_blocked_plus.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_blocked_plus.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/en/menu_people_blocked_view.xml
index 2efb70ee37..2efb70ee37 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_blocked_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_blocked_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
index dde9432867..dde9432867 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_groups.xml b/indra/newview/skins/default/xui/en/menu_people_groups.xml
index 1e0364b84e..1e0364b84e 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_groups.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_groups_view.xml b/indra/newview/skins/default/xui/en/menu_people_groups_view.xml
index 73f79f1e70..73f79f1e70 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_groups_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_groups_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby.xml b/indra/newview/skins/default/xui/en/menu_people_nearby.xml
index f12226ebeb..f12226ebeb 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml
index 5f973088fd..5f973088fd 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
index da88ca9f4d..da88ca9f4d 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
index 1dbc90dd2b..1dbc90dd2b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
diff --git a/indra/newview/skins/default/xui/en/menu_picks.xml b/indra/newview/skins/default/xui/en/menu_picks.xml
index ebb49c9004..ebb49c9004 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_picks.xml
+++ b/indra/newview/skins/default/xui/en/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/en/menu_picks_plus.xml b/indra/newview/skins/default/xui/en/menu_picks_plus.xml
index f3b207e36c..f3b207e36c 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/en/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/en/menu_place.xml b/indra/newview/skins/default/xui/en/menu_place.xml
index 288811d2f6..288811d2f6 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_place.xml
+++ b/indra/newview/skins/default/xui/en/menu_place.xml
diff --git a/indra/newview/skins/default/xui/en/menu_place_add_button.xml b/indra/newview/skins/default/xui/en/menu_place_add_button.xml
index e3a39a1242..e3a39a1242 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/en/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml
index 1aeb166e01..1aeb166e01 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/en/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/en/menu_places_gear_landmark.xml
index ff5fdd3795..ff5fdd3795 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/en/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/en/menu_profile_overflow.xml b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
index b0b7b554b0..b0b7b554b0 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/en/menu_save_outfit.xml b/indra/newview/skins/default/xui/en/menu_save_outfit.xml
index 6285bf7417..6285bf7417 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/en/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/en/menu_script_chiclet.xml b/indra/newview/skins/default/xui/en/menu_script_chiclet.xml
index db29d9cebc..db29d9cebc 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/en/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/en/menu_slurl.xml b/indra/newview/skins/default/xui/en/menu_slurl.xml
index ee37d49946..ee37d49946 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/en/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml
index bc7d4fe33b..bc7d4fe33b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
index 0160d52b17..0160d52b17 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_tab.xml
index ecc1d8a954..ecc1d8a954 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/en/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/en/menu_text_editor.xml b/indra/newview/skins/default/xui/en/menu_text_editor.xml
index 70b40dd89b..70b40dd89b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/en/menu_toolbars.xml b/indra/newview/skins/default/xui/en/menu_toolbars.xml
index fbe40a7244..fbe40a7244 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/en/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/en/menu_topinfobar.xml b/indra/newview/skins/default/xui/en/menu_topinfobar.xml
index cbe249ed4d..cbe249ed4d 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/en/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_agent.xml b/indra/newview/skins/default/xui/en/menu_url_agent.xml
index 7cd56f257a..7cd56f257a 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_agent.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_group.xml b/indra/newview/skins/default/xui/en/menu_url_group.xml
index 2cb125ce09..2cb125ce09 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_http.xml b/indra/newview/skins/default/xui/en/menu_url_http.xml
index 7a4b1e619b..7a4b1e619b 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_inventory.xml b/indra/newview/skins/default/xui/en/menu_url_inventory.xml
index cf9d1d5881..cf9d1d5881 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_map.xml b/indra/newview/skins/default/xui/en/menu_url_map.xml
index 2ca9e3b3fe..2ca9e3b3fe 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_objectim.xml b/indra/newview/skins/default/xui/en/menu_url_objectim.xml
index 87ab58e622..87ab58e622 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_objectim.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_parcel.xml b/indra/newview/skins/default/xui/en/menu_url_parcel.xml
index f477c310fb..f477c310fb 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_slapp.xml b/indra/newview/skins/default/xui/en/menu_url_slapp.xml
index 6d1060b633..6d1060b633 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_slurl.xml b/indra/newview/skins/default/xui/en/menu_url_slurl.xml
index 98abc206a5..98abc206a5 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/en/menu_url_teleport.xml b/indra/newview/skins/default/xui/en/menu_url_teleport.xml
index 289e32bcf4..289e32bcf4 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 544f06ac0c..a11cd13fdb 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -131,6 +131,7 @@
name="Status"
tear_off="true">
<menu_item_check
+ name="Away"
label="Away">
<menu_item_check.on_check
function="View.Status.CheckAway" />
@@ -138,6 +139,7 @@
function="World.SetAway" />
</menu_item_check>
<menu_item_check
+ name="Do Not Disturb"
label="Do Not Disturb">
<menu_item_check.on_check
function="View.Status.CheckDoNotDisturb" />
@@ -257,6 +259,7 @@
parameter="speak" />
</menu_item_check>
<menu_item_check
+ name="Conversation Log..."
label="Conversation Log...">
<menu_item_check.on_check
function="Floater.Visible"
@@ -352,6 +355,7 @@
</menu_item_call>
<menu_item_separator/>
<menu_item_check
+ name="Do Not Disturb"
label="Do Not Disturb">
<menu_item_check.on_check
function="View.Status.CheckDoNotDisturb" />
@@ -3051,13 +3055,6 @@
<menu_item_call.on_click
function="Advanced.PrintAgentInfo" />
</menu_item_call>
- <menu_item_call
- label="Memory Stats"
- name="Memory Stats"
- shortcut="control|alt|shift|M">
- <menu_item_call.on_click
- function="Advanced.PrintTextureMemoryStats" />
- </menu_item_call>
<menu_item_check
label="Region Debug Console"
name="Region Debug Console"
diff --git a/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
index aa56b4ba63..aa56b4ba63 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
index 0e858ccf10..0e858ccf10 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/en/menu_wearing_tab.xml b/indra/newview/skins/default/xui/en/menu_wearing_tab.xml
index 2d54e69601..2d54e69601 100644..100755
--- a/indra/newview/skins/default/xui/en/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/en/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/en/mime_types.xml b/indra/newview/skins/default/xui/en/mime_types.xml
index a585069faa..a585069faa 100644..100755
--- a/indra/newview/skins/default/xui/en/mime_types.xml
+++ b/indra/newview/skins/default/xui/en/mime_types.xml
diff --git a/indra/newview/skins/default/xui/en/mime_types_linux.xml b/indra/newview/skins/default/xui/en/mime_types_linux.xml
index e95b371d00..e95b371d00 100644..100755
--- a/indra/newview/skins/default/xui/en/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/en/mime_types_mac.xml b/indra/newview/skins/default/xui/en/mime_types_mac.xml
index 7931e55c0a..7931e55c0a 100644..100755
--- a/indra/newview/skins/default/xui/en/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/en/notification_visibility.xml b/indra/newview/skins/default/xui/en/notification_visibility.xml
index db292100d7..db292100d7 100644..100755
--- a/indra/newview/skins/default/xui/en/notification_visibility.xml
+++ b/indra/newview/skins/default/xui/en/notification_visibility.xml
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 3a01084b9a..da9f09b2cd 100644..100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -352,7 +352,7 @@ Save all changes to clothing/body parts?
icon="alertmodal.tga"
name="FriendsAndGroupsOnly"
type="alertmodal">
- Non-friends won't know that you've choosen to ignore their calls and instant messages.
+ Non-friends won't know that you've chosen to ignore their calls and instant messages.
<usetemplate
name="okbutton"
yestext="OK"/>
@@ -3454,7 +3454,7 @@ or you can install it now.
name="DownloadBackgroundTip"
type="notify">
We have downloaded an update to your [APP_NAME] installation.
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update]
+Version [VERSION] [[INFO_URL] Information about this update]
<tag>confirm</tag>
<usetemplate
name="okcancelbuttons"
@@ -3467,7 +3467,7 @@ Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update]
name="DownloadBackgroundDialog"
type="alertmodal">
We have downloaded an update to your [APP_NAME] installation.
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update]
+Version [VERSION] [[INFO_URL] Information about this update]
<tag>confirm</tag>
<usetemplate
name="okcancelbuttons"
@@ -3480,7 +3480,7 @@ Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update]
name="RequiredUpdateDownloadedVerboseDialog"
type="alertmodal">
We have downloaded a required software update.
-Version [VERSION]
+Version [VERSION] [[INFO_URL] Information about this update]
We must restart [APP_NAME] to install the update.
<tag>confirm</tag>
@@ -3494,6 +3494,66 @@ We must restart [APP_NAME] to install the update.
name="RequiredUpdateDownloadedDialog"
type="alertmodal">
We must restart [APP_NAME] to install the update.
+[[INFO_URL] Information about this update]
+ <tag>confirm</tag>
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OtherChannelDownloadBackgroundTip"
+ type="notify">
+We have downloaded an update to your [APP_NAME] installation.
+Version [VERSION]
+This experimental viewer has been replaced by a [NEW_CHANNEL] viewer;
+see [[INFO_URL] for details about this update]
+ <tag>confirm</tag>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Later..."
+ yestext="Install now and restart [APP_NAME]"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OtherChannelDownloadBackgroundDialog"
+ type="alertmodal">
+We have downloaded an update to your [APP_NAME] installation.
+Version [VERSION]
+This experimental viewer has been replaced by a [NEW_CHANNEL] viewer;
+see [[INFO_URL] Information about this update]
+ <tag>confirm</tag>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Later..."
+ yestext="Install now and restart [APP_NAME]"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OtherChannelRequiredUpdateDownloadedVerboseDialog"
+ type="alertmodal">
+We have downloaded a required software update.
+Version [VERSION]
+This experimental viewer has been replaced by a [NEW_CHANNEL] viewer;
+see [[INFO_URL] Information about this update]
+
+We must restart [APP_NAME] to install the update.
+ <tag>confirm</tag>
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OtherChannelRequiredUpdateDownloadedDialog"
+ type="alertmodal">
+We must restart [APP_NAME] to install the update.
+This experimental viewer has been replaced by a [NEW_CHANNEL] viewer;
+see [[INFO_URL] Information about this update]
<tag>confirm</tag>
<usetemplate
name="okbutton"
@@ -6905,8 +6965,30 @@ Do not allow access if you do not fully understand why it wants access to your a
[FOOTERTEXT]
</footer>
</notification>
+
+ <notification
+ icon="notify.tga"
+ name="UnknownScriptQuestion"
+ persist="false"
+ type="notify">
+The runtime script permission requested by &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos;, an object owned by &apos;[NAME]&apos;, isn&apos;t recognized by the viewer and can&apos;t be granted.
+
+To grant this permission please update your viewer to the latest version from [DOWNLOADURL].
+ <tag>confirm</tag>
+ <form name="form">
+ <button
+ default="true"
+ index="1"
+ name="Deny"
+ text="Ok"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Block"/>
+ </form>
+ </notification>
- <notification
+ <notification
icon="notify.tga"
name="ScriptDialog"
show_toast="false"
diff --git a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml
index 2a24c74feb..2a24c74feb 100644..100755
--- a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/en/panel_active_object_row.xml b/indra/newview/skins/default/xui/en/panel_active_object_row.xml
index 3e3271b181..3e3271b181 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/en/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
index aa1b929412..aa1b929412 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
index b779b08a63..b779b08a63 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
index 53d0252215..53d0252215 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
diff --git a/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml b/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
index 752321b949..752321b949 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml
index 216a265164..216a265164 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml
index dc123f13f4..dc123f13f4 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml
index 27a27473d8..27a27473d8 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/en/panel_chat_header.xml b/indra/newview/skins/default/xui/en/panel_chat_header.xml
index 5c5c718bdf..5c5c718bdf 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/en/panel_chat_item.xml b/indra/newview/skins/default/xui/en/panel_chat_item.xml
index 1ef99649e6..1ef99649e6 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_chat_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_chat_separator.xml b/indra/newview/skins/default/xui/en/panel_chat_separator.xml
index 357dbc07cc..357dbc07cc 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_chat_separator.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_separator.xml
diff --git a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
index fc321fdd23..fc321fdd23 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml
index d4a2745d1d..d4a2745d1d 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
index 27c653bc35..27c653bc35 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml
index 5b3f0b17a9..5b3f0b17a9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
index cc0541e65c..cc0541e65c 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
index aa8e3d07a6..aa8e3d07a6 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
index a054e71e34..a054e71e34 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_log_list_item.xml
index 78d4c174d2..78d4c174d2 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_conversation_log_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_conversation_log_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml
index de2ff0afc9..de2ff0afc9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml
index 4b05ab27e4..4b05ab27e4 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_alpha.xml b/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
index 813aa5d7a9..813aa5d7a9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index 3509eaa285..3509eaa285 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_eyes.xml b/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
index f173a2f3cb..f173a2f3cb 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_gloves.xml b/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
index 8c0c543d71..8c0c543d71 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_hair.xml b/indra/newview/skins/default/xui/en/panel_edit_hair.xml
index 6bb5d2fa9b..6bb5d2fa9b 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
index 0f8c37c691..0f8c37c691 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pants.xml b/indra/newview/skins/default/xui/en/panel_edit_pants.xml
index dd749a9259..dd749a9259 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_physics.xml b/indra/newview/skins/default/xui/en/panel_edit_physics.xml
index 0092ceb0dd..0092ceb0dd 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 553c112e6f..553c112e6f 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
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 2c7c8133d1..2c7c8133d1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shape.xml b/indra/newview/skins/default/xui/en/panel_edit_shape.xml
index d295f5fe4a..d295f5fe4a 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shirt.xml b/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
index 5424b805e1..5424b805e1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shoes.xml b/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
index 859e7454a4..859e7454a4 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_skin.xml b/indra/newview/skins/default/xui/en/panel_edit_skin.xml
index b61f65a3d1..b61f65a3d1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_skirt.xml b/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
index 76d66cc5dc..76d66cc5dc 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_socks.xml b/indra/newview/skins/default/xui/en/panel_edit_socks.xml
index 5f978174b3..5f978174b3 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
index 97f1a1a658..97f1a1a658 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_underpants.xml b/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
index 16f28377fb..16f28377fb 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
index 059485cfb4..059485cfb4 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index f34b913218..f34b913218 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/en/panel_generic_tip.xml b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
index eea92895f5..eea92895f5 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_generic_tip.xml
+++ b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
index 38b680ba86..38b680ba86 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index 206496cc0e..206496cc0e 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_invite.xml b/indra/newview/skins/default/xui/en/panel_group_invite.xml
index 124c0596c3..124c0596c3 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index d4da55e32e..d4da55e32e 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_list_item.xml b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
index cfe3aeb7c9..cfe3aeb7c9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index 6d5fb51e85..6d5fb51e85 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_notify.xml b/indra/newview/skins/default/xui/en/panel_group_notify.xml
index cded4cf31a..cded4cf31a 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index df91ad8b5e..df91ad8b5e 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/en/panel_hint.xml b/indra/newview/skins/default/xui/en/panel_hint.xml
index f7434f0330..f7434f0330 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_hint.xml
+++ b/indra/newview/skins/default/xui/en/panel_hint.xml
diff --git a/indra/newview/skins/default/xui/en/panel_hint_image.xml b/indra/newview/skins/default/xui/en/panel_hint_image.xml
index df05d50dc5..df05d50dc5 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_hint_image.xml
+++ b/indra/newview/skins/default/xui/en/panel_hint_image.xml
diff --git a/indra/newview/skins/default/xui/en/panel_hud.xml b/indra/newview/skins/default/xui/en/panel_hud.xml
index 3e9614a9b7..3e9614a9b7 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_hud.xml
+++ b/indra/newview/skins/default/xui/en/panel_hud.xml
diff --git a/indra/newview/skins/default/xui/en/panel_inbox_inventory.xml b/indra/newview/skins/default/xui/en/panel_inbox_inventory.xml
index 433a3181cd..433a3181cd 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_inbox_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_inbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_instant_message.xml b/indra/newview/skins/default/xui/en/panel_instant_message.xml
index 2e5d650902..2e5d650902 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/en/panel_inventory_item.xml b/indra/newview/skins/default/xui/en/panel_inventory_item.xml
index 2e38835810..2e38835810 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index fd6e96b9a7..fd6e96b9a7 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/en/panel_landmarks.xml b/indra/newview/skins/default/xui/en/panel_landmarks.xml
index 67a09949ce..67a09949ce 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml
index 134ca75018..134ca75018 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_login.xml
+++ b/indra/newview/skins/default/xui/en/panel_login.xml
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 1c882bb099..1c882bb099 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_me.xml b/indra/newview/skins/default/xui/en/panel_me.xml
index 23e7814cad..23e7814cad 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_me.xml
+++ b/indra/newview/skins/default/xui/en/panel_me.xml
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
index e844a15118..e844a15118 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
index d3a58fed58..d3a58fed58 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml
index 1f580831f9..1f580831f9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 3edeb9aa36..3edeb9aa36 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
index 4de56b424e..4de56b424e 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
index 19143cef89..19143cef89 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
index d1cb64f7ad..d1cb64f7ad 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml
index 94c468e1bb..94c468e1bb 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_notification.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification.xml
diff --git a/indra/newview/skins/default/xui/en/panel_notifications_channel.xml b/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
index c3dc588ba2..c3dc588ba2 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
diff --git a/indra/newview/skins/default/xui/en/panel_notify_textbox.xml b/indra/newview/skins/default/xui/en/panel_notify_textbox.xml
index d5b6057233..d5b6057233 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/en/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/en/panel_online_status_toast.xml b/indra/newview/skins/default/xui/en/panel_online_status_toast.xml
index dadbd9c9ab..dadbd9c9ab 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml
index c80e5b168a..c80e5b168a 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index b61f110e32..b61f110e32 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
index 405d9513db..405d9513db 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml
index 2c7a51f0e7..2c7a51f0e7 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_list.xml b/indra/newview/skins/default/xui/en/panel_outfits_list.xml
index a0096adc01..a0096adc01 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
index d85b778db2..d85b778db2 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 7ce2627be9..7ce2627be9 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 79d190e1e0..79d190e1e0 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
index 43d580844f..43d580844f 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 8def96cada..8def96cada 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 308acf0c0c..308acf0c0c 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index f169dbb702..f169dbb702 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
diff --git a/indra/newview/skins/default/xui/en/panel_postcard_message.xml b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
index ab2a42ea01..ab2a42ea01 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/en/panel_postcard_settings.xml b/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
index 3f67a48b14..3f67a48b14 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 2cc9d9c1b0..2cc9d9c1b0 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
index 714dca7fac..714dca7fac 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index bd096ebb88..bd096ebb88 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
index 9e825fe516..9e825fe516 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index ea0f7d8593..ea0f7d8593 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index cd243d40a4..cd243d40a4 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
index d9067b41c7..d9067b41c7 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
index 78743d26bb..78743d26bb 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index 4aeea8823e..dd4533ae74 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -232,6 +232,18 @@
name="Install_manual"
value="0" />
</combo_box>
+ <check_box
+ top_delta="4"
+ enabled="true"
+ follows="left|top"
+ height="14"
+ control_name="UpdaterWillingToTest"
+ label="Willing to update to release candidates"
+ left_delta="0"
+ mouse_opaque="true"
+ name="update_willing_to_test"
+ width="400"
+ top_pad="5"/>
<text
type="string"
length="1"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
index b71586aab1..b71586aab1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
index 198ccd6e2f..198ccd6e2f 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml
index 860caf2d21..860caf2d21 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_progress.xml
+++ b/indra/newview/skins/default/xui/en/panel_progress.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
index 112f12500d..112f12500d 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_debug.xml b/indra/newview/skins/default/xui/en/panel_region_debug.xml
index 81b2281adb..81b2281adb 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_environment.xml b/indra/newview/skins/default/xui/en/panel_region_environment.xml
index aa38c49fae..aa38c49fae 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
index 76a82212ae..76a82212ae 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml
index 44c84e69a1..44c84e69a1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/en/panel_region_terrain.xml b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
index 5d060c0a0d..5d060c0a0d 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 765b07ed8b..765b07ed8b 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
index 629d8567d1..629d8567d1 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
index c5e8bf5803..c5e8bf5803 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_script_question_toast.xml b/indra/newview/skins/default/xui/en/panel_script_question_toast.xml
index b0436bb6dc..b0436bb6dc 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
index a8cd380f20..a8cd380f20 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param_base.xml
index 1351f75623..1351f75623 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml
index 557b04d281..557b04d281 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
index 912f81f915..912f81f915 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
index 71d808fa4b..71d808fa4b 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
index 781ab17403..781ab17403 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
index d2f29ade44..d2f29ade44 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
index ebba292a93..ebba292a93 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
index 0dd357aa1a..0dd357aa1a 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/en/panel_sound_devices.xml b/indra/newview/skins/default/xui/en/panel_sound_devices.xml
index 46cbc1e87f..46cbc1e87f 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/en/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/en/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/en/panel_stand_stop_flying.xml
index 07642946f8..07642946f8 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/en/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index dd2a0c6627..dd2a0c6627 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_sys_well_item.xml b/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
index 007b73a4bc..007b73a4bc 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history.xml b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
index 768efc2f3f..768efc2f3f 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index c5b0be0616..c5b0be0616 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index 37a904bca8..37a904bca8 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_toast.xml
diff --git a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
index f5c559fe1d..f5c559fe1d 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml
diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
index fc527f5f9d..fc527f5f9d 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
diff --git a/indra/newview/skins/default/xui/en/panel_voice_effect.xml b/indra/newview/skins/default/xui/en/panel_voice_effect.xml
index 93e79b7328..93e79b7328 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/en/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml
index 6adede0362..6adede0362 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/en/panel_world_map.xml b/indra/newview/skins/default/xui/en/panel_world_map.xml
index 16860a6117..16860a6117 100644..100755
--- a/indra/newview/skins/default/xui/en/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/en/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/en/role_actions.xml b/indra/newview/skins/default/xui/en/role_actions.xml
index 89aef57cca..89aef57cca 100644..100755
--- a/indra/newview/skins/default/xui/en/role_actions.xml
+++ b/indra/newview/skins/default/xui/en/role_actions.xml
diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
index 1d98a84e25..1d98a84e25 100644..100755
--- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
index 14bd349480..14bd349480 100644..100755
--- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index c5dfb703e5..c5dfb703e5 100644..100755
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
index 6ee8fc3a4c..6ee8fc3a4c 100644..100755
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 5aa743b32d..3b57ff5fd6 100644..100755
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -61,6 +61,7 @@
<string name="Quit">Quit</string>
<string name="create_account_url">http://join.secondlife.com/?sourceid=[sourceid]</string>
+ <string name="ViewerDownloadURL">http://secondlife.com/download</string>
<string name="LoginFailedViewerNotPermitted">
The viewer you are using can no longer access Second Life. Please visit the following page to download a new viewer:
http://secondlife.com/download
@@ -410,7 +411,12 @@ Please try logging in again in a minute.</string>
<string name="NotConnected">Not Connected</string>
<string name="AgentNameSubst">(You)</string> <!-- Substitution for agent name -->
<string name="TeleportYourAgent">Teleport you</string>
-
+ <string name="JoinAnExperience">Join an experience</string> <!-- not used -->
+ <string name="SilentlyManageEstateAccess">Suppress alerts when managing estate access lists</string>
+ <string name="OverrideYourAnimations">Replace your default animations</string>
+ <string name="ScriptReturnObjects">Return objects on your behalf</string>
+ <string name="UnknownScriptPermission">(unknown)!</string>
+
<!-- Sim Access labels -->
<string name="SIM_ACCESS_PG">General</string>
<string name="SIM_ACCESS_MATURE">Moderate</string>
@@ -2987,6 +2993,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Higher">Higher</string>
<string name="Hip Length">Hip Length</string>
<string name="Hip Width">Hip Width</string>
+<string name="Hover">Hover</string>
<string name="In">In</string>
<string name="In Shdw Color">Inner Shadow Color</string>
<string name="In Shdw Opacity">Inner Shadow Opacity</string>
diff --git a/indra/newview/skins/default/xui/en/teleport_strings.xml b/indra/newview/skins/default/xui/en/teleport_strings.xml
index fdf41991cd..fdf41991cd 100644..100755
--- a/indra/newview/skins/default/xui/en/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/en/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/accordion.xml b/indra/newview/skins/default/xui/en/widgets/accordion.xml
index 55dde492ca..55dde492ca 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/accordion.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
index 6f68c99021..6f68c99021 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/avatar_icon.xml b/indra/newview/skins/default/xui/en/widgets/avatar_icon.xml
index 4d69dda7eb..4d69dda7eb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/avatar_icon.xml
+++ b/indra/newview/skins/default/xui/en/widgets/avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml b/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml
index 8a4ccb19f9..8a4ccb19f9 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/badge.xml b/indra/newview/skins/default/xui/en/widgets/badge.xml
index 738d150f64..738d150f64 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/badge.xml
+++ b/indra/newview/skins/default/xui/en/widgets/badge.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml b/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml
index 0016a8cf53..0016a8cf53 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
index 2b2c3faf91..2b2c3faf91 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/chat_editor.xml b/indra/newview/skins/default/xui/en/widgets/chat_editor.xml
index f9facb593a..f9facb593a 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/chat_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chat_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/chat_history.xml b/indra/newview/skins/default/xui/en/widgets/chat_history.xml
index c0a948931c..c0a948931c 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/chat_history.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chat_history.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/check_box.xml b/indra/newview/skins/default/xui/en/widgets/check_box.xml
index 8947024e45..8947024e45 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/check_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/check_box.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
index 4bc295f747..4bc295f747 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
index 5f51f4afd9..5f51f4afd9 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
index db6a9434df..db6a9434df 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml b/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml
index d83f44737e..d83f44737e 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/color_swatch.xml b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
index ab3de1eaab..ab3de1eaab 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
+++ b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/combo_box.xml b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
index 82d620d1e6..82d620d1e6 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/context_menu.xml b/indra/newview/skins/default/xui/en/widgets/context_menu.xml
index 459706c689..459706c689 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/context_menu.xml
+++ b/indra/newview/skins/default/xui/en/widgets/context_menu.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/conversation_view_session.xml b/indra/newview/skins/default/xui/en/widgets/conversation_view_session.xml
index b8c39eec1d..b8c39eec1d 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/conversation_view_session.xml
+++ b/indra/newview/skins/default/xui/en/widgets/conversation_view_session.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml
index 0534485ddd..0534485ddd 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/drop_down.xml b/indra/newview/skins/default/xui/en/widgets/drop_down.xml
index 602250ace6..602250ace6 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/drop_down.xml
+++ b/indra/newview/skins/default/xui/en/widgets/drop_down.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml
index 8c805da048..8c805da048 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
index c6331ec87b..c6331ec87b 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
index 2cc4abdd30..2cc4abdd30 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/flat_list_view.xml b/indra/newview/skins/default/xui/en/widgets/flat_list_view.xml
index e05ddf9815..e05ddf9815 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/flat_list_view.xml
+++ b/indra/newview/skins/default/xui/en/widgets/flat_list_view.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/floater.xml b/indra/newview/skins/default/xui/en/widgets/floater.xml
index 97a5ae7d4e..97a5ae7d4e 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/floater.xml
+++ b/indra/newview/skins/default/xui/en/widgets/floater.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/flyout_button.xml b/indra/newview/skins/default/xui/en/widgets/flyout_button.xml
index 83df10e417..83df10e417 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/flyout_button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/flyout_button.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/folder_view_item.xml b/indra/newview/skins/default/xui/en/widgets/folder_view_item.xml
index bbd53ccb12..bbd53ccb12 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/folder_view_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/folder_view_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml b/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
index 808683864d..808683864d 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/group_icon.xml b/indra/newview/skins/default/xui/en/widgets/group_icon.xml
index 36ee6dd7eb..36ee6dd7eb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/group_icon.xml
+++ b/indra/newview/skins/default/xui/en/widgets/group_icon.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/hint_popup.xml b/indra/newview/skins/default/xui/en/widgets/hint_popup.xml
index 92080df154..92080df154 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/hint_popup.xml
+++ b/indra/newview/skins/default/xui/en/widgets/hint_popup.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/icon.xml b/indra/newview/skins/default/xui/en/widgets/icon.xml
index cf8edfcedb..cf8edfcedb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/icon.xml
+++ b/indra/newview/skins/default/xui/en/widgets/icon.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
index 590a4730a9..590a4730a9 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
index 7a7a6e9a09..7a7a6e9a09 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml b/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml
index d5b10e7f51..d5b10e7f51 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inbox_inventory_panel.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inspector.xml b/indra/newview/skins/default/xui/en/widgets/inspector.xml
index 8c171c387f..8c171c387f 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inspector.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inspector.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml b/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml
index da9059c819..da9059c819 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
index eaf148c5e4..eaf148c5e4 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml
index a190da3909..a190da3909 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml
+++ b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/layout_stack.xml b/indra/newview/skins/default/xui/en/widgets/layout_stack.xml
index 48bcb46533..48bcb46533 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/layout_stack.xml
+++ b/indra/newview/skins/default/xui/en/widgets/layout_stack.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/line_editor.xml b/indra/newview/skins/default/xui/en/widgets/line_editor.xml
index a054960bf8..a054960bf8 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/line_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/line_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/list_view.xml b/indra/newview/skins/default/xui/en/widgets/list_view.xml
index 2e976bc755..2e976bc755 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/list_view.xml
+++ b/indra/newview/skins/default/xui/en/widgets/list_view.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/loading_indicator.xml b/indra/newview/skins/default/xui/en/widgets/loading_indicator.xml
index ea1d89c975..ea1d89c975 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/loading_indicator.xml
+++ b/indra/newview/skins/default/xui/en/widgets/loading_indicator.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
index 61ec046649..61ec046649 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu.xml b/indra/newview/skins/default/xui/en/widgets/menu.xml
index 13ac84beb2..13ac84beb2 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_bar.xml b/indra/newview/skins/default/xui/en/widgets/menu_bar.xml
index 27efa72563..27efa72563 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_bar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item.xml b/indra/newview/skins/default/xui/en/widgets/menu_item.xml
index 563f3dc5c2..563f3dc5c2 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml
index 24bda97f44..24bda97f44 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml
index f6b06cb50b..f6b06cb50b 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml
index 7452d685eb..7452d685eb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml
index 72af3924c1..72af3924c1 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/multi_slider.xml b/indra/newview/skins/default/xui/en/widgets/multi_slider.xml
index 90b0625982..90b0625982 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/multi_slider.xml
+++ b/indra/newview/skins/default/xui/en/widgets/multi_slider.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml b/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml
index bbcb008df4..bbcb008df4 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/name_editor.xml b/indra/newview/skins/default/xui/en/widgets/name_editor.xml
index 21ba5c77f8..21ba5c77f8 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/name_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/name_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/name_list.xml b/indra/newview/skins/default/xui/en/widgets/name_list.xml
index 3ae0f68227..3ae0f68227 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/name_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/name_list.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/output_monitor.xml b/indra/newview/skins/default/xui/en/widgets/output_monitor.xml
index 9d71ceca2f..9d71ceca2f 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/output_monitor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/output_monitor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/panel.xml b/indra/newview/skins/default/xui/en/widgets/panel.xml
index b36f723831..b36f723831 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/panel.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/panel_camera_item.xml b/indra/newview/skins/default/xui/en/widgets/panel_camera_item.xml
index 98707b8495..98707b8495 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/panel_camera_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/panel_camera_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/progress_bar.xml b/indra/newview/skins/default/xui/en/widgets/progress_bar.xml
index 339e53fbb8..339e53fbb8 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/progress_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/progress_bar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/radio_group.xml b/indra/newview/skins/default/xui/en/widgets/radio_group.xml
index ab3184d34b..ab3184d34b 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/radio_group.xml
+++ b/indra/newview/skins/default/xui/en/widgets/radio_group.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/radio_item.xml b/indra/newview/skins/default/xui/en/widgets/radio_item.xml
index 3ddf18b2cb..3ddf18b2cb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/radio_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/radio_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
index 682dcf40d8..682dcf40d8 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_column_header.xml b/indra/newview/skins/default/xui/en/widgets/scroll_column_header.xml
index 8a48fcb32d..8a48fcb32d 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/scroll_column_header.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_column_header.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_container.xml b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
index a6d096a964..a6d096a964 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
index e43989c6c7..e43989c6c7 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/scrolling_panel_list.xml b/indra/newview/skins/default/xui/en/widgets/scrolling_panel_list.xml
index 40cbf5977a..40cbf5977a 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/scrolling_panel_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scrolling_panel_list.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
index ce84cfedc0..ce84cfedc0 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/search_editor.xml b/indra/newview/skins/default/xui/en/widgets/search_editor.xml
index faa0404b35..faa0404b35 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/search_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/search_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/side_tray.xml b/indra/newview/skins/default/xui/en/widgets/side_tray.xml
index 022564c12f..022564c12f 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/side_tray.xml
+++ b/indra/newview/skins/default/xui/en/widgets/side_tray.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/sidetray_tab.xml b/indra/newview/skins/default/xui/en/widgets/sidetray_tab.xml
index aa8461d367..aa8461d367 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/sidetray_tab.xml
+++ b/indra/newview/skins/default/xui/en/widgets/sidetray_tab.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
index a120b1aec8..a120b1aec8 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/slider.xml b/indra/newview/skins/default/xui/en/widgets/slider.xml
index f735d09476..f735d09476 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/slider.xml
+++ b/indra/newview/skins/default/xui/en/widgets/slider.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/slider_bar.xml b/indra/newview/skins/default/xui/en/widgets/slider_bar.xml
index 0335213ed6..0335213ed6 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/slider_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/slider_bar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/spinner.xml b/indra/newview/skins/default/xui/en/widgets/spinner.xml
index d7af6077e5..d7af6077e5 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/spinner.xml
+++ b/indra/newview/skins/default/xui/en/widgets/spinner.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/split_button.xml b/indra/newview/skins/default/xui/en/widgets/split_button.xml
index 2ff9ada90a..2ff9ada90a 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/split_button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/split_button.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
index 0586119681..0586119681 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/talk_button.xml b/indra/newview/skins/default/xui/en/widgets/talk_button.xml
index d792e9f29c..d792e9f29c 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/talk_button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/talk_button.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml b/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml
index 4f574d75d5..4f574d75d5 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/text.xml b/indra/newview/skins/default/xui/en/widgets/text.xml
index 2102074674..2102074674 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/text_editor.xml b/indra/newview/skins/default/xui/en/widgets/text_editor.xml
index 100571cc01..100571cc01 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text_editor.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/textbase.xml b/indra/newview/skins/default/xui/en/widgets/textbase.xml
index b2da2147c1..b2da2147c1 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/textbase.xml
+++ b/indra/newview/skins/default/xui/en/widgets/textbase.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/texture_picker.xml b/indra/newview/skins/default/xui/en/widgets/texture_picker.xml
index ba2fdf4f1f..ba2fdf4f1f 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/texture_picker.xml
+++ b/indra/newview/skins/default/xui/en/widgets/texture_picker.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/time.xml b/indra/newview/skins/default/xui/en/widgets/time.xml
index b5bdd564a6..b5bdd564a6 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/time.xml
+++ b/indra/newview/skins/default/xui/en/widgets/time.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/toggleable_menu.xml b/indra/newview/skins/default/xui/en/widgets/toggleable_menu.xml
index 48950a98ad..48950a98ad 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/toggleable_menu.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toggleable_menu.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/tool_tip.xml b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
index 9ca15ae50d..9ca15ae50d 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 0ace37a5dc..0ace37a5dc 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml b/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml
index f4dbb8f404..f4dbb8f404 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/view_border.xml b/indra/newview/skins/default/xui/en/widgets/view_border.xml
index bf40e3086b..bf40e3086b 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/view_border.xml
+++ b/indra/newview/skins/default/xui/en/widgets/view_border.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/web_browser.xml b/indra/newview/skins/default/xui/en/widgets/web_browser.xml
index 676fafd828..676fafd828 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/web_browser.xml
+++ b/indra/newview/skins/default/xui/en/widgets/web_browser.xml
diff --git a/indra/newview/skins/default/xui/en/widgets/window_shade.xml b/indra/newview/skins/default/xui/en/widgets/window_shade.xml
index 23eb2f13fb..23eb2f13fb 100644..100755
--- a/indra/newview/skins/default/xui/en/widgets/window_shade.xml
+++ b/indra/newview/skins/default/xui/en/widgets/window_shade.xml
diff --git a/indra/newview/skins/default/xui/en/xui_version.xml b/indra/newview/skins/default/xui/en/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/en/xui_version.xml
+++ b/indra/newview/skins/default/xui/en/xui_version.xml
diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml
index 3696c7e12c..3696c7e12c 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_about.xml
+++ b/indra/newview/skins/default/xui/es/floater_about.xml
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index f8c40d798a..f8c40d798a 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/es/floater_activeim.xml b/indra/newview/skins/default/xui/es/floater_activeim.xml
index 988786c1ae..988786c1ae 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/es/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/es/floater_auction.xml b/indra/newview/skins/default/xui/es/floater_auction.xml
index 6faf19dbb5..6faf19dbb5 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_auction.xml
+++ b/indra/newview/skins/default/xui/es/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/es/floater_autoreplace.xml b/indra/newview/skins/default/xui/es/floater_autoreplace.xml
index 15abccc376..15abccc376 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/es/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/es/floater_avatar.xml b/indra/newview/skins/default/xui/es/floater_avatar.xml
index 21d202309f..21d202309f 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/es/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
index 49fce5d4ec..49fce5d4ec 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/es/floater_avatar_textures.xml b/indra/newview/skins/default/xui/es/floater_avatar_textures.xml
index 54ef34264c..54ef34264c 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/es/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/es/floater_beacons.xml b/indra/newview/skins/default/xui/es/floater_beacons.xml
index 49f990c84d..49f990c84d 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/es/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/es/floater_build_options.xml b/indra/newview/skins/default/xui/es/floater_build_options.xml
index a3e656cc17..a3e656cc17 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/es/floater_bulk_perms.xml b/indra/newview/skins/default/xui/es/floater_bulk_perms.xml
index f1948220b4..f1948220b4 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/es/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/es/floater_bumps.xml b/indra/newview/skins/default/xui/es/floater_bumps.xml
index 6d4196ca7c..6d4196ca7c 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/es/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/es/floater_buy_contents.xml b/indra/newview/skins/default/xui/es/floater_buy_contents.xml
index 3563d4bd0f..3563d4bd0f 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency.xml b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
index 2c8848265f..2c8848265f 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/es/floater_buy_currency_html.xml
index 08ea67d4cb..08ea67d4cb 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_currency_html.xml
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 005fe90318..005fe90318 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/es/floater_buy_object.xml b/indra/newview/skins/default/xui/es/floater_buy_object.xml
index a774bc6d05..a774bc6d05 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml
index b0704ab788..b0704ab788 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_camera.xml
+++ b/indra/newview/skins/default/xui/es/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/es/floater_chat_bar.xml b/indra/newview/skins/default/xui/es/floater_chat_bar.xml
index 02369c9a43..02369c9a43 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/es/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/es/floater_choose_group.xml b/indra/newview/skins/default/xui/es/floater_choose_group.xml
index a5967b814e..a5967b814e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/es/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/es/floater_color_picker.xml b/indra/newview/skins/default/xui/es/floater_color_picker.xml
index ed168c09d5..ed168c09d5 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/es/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/es/floater_conversation_log.xml b/indra/newview/skins/default/xui/es/floater_conversation_log.xml
new file mode 100644
index 0000000000..9202fab92d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="REGISTRO DE CONVERSACIONES">
+ <panel name="buttons_panel">
+ <filter_editor label="Filtrar la gente" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Opciones de vista/orden"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Acciones en la persona o el grupo seleccionado"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_conversation_preview.xml b/indra/newview/skins/default/xui/es/floater_conversation_preview.xml
new file mode 100644
index 0000000000..f579e720fb
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="CONVERSACIÓN:">
+ <floater.string name="Title">
+ CONVERSACIÓN: [NAME]
+ </floater.string>
+ <text name="page_label" value="Página"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_critical.xml b/indra/newview/skins/default/xui/es/floater_critical.xml
index e5cbea8810..e5cbea8810 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_critical.xml
+++ b/indra/newview/skins/default/xui/es/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/es/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/es/floater_delete_env_preset.xml
index 5e7df8530e..5e7df8530e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/es/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/es/floater_destinations.xml b/indra/newview/skins/default/xui/es/floater_destinations.xml
index df18698d2f..df18698d2f 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/es/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/es/floater_display_name.xml b/indra/newview/skins/default/xui/es/floater_display_name.xml
index f1a31a6776..f1a31a6776 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/es/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml
index 6ac46351db..6ac46351db 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml
index d2197b80fa..d2197b80fa 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml
index f90ad59f78..f90ad59f78 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/es/floater_environment_settings.xml b/indra/newview/skins/default/xui/es/floater_environment_settings.xml
index a9c5705d52..a9c5705d52 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/es/floater_event.xml b/indra/newview/skins/default/xui/es/floater_event.xml
index d2724bf8b0..d2724bf8b0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_event.xml
+++ b/indra/newview/skins/default/xui/es/floater_event.xml
diff --git a/indra/newview/skins/default/xui/es/floater_fast_timers.xml b/indra/newview/skins/default/xui/es/floater_fast_timers.xml
index eeb39583ef..eeb39583ef 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/es/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/es/floater_font_test.xml b/indra/newview/skins/default/xui/es/floater_font_test.xml
index 9a665321a4..9a665321a4 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/es/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/es/floater_gesture.xml b/indra/newview/skins/default/xui/es/floater_gesture.xml
index d90de8c9f4..d90de8c9f4 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/es/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/es/floater_god_tools.xml b/indra/newview/skins/default/xui/es/floater_god_tools.xml
index 218a5effe8..218a5effe8 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
index c351db5eae..c351db5eae 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/es/floater_help_browser.xml b/indra/newview/skins/default/xui/es/floater_help_browser.xml
index 5ebd7ad6e0..5ebd7ad6e0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/es/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/es/floater_how_to.xml b/indra/newview/skins/default/xui/es/floater_how_to.xml
index 4a57dc3643..4a57dc3643 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/es/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/es/floater_hud.xml b/indra/newview/skins/default/xui/es/floater_hud.xml
index e458913452..e458913452 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_hud.xml
+++ b/indra/newview/skins/default/xui/es/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/es/floater_im_container.xml b/indra/newview/skins/default/xui/es/floater_im_container.xml
index 1cd752e6ec..f772441141 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/es/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="CONVERSACIONES"/>
+<multi_floater name="floater_im_box" title="CONVERSACIONES">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Opciones de vista/orden"/>
+ <button name="add_btn" tool_tip="Iniciar una conversación nueva"/>
+ <button name="speak_btn" tool_tip="Utiliza el micrófono para hablar con las personas"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Cerrar/expandir esta lista"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Cerrar este panel"/>
+ <text name="stub_textbox">
+ Esta conversación está en una ventana aparte. [secondlife:/// Traerla de vuelta.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/es/floater_im_session.xml b/indra/newview/skins/default/xui/es/floater_im_session.xml
index 3d9d17fc81..5f38fbd615 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/es/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="A" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] ha sido invitado a la conversación."/>
+ <floater.string name="multiple_participants_added" value="[NAME] han sido invitados a la conversación."/>
+ <floater.string name="tooltip_to_separate_window" value="Mover esta conversación a otra ventana"/>
+ <floater.string name="tooltip_to_main_window" value="Volver a poner esta conversación en la ventana principal"/>
+ <floater.string name="start_call_button_tooltip" value="Abrir conexión de voz"/>
+ <floater.string name="end_call_button_tooltip" value="Cerrar la conexión de voz"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Cerrar este panel"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Cerrar la lista de participantes"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Expandir la lista de participantes"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Opciones de vista/orden"/>
+ <menu_button name="gear_btn" tool_tip="Acciones en la persona seleccionada"/>
+ <button name="add_btn" tool_tip="Añadir alguien a esta conversación"/>
+ <button name="voice_call_btn" tool_tip="Abrir conexión de voz"/>
+ <button name="close_btn" tool_tip="Finalizar esta conversación"/>
+ <button name="expand_collapse_btn" tool_tip="Cerrar/expandir este panel"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Traducir el chat" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="A" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Muestra/oculta el panel de mensajes"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_image_preview.xml b/indra/newview/skins/default/xui/es/floater_image_preview.xml
index 84c5bfc824..84c5bfc824 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/es/floater_import_collada.xml b/indra/newview/skins/default/xui/es/floater_import_collada.xml
index 7e9a00797a..7e9a00797a 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/es/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/es/floater_incoming_call.xml b/indra/newview/skins/default/xui/es/floater_incoming_call.xml
index b5b756abb6..acbb25b713 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/es/floater_incoming_call.xml
@@ -10,7 +10,7 @@
anónimo
</floater.string>
<floater.string name="VoiceInviteP2P">
- está llamando.
+ te está llamando.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
ha entrado en un chat de voz en multiconferencia.
@@ -25,9 +25,9 @@
¿Quieres dejar [CURRENT_CHAT] y entrar en este chat de voz?
</floater.string>
<text name="question">
- ¿Quieres dejar [CURRENT_CHAT] y entrar a este chat de voz?
+ Si respondes, te desconectarás de la conversación de voz actual.
</text>
- <button label="Aceptar" label_selected="Aceptar" name="Accept"/>
- <button label="Rechazar" label_selected="Rechazar" name="Reject"/>
- <button label="Comenzar un MI" name="Start IM"/>
+ <button label="Responder" label_selected="Responder" name="Accept"/>
+ <button label="Ignorar" label_selected="Ignorar" name="Reject"/>
+ <button label="Abrir MI en su lugar" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_inspect.xml b/indra/newview/skins/default/xui/es/floater_inspect.xml
index d95653ddd0..d95653ddd0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/es/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
index bf84c3d808..bf84c3d808 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
index 6004034504..6004034504 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/es/floater_joystick.xml b/indra/newview/skins/default/xui/es/floater_joystick.xml
index 2c1804bd90..2c1804bd90 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/es/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
index 227689a194..227689a194 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/es/floater_land_holdings.xml b/indra/newview/skins/default/xui/es/floater_land_holdings.xml
index ed7055b3a1..ed7055b3a1 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/es/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml
index 4ff54bccb5..4ff54bccb5 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
index 43a7ede030..43a7ede030 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/es/floater_map.xml b/indra/newview/skins/default/xui/es/floater_map.xml
index 69f638418e..69f638418e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_map.xml
diff --git a/indra/newview/skins/default/xui/es/floater_media_browser.xml b/indra/newview/skins/default/xui/es/floater_media_browser.xml
index 9c4ef1eb2f..9c4ef1eb2f 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/es/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/es/floater_media_settings.xml b/indra/newview/skins/default/xui/es/floater_media_settings.xml
index 3f7cef5785..3f7cef5785 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/es/floater_mem_leaking.xml b/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
index da8ba780bc..da8ba780bc 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/es/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/es/floater_merchant_outbox.xml
index a7c17fc136..a7c17fc136 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/es/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/es/floater_model_preview.xml b/indra/newview/skins/default/xui/es/floater_model_preview.xml
index e2313bce99..e2313bce99 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/es/floater_moveview.xml b/indra/newview/skins/default/xui/es/floater_moveview.xml
index 0e7b950bd3..0e7b950bd3 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/es/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/es/floater_mute_object.xml b/indra/newview/skins/default/xui/es/floater_mute_object.xml
index 4cd16a59ed..4cd16a59ed 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/es/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/es/floater_my_appearance.xml b/indra/newview/skins/default/xui/es/floater_my_appearance.xml
index 774babf04e..774babf04e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/es/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/es/floater_my_inventory.xml b/indra/newview/skins/default/xui/es/floater_my_inventory.xml
index 0efd9f1c6d..0efd9f1c6d 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/es/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/floater_object_weights.xml b/indra/newview/skins/default/xui/es/floater_object_weights.xml
index 50c4f0518d..50c4f0518d 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/es/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/es/floater_openobject.xml b/indra/newview/skins/default/xui/es/floater_openobject.xml
index b8b688df60..b8b688df60 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/es/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
index f48d0d2d0c..f48d0d2d0c 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/es/floater_outgoing_call.xml b/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
index 5fd9dba9ac..5fd9dba9ac 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/es/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/es/floater_pathfinding_characters.xml
index e3ee0563d2..e3ee0563d2 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/es/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/es/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/es/floater_pathfinding_console.xml
index e93ecc9e10..3602270e5a 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/es/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Mostrar:
</text>
- <check_box label="Mundo virtual" name="show_world"/>
+ <check_box label="Prueba" name="show_world"/>
<check_box label="Solamente los objetos movibles" name="show_world_movables_only"/>
<check_box label="Navmesh" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
index e6f864eef5..e6f864eef5 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/es/floater_pay.xml b/indra/newview/skins/default/xui/es/floater_pay.xml
index ad9a43ad71..ad9a43ad71 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_pay.xml
+++ b/indra/newview/skins/default/xui/es/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/es/floater_pay_object.xml b/indra/newview/skins/default/xui/es/floater_pay_object.xml
index 4767f4dfa0..4767f4dfa0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/es/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/es/floater_people.xml b/indra/newview/skins/default/xui/es/floater_people.xml
index f5a3eab008..f5a3eab008 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_people.xml
+++ b/indra/newview/skins/default/xui/es/floater_people.xml
diff --git a/indra/newview/skins/default/xui/es/floater_perm_prefs.xml b/indra/newview/skins/default/xui/es/floater_perm_prefs.xml
index 93e2088aba..93e2088aba 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/es/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/es/floater_picks.xml b/indra/newview/skins/default/xui/es/floater_picks.xml
index 255aa5dcdc..255aa5dcdc 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_picks.xml
+++ b/indra/newview/skins/default/xui/es/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/es/floater_places.xml b/indra/newview/skins/default/xui/es/floater_places.xml
index 12c6548205..12c6548205 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_places.xml
+++ b/indra/newview/skins/default/xui/es/floater_places.xml
diff --git a/indra/newview/skins/default/xui/es/floater_post_process.xml b/indra/newview/skins/default/xui/es/floater_post_process.xml
index 5c62ccde36..5c62ccde36 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/es/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preferences.xml b/indra/newview/skins/default/xui/es/floater_preferences.xml
index 372680f55d..372680f55d 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/es/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/es/floater_preferences_proxy.xml
index f656f5d662..f656f5d662 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/es/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preview_animation.xml b/indra/newview/skins/default/xui/es/floater_preview_animation.xml
index c3f377a71a..c3f377a71a 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
index bd13262dcd..bd13262dcd 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preview_notecard.xml b/indra/newview/skins/default/xui/es/floater_preview_notecard.xml
index d05a023279..d05a023279 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preview_sound.xml b/indra/newview/skins/default/xui/es/floater_preview_sound.xml
index 62525c9536..62525c9536 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/es/floater_preview_texture.xml b/indra/newview/skins/default/xui/es/floater_preview_texture.xml
index 4012191c78..4012191c78 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/es/floater_price_for_listing.xml b/indra/newview/skins/default/xui/es/floater_price_for_listing.xml
index 8d6cdc86c0..8d6cdc86c0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/es/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/es/floater_publish_classified.xml b/indra/newview/skins/default/xui/es/floater_publish_classified.xml
index a1645f0c64..a1645f0c64 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/es/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/es/floater_region_debug_console.xml b/indra/newview/skins/default/xui/es/floater_region_debug_console.xml
index 40851f897e..40851f897e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/es/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/es/floater_region_info.xml b/indra/newview/skins/default/xui/es/floater_region_info.xml
index 46d0839238..46d0839238 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/es/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/es/floater_report_abuse.xml b/indra/newview/skins/default/xui/es/floater_report_abuse.xml
index dc5d430375..dc5d430375 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/es/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_debug.xml b/indra/newview/skins/default/xui/es/floater_script_debug.xml
index e7eddfd9f3..e7eddfd9f3 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/es/floater_script_debug_panel.xml
index db9fd5f36e..db9fd5f36e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_limits.xml b/indra/newview/skins/default/xui/es/floater_script_limits.xml
index 410f7b5e36..410f7b5e36 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_preview.xml b/indra/newview/skins/default/xui/es/floater_script_preview.xml
index 5c190a4682..5c190a4682 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_queue.xml b/indra/newview/skins/default/xui/es/floater_script_queue.xml
index 39c84103c4..39c84103c4 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/es/floater_script_search.xml b/indra/newview/skins/default/xui/es/floater_script_search.xml
index 1ab6682023..1ab6682023 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/es/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/es/floater_search.xml b/indra/newview/skins/default/xui/es/floater_search.xml
index e24d8064a1..e24d8064a1 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_search.xml
+++ b/indra/newview/skins/default/xui/es/floater_search.xml
diff --git a/indra/newview/skins/default/xui/es/floater_select_key.xml b/indra/newview/skins/default/xui/es/floater_select_key.xml
index 6503a3d5cb..6503a3d5cb 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/es/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/es/floater_sell_land.xml b/indra/newview/skins/default/xui/es/floater_sell_land.xml
index d883683945..d883683945 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/es/floater_settings_debug.xml b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
index 1da2e491e1..1da2e491e1 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/es/floater_snapshot.xml b/indra/newview/skins/default/xui/es/floater_snapshot.xml
index 23078b3a55..23078b3a55 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/es/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/es/floater_sound_devices.xml b/indra/newview/skins/default/xui/es/floater_sound_devices.xml
index 0291f9e796..0291f9e796 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/es/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/es/floater_sound_preview.xml b/indra/newview/skins/default/xui/es/floater_sound_preview.xml
index 8b8d9f13ce..8b8d9f13ce 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/es/floater_spellcheck.xml b/indra/newview/skins/default/xui/es/floater_spellcheck.xml
index b664b96928..b664b96928 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/es/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/es/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/es/floater_spellcheck_import.xml
index bd86ed00da..bd86ed00da 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/es/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/es/floater_stats.xml b/indra/newview/skins/default/xui/es/floater_stats.xml
index 00601920f2..00601920f2 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_stats.xml
+++ b/indra/newview/skins/default/xui/es/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/es/floater_sys_well.xml b/indra/newview/skins/default/xui/es/floater_sys_well.xml
index 8c8190be55..8c8190be55 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/es/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/es/floater_telehub.xml b/indra/newview/skins/default/xui/es/floater_telehub.xml
index 87cc9c1659..87cc9c1659 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/es/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/es/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/es/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/es/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
index 93bc9f293c..01b024bc3e 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
@@ -20,7 +20,7 @@
<button label="Blanca" label_selected="Blanca" name="Blank"/>
<button label="Ninguna" label_selected="Ninguna" left="90" name="None"/>
<button label="" label_selected="" name="Pipette"/>
- <check_box initial_value="true" label="Vista previa inmediata" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Aplicarlo ahora" name="apply_immediate_check"/>
<text name="preview_disabled" value="Vista previa inhabilitada"/>
<filter_editor label="Filtrar las texturas" name="inventory search editor"/>
<check_box initial_value="false" label="Ver las carpetas" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
index 59aaf7f74a..59aaf7f74a 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index 15462c3726..15462c3726 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/es/floater_top_objects.xml b/indra/newview/skins/default/xui/es/floater_top_objects.xml
index bb53f116c2..bb53f116c2 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/es/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/es/floater_tos.xml b/indra/newview/skins/default/xui/es/floater_tos.xml
index 89092201d9..89092201d9 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_tos.xml
+++ b/indra/newview/skins/default/xui/es/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/es/floater_toybox.xml b/indra/newview/skins/default/xui/es/floater_toybox.xml
index 7275b0546b..7275b0546b 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/es/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/es/floater_translation_settings.xml b/indra/newview/skins/default/xui/es/floater_translation_settings.xml
index 765c9a05a2..765c9a05a2 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/es/floater_url_entry.xml b/indra/newview/skins/default/xui/es/floater_url_entry.xml
index f7c85ff068..f7c85ff068 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/es/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/es/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/es/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..1115d67239
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="VOLUMEN DE CHAT DE VOZ">
+ <slider label="Chat de voz" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_voice_controls.xml b/indra/newview/skins/default/xui/es/floater_voice_controls.xml
index eff21239be..eff21239be 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/es/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/es/floater_voice_effect.xml b/indra/newview/skins/default/xui/es/floater_voice_effect.xml
index 1a265845af..02ebe80ff7 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/es/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Lugares" name="voice_effects" title="TRANSFORMACIÓN DE VOZ">
+<floater label="Lugares" name="voice_effects" title="PROBAR TRANSFORMACIÓN DE VOZ">
<string name="no_voice_effect">
(Sin transformación de voz)
</string>
diff --git a/indra/newview/skins/default/xui/es/floater_voice_volume.xml b/indra/newview/skins/default/xui/es/floater_voice_volume.xml
new file mode 100644
index 0000000000..0ebc511887
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="VOLUMEN DE VOZ">
+ <slider name="volume_slider" tool_tip="Volumen de la voz" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_web_content.xml b/indra/newview/skins/default/xui/es/floater_web_content.xml
index 5e02fad2dd..5e02fad2dd 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/es/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/es/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/es/floater_whitelist_entry.xml
index 7dc47ca367..7dc47ca367 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/es/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/es/floater_window_size.xml b/indra/newview/skins/default/xui/es/floater_window_size.xml
index 6c1ad02319..6c1ad02319 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/es/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml
index acc63e52a0..acc63e52a0 100644..100755
--- a/indra/newview/skins/default/xui/es/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/es/inspect_avatar.xml b/indra/newview/skins/default/xui/es/inspect_avatar.xml
index 1d70fa6a90..1d70fa6a90 100644..100755
--- a/indra/newview/skins/default/xui/es/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/es/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/es/inspect_group.xml b/indra/newview/skins/default/xui/es/inspect_group.xml
index ba10b19f41..ba10b19f41 100644..100755
--- a/indra/newview/skins/default/xui/es/inspect_group.xml
+++ b/indra/newview/skins/default/xui/es/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/es/inspect_object.xml b/indra/newview/skins/default/xui/es/inspect_object.xml
index d608b4a0f7..d608b4a0f7 100644..100755
--- a/indra/newview/skins/default/xui/es/inspect_object.xml
+++ b/indra/newview/skins/default/xui/es/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/es/inspect_remote_object.xml b/indra/newview/skins/default/xui/es/inspect_remote_object.xml
index f814e84a6f..f814e84a6f 100644..100755
--- a/indra/newview/skins/default/xui/es/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/es/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/es/language_settings.xml b/indra/newview/skins/default/xui/es/language_settings.xml
index 997293a741..997293a741 100644..100755
--- a/indra/newview/skins/default/xui/es/language_settings.xml
+++ b/indra/newview/skins/default/xui/es/language_settings.xml
diff --git a/indra/newview/skins/default/xui/es/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/es/menu_add_wearable_gear.xml
index f2367c72a3..f2367c72a3 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_attachment_other.xml b/indra/newview/skins/default/xui/es/menu_attachment_other.xml
index 00bdb74881..00bdb74881 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/es/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/es/menu_attachment_self.xml b/indra/newview/skins/default/xui/es/menu_attachment_self.xml
index 0ba39378bb..0ba39378bb 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
index fe7331a108..fe7331a108 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_other.xml b/indra/newview/skins/default/xui/es/menu_avatar_other.xml
index 7df2d7c4e0..7df2d7c4e0 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_self.xml b/indra/newview/skins/default/xui/es/menu_avatar_self.xml
index 268d6f70ab..268d6f70ab 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/es/menu_cof_attachment.xml b/indra/newview/skins/default/xui/es/menu_cof_attachment.xml
index 7541530601..7541530601 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/es/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/es/menu_cof_body_part.xml b/indra/newview/skins/default/xui/es/menu_cof_body_part.xml
index 56b95bdc3b..56b95bdc3b 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/es/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/es/menu_cof_clothing.xml b/indra/newview/skins/default/xui/es/menu_cof_clothing.xml
index 3c0c588284..3c0c588284 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/es/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/es/menu_cof_gear.xml b/indra/newview/skins/default/xui/es/menu_cof_gear.xml
index ff8ad0977a..a889992b8a 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="Ropas nuevas" name="COF.Gear.New_Clothes"/>
- <menu label="Nuevas partes del cuerpo" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="Nuevas partes del cuerpo" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_conversation.xml b/indra/newview/skins/default/xui/es/menu_conversation.xml
new file mode 100644
index 0000000000..e4e9a0bf63
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Cerrar conversación" name="close_conversation"/>
+ <menu_item_call label="Abrir conversación de voz" name="open_voice_conversation"/>
+ <menu_item_call label="Desconectar de voz" name="disconnect_from_voice"/>
+ <menu_item_call label="Ver el perfil" name="view_profile"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Ofrecer teleporte" name="offer_teleport"/>
+ <menu_item_call label="Llamada de voz" name="voice_call"/>
+ <menu_item_call label="Historial del chat..." name="chat_history"/>
+ <menu_item_call label="Añadir como amigo" name="add_friend"/>
+ <menu_item_call label="Quitarle como amigo" name="remove_friend"/>
+ <menu_item_call label="Quitar amigos" name="remove_friends"/>
+ <menu_item_call label="Invitar al grupo..." name="invite_to_group"/>
+ <menu_item_call label="Acercar el zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartir" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_check label="Ignorar la voz" name="block_unblock"/>
+ <menu_item_check label="Ignorar el texto" name="MuteText"/>
+ <menu_item_call label="Perfil del grupo" name="group_profile"/>
+ <menu_item_call label="Activar el grupo" name="activate_group"/>
+ <menu_item_call label="Abandonar el grupo" name="leave_group"/>
+ <context_menu label="Opciones del moderador" name="Moderator Options">
+ <menu_item_check label="Permitir el chat de texto" name="AllowTextChat"/>
+ <menu_item_call label="Ignorar a este participante" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Quitar el silencio a este participante" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Silenciar a todos" name="ModerateVoiceMute"/>
+ <menu_item_call label="Quitar el silencio a todos" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/es/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..090e6fb0bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="MI..." name="IM"/>
+ <menu_item_call label="Llamada de voz..." name="Call"/>
+ <menu_item_call label="Abrir el historial de chat..." name="Chat history"/>
+ <menu_item_call label="Ver el perfil" name="View Profile"/>
+ <menu_item_call label="Ofrecer teleporte" name="teleport"/>
+ <menu_item_call label="Añadir como amigo" name="add_friend"/>
+ <menu_item_call label="Quitarle como amigo" name="remove_friend"/>
+ <menu_item_call label="Invitar al grupo..." name="Invite"/>
+ <menu_item_call label="Mapa" name="Map"/>
+ <menu_item_call label="Compartir" name="Share"/>
+ <menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Ignorar / No ignorar" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/es/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..b8b4616b2d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Ordenar alfabéticamente" name="sort_by_name"/>
+ <menu_item_check label="Ordenar por fecha" name="sort_by_date"/>
+ <menu_item_check label="Ordenar con los amigos al principio" name="sort_by_friends"/>
+ <menu_item_call label="Ver el historial de chat..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_edit.xml b/indra/newview/skins/default/xui/es/menu_edit.xml
index 96fc9d8881..96fc9d8881 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_edit.xml
+++ b/indra/newview/skins/default/xui/es/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/es/menu_favorites.xml b/indra/newview/skins/default/xui/es/menu_favorites.xml
index 85210d5c49..85210d5c49 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/es/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/es/menu_gesture_gear.xml b/indra/newview/skins/default/xui/es/menu_gesture_gear.xml
index 24706eb2c8..24706eb2c8 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_group_plus.xml b/indra/newview/skins/default/xui/es/menu_group_plus.xml
index 6b26ba42c4..6b26ba42c4 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/es/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
index 9945908c4f..9945908c4f 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/es/menu_im_conversation.xml b/indra/newview/skins/default/xui/es/menu_im_conversation.xml
new file mode 100644
index 0000000000..5ba0fb898e
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Ver el perfil" name="View Profile"/>
+ <menu_item_call label="Añadir como amigo" name="Add Friend"/>
+ <menu_item_call label="Quitarle como amigo" name="remove_friend"/>
+ <menu_item_call label="Ofrecer teleporte" name="offer_teleport"/>
+ <menu_item_call label="Invitar al grupo..." name="invite_to_group"/>
+ <menu_item_call label="Historial del chat..." name="chat_history"/>
+ <menu_item_call label="Acercar el zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartir" name="Share"/>
+ <menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Ignorar la voz" name="Block/Unblock"/>
+ <menu_item_check label="Ignorar el texto" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/es/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..6ea970b826
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Vista compacta" name="compact_view"/>
+ <menu_item_check label="Vista ampliada" name="expanded_view"/>
+ <menu_item_check label="Mostrar tiempo" name="IMShowTime"/>
+ <menu_item_check label="Mostrar los nombres en las conversaciones individuales" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/es/menu_imchiclet_adhoc.xml
index e11e9bdc58..e11e9bdc58 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/es/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/es/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/es/menu_imchiclet_group.xml
index a5e60ea40b..a5e60ea40b 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/es/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/es/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/es/menu_imchiclet_p2p.xml
index 492801026c..492801026c 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/es/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
index 82fc8ddd39..82fc8ddd39 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_object_gear.xml
index 9d0a8c50ef..9d0a8c50ef 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
index 29ad718fdd..29ad718fdd 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml
index 20d99afde1..20d99afde1 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 803d3f1331..803d3f1331 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inventory_add.xml b/indra/newview/skins/default/xui/es/menu_inventory_add.xml
index f17cfe4ceb..f17cfe4ceb 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml
index 0e9644629e..0e9644629e 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/es/menu_land.xml b/indra/newview/skins/default/xui/es/menu_land.xml
index b0f15be1b6..b0f15be1b6 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_land.xml
+++ b/indra/newview/skins/default/xui/es/menu_land.xml
diff --git a/indra/newview/skins/default/xui/es/menu_landmark.xml b/indra/newview/skins/default/xui/es/menu_landmark.xml
index f69b1539b8..f69b1539b8 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/es/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml
index 289ac3f075..289ac3f075 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_login.xml
+++ b/indra/newview/skins/default/xui/es/menu_login.xml
diff --git a/indra/newview/skins/default/xui/es/menu_media_ctrl.xml b/indra/newview/skins/default/xui/es/menu_media_ctrl.xml
index b4dfe9907a..b4dfe9907a 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/es/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/es/menu_mini_map.xml b/indra/newview/skins/default/xui/es/menu_mini_map.xml
index 07d1b08572..07d1b08572 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/es/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml
index 0d4f1314c9..0d4f1314c9 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/es/menu_navbar.xml b/indra/newview/skins/default/xui/es/menu_navbar.xml
index 63e5468020..63e5468020 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/es/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/es/menu_nearby_chat.xml b/indra/newview/skins/default/xui/es/menu_nearby_chat.xml
index 94b281b6c7..94b281b6c7 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/es/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/es/menu_notification_well_button.xml b/indra/newview/skins/default/xui/es/menu_notification_well_button.xml
index 0562d35be7..0562d35be7 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/es/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/es/menu_object.xml b/indra/newview/skins/default/xui/es/menu_object.xml
index 33ea8c88d8..33ea8c88d8 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_object.xml
+++ b/indra/newview/skins/default/xui/es/menu_object.xml
diff --git a/indra/newview/skins/default/xui/es/menu_object_icon.xml b/indra/newview/skins/default/xui/es/menu_object_icon.xml
index 7e4578b950..a99c889bb0 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/es/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Perfil del objeto..." name="Object Profile"/>
<menu_item_call label="Ignorar..." name="Block"/>
+ <menu_item_call label="Mostrar en el mapa" name="show_on_map"/>
+ <menu_item_call label="Teleportarse a la posición del objeto" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_outfit_gear.xml b/indra/newview/skins/default/xui/es/menu_outfit_gear.xml
index 558ff6afd3..56e64c729f 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Pelo nuevo" name="New Hair"/>
<menu_item_call label="Ojos nuevos" name="New Eyes"/>
</menu>
+ <menu_item_call label="Abrir todas las carpetas" name="expand"/>
+ <menu_item_call label="Cerrar todas las carpetas" name="collapse"/>
<menu_item_call label="Renombrar el vestuario" name="rename"/>
<menu_item_call label="Borrar el vestuario" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_outfit_tab.xml b/indra/newview/skins/default/xui/es/menu_outfit_tab.xml
index 4136082a62..4136082a62 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/es/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/es/menu_participant_list.xml b/indra/newview/skins/default/xui/es/menu_participant_list.xml
index f6eedd1170..f6eedd1170 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/es/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/es/menu_participant_view.xml b/indra/newview/skins/default/xui/es/menu_participant_view.xml
new file mode 100644
index 0000000000..fcfeeb922b
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Ordenar las conversaciones por tipo" name="sort_sessions_by_type"/>
+ <menu_item_check label="Ordenar las conversaciones por nombre" name="sort_sessions_by_name"/>
+ <menu_item_check label="Ordenar las conversaciones por actividad reciente" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Ordenar los participantes por nombre" name="sort_participants_by_name"/>
+ <menu_item_check label="Ordenar los participantes por actividad reciente" name="sort_participants_by_recent"/>
+ <menu_item_call label="Preferencias de chat..." name="chat_preferences"/>
+ <menu_item_call label="Preferencias de privacidad..." name="privacy_preferences"/>
+ <menu_item_check label="Registro de conversaciones..." name="Conversation"/>
+ <menu_item_check label="Traducir el chat" name="Translate_chat"/>
+ <menu_item_check label="Configuración de traducción..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/es/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..986389a4fe
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="No ignorar" name="unblock"/>
+ <menu_item_call label="Perfil..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/es/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..10f6a3fc14
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Ignorar residentes según el nombre..." name="block_resident_by_name"/>
+ <menu_item_call label="Ignorar objetos según el nombre" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/es/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..bc557c7ec1
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Ordenar alfabéticamente" name="sort_by_name"/>
+ <menu_item_check label="Ordenar por tipo" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_friends_view.xml b/indra/newview/skins/default/xui/es/menu_people_friends_view.xml
new file mode 100644
index 0000000000..ad896c1b74
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/>
+ <menu_item_check label="Ordenar por estatus" name="sort_status"/>
+ <menu_item_check label="Ver los iconos de la gente" name="view_icons"/>
+ <menu_item_check label="Ver permisos concedidos" name="view_permissions"/>
+ <menu_item_check label="Ver el registro de conversaciones..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml
index 3899ad9e96..3899ad9e96 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/es/menu_people_groups.xml b/indra/newview/skins/default/xui/es/menu_people_groups.xml
index 51bd2c7208..125e25cd1a 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Ver la información" name="View Info"/>
<menu_item_call label="Chat" name="Chat"/>
- <menu_item_call label="Llamar" name="Call"/>
+ <menu_item_call label="Llamada de voz" name="Call"/>
<menu_item_call label="Activar" name="Activate"/>
<menu_item_call label="Dejar" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_groups_view.xml b/indra/newview/skins/default/xui/es/menu_people_groups_view.xml
new file mode 100644
index 0000000000..c3973625b0
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Mostrar los iconos de grupo" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml
index 1bd3efb611..1bd3efb611 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby.xml b/indra/newview/skins/default/xui/es/menu_people_nearby.xml
index dc1486d879..09bb119d5a 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Ver el perfil" name="View Profile"/>
- <menu_item_call label="Añadir como amigo" name="Add Friend"/>
- <menu_item_call label="Quitarle como amigo" name="Remove Friend"/>
- <menu_item_call label="MI" name="IM"/>
- <menu_item_call label="Llamar" name="Call"/>
- <menu_item_call label="Mapa" name="Map"/>
- <menu_item_call label="Compartir" name="Share"/>
- <menu_item_call label="Pagar" name="Pay"/>
- <menu_item_check label="Ignorar / No ignorar" name="Block/Unblock"/>
- <menu_item_call label="Ofrecer teleporte" name="teleport"/>
+ <menu_item_call label="Ver el perfil" name="view_profile"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Ofrecer teleporte" name="offer_teleport"/>
+ <menu_item_call label="Llamada de voz" name="voice_call"/>
+ <menu_item_call label="Ver el historial de chat..." name="chat_history"/>
+ <menu_item_call label="Añadir como amigo" name="add_friend"/>
+ <menu_item_call label="Quitarle como amigo" name="remove_friend"/>
+ <menu_item_call label="Invitar al grupo..." name="invite_to_group"/>
+ <menu_item_call label="Acercar el zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartir" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_check label="Ignorar / No ignorar" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml
index 227c5ebe58..9df160f5ad 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Añadir como amigos" name="Add Friends"/>
- <menu_item_call label="Quitar amigos" name="Remove Friend"/>
- <menu_item_call label="MI" name="IM"/>
- <menu_item_call label="Llamar" name="Call"/>
- <menu_item_call label="Compartir" name="Share"/>
- <menu_item_call label="Pagar" name="Pay"/>
- <menu_item_call label="Ofrecer teleporte" name="teleport"/>
+ <menu_item_call label="Añadir como amigos" name="add_friends"/>
+ <menu_item_call label="Quitar amigos" name="remove_friends"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Visita" name="call"/>
+ <menu_item_call label="Compartir" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_call label="Ofrecer teleporte" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/es/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..c2fb360dd1
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar según las intervenciones recientes" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/>
+ <menu_item_check label="Ordenar según distancia" name="sort_distance"/>
+ <menu_item_check label="Ver los iconos de la gente" name="view_icons"/>
+ <menu_item_check label="Ver mapa" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml
index 1403e4db01..1403e4db01 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/es/menu_people_recent_view.xml b/indra/newview/skins/default/xui/es/menu_people_recent_view.xml
new file mode 100644
index 0000000000..f0ffd14024
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar por más reciente" name="sort_most"/>
+ <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/>
+ <menu_item_check label="Ver los iconos de la gente" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml
index e4aaa89110..e4aaa89110 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/es/menu_picks.xml b/indra/newview/skins/default/xui/es/menu_picks.xml
index 9da68d7c9b..9da68d7c9b 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_picks.xml
+++ b/indra/newview/skins/default/xui/es/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/es/menu_picks_plus.xml b/indra/newview/skins/default/xui/es/menu_picks_plus.xml
index cc59bf1d29..cc59bf1d29 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/es/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/es/menu_place.xml b/indra/newview/skins/default/xui/es/menu_place.xml
index 675f0699e9..675f0699e9 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_place.xml
+++ b/indra/newview/skins/default/xui/es/menu_place.xml
diff --git a/indra/newview/skins/default/xui/es/menu_place_add_button.xml b/indra/newview/skins/default/xui/es/menu_place_add_button.xml
index 4b2f908a06..4b2f908a06 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/es/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/es/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/es/menu_places_gear_folder.xml
index 4051ff4075..4051ff4075 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/es/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/es/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/es/menu_places_gear_landmark.xml
index c92bd19787..c92bd19787 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/es/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/es/menu_profile_overflow.xml b/indra/newview/skins/default/xui/es/menu_profile_overflow.xml
index 5ee8c50949..5ee8c50949 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/es/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/es/menu_save_outfit.xml b/indra/newview/skins/default/xui/es/menu_save_outfit.xml
index a04ec75b60..a04ec75b60 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/es/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/es/menu_script_chiclet.xml b/indra/newview/skins/default/xui/es/menu_script_chiclet.xml
index f517baf566..f517baf566 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/es/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/es/menu_slurl.xml b/indra/newview/skins/default/xui/es/menu_slurl.xml
index ca19acec6e..ca19acec6e 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/es/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/es/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/es/menu_teleport_history_gear.xml
index b708f3bc20..b708f3bc20 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
index c482907812..c482907812 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/es/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/es/menu_teleport_history_tab.xml
index 17e90422a5..17e90422a5 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/es/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/es/menu_text_editor.xml b/indra/newview/skins/default/xui/es/menu_text_editor.xml
index 6253463725..6253463725 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/es/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/es/menu_toolbars.xml b/indra/newview/skins/default/xui/es/menu_toolbars.xml
index 63f3dc43bd..63f3dc43bd 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/es/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/es/menu_topinfobar.xml b/indra/newview/skins/default/xui/es/menu_topinfobar.xml
index 2125fd51b2..2125fd51b2 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/es/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_agent.xml b/indra/newview/skins/default/xui/es/menu_url_agent.xml
index a089c8f68e..69a03671ab 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostrar el perfil del Residente" name="show_agent"/>
+ <menu_item_call label="Ver el perfil" name="show_agent"/>
+ <menu_item_call label="Enviar un MI..." name="send_im"/>
+ <menu_item_call label="Añadir como amigo..." name="add_friend"/>
<menu_item_call label="Copiar el nombre al portapapeles" name="url_copy_label"/>
<menu_item_call label="Copiar la SLurl al portapapeles" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_url_group.xml b/indra/newview/skins/default/xui/es/menu_url_group.xml
index 79374b9739..79374b9739 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_http.xml b/indra/newview/skins/default/xui/es/menu_url_http.xml
index 585c059ff3..585c059ff3 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_inventory.xml b/indra/newview/skins/default/xui/es/menu_url_inventory.xml
index 13a8711c76..13a8711c76 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_map.xml b/indra/newview/skins/default/xui/es/menu_url_map.xml
index f96a0c7170..f96a0c7170 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_objectim.xml b/indra/newview/skins/default/xui/es/menu_url_objectim.xml
index 8791a290af..e78fdec558 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostrar la información del objeto" name="show_object"/>
+ <menu_item_call label="Perfil del objeto..." name="show_object"/>
<menu_item_call label="Mostrar en el mapa" name="show_on_map"/>
<menu_item_call label="Teleportarse a la posición del objeto" name="teleport_to_object"/>
<menu_item_call label="Copiar el nombre del objeto al portapapeles" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/es/menu_url_parcel.xml b/indra/newview/skins/default/xui/es/menu_url_parcel.xml
index 9e789ef8ee..9e789ef8ee 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_slapp.xml b/indra/newview/skins/default/xui/es/menu_url_slapp.xml
index 7147dcd3cf..7147dcd3cf 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_slurl.xml b/indra/newview/skins/default/xui/es/menu_url_slurl.xml
index 4ab47c2f61..4ab47c2f61 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/es/menu_url_teleport.xml b/indra/newview/skins/default/xui/es/menu_url_teleport.xml
index 8f86a91be3..8f86a91be3 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/es/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index d80150ef6d..30842f53f2 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Parar mis animaciones" name="Stop Animating My Avatar"/>
<menu_item_call label="Caminar / Correr / Volar..." name="Walk / run / fly"/>
</menu>
- <menu label="Estado" name="Status">
- <menu_item_call label="Ausente" name="Set Away"/>
- <menu_item_call label="Ocupado" name="Set Busy"/>
- </menu>
+ <menu label="Estado" name="Status"/>
<menu_item_call label="Comprar L$..." name="Buy and Sell L$"/>
<menu_item_call label="Panel de control de la cuenta..." name="Manage My Account">
<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=es"/>
@@ -31,14 +28,18 @@
<menu_item_call label="Salir de [APP_NAME]" name="Quit"/>
</menu>
<menu label="Comunicarme" name="Communicate">
+ <menu_item_check label="Conversaciones..." name="Conversations"/>
<menu_item_check label="Chat..." name="Nearby Chat"/>
<menu_item_check label="Hablar" name="Speak"/>
- <menu_item_check label="Configuración de voz..." name="Nearby Voice"/>
- <menu_item_check label="Transformación de voz..." name="ShowVoice"/>
+ <menu label="Transformación de voz" name="VoiceMorphing">
+ <menu_item_check label="Sin transformación de voz" name="NoVoiceMorphing"/>
+ <menu_item_check label="Probar..." name="Preview"/>
+ <menu_item_call label="Suscribir..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Gestos..." name="Gestures"/>
- <menu_item_call label="Amigos" name="My Friends"/>
- <menu_item_call label="Grupos" name="My Groups"/>
- <menu_item_call label="Gente cerca" name="Active Speakers"/>
+ <menu_item_check label="Amigos" name="My Friends"/>
+ <menu_item_check label="Grupos" name="My Groups"/>
+ <menu_item_check label="Gente cerca" name="Active Speakers"/>
<menu_item_call label="Lista de ignorados" name="Block List"/>
</menu>
<menu label="Mundo" name="World">
@@ -114,7 +115,6 @@
<menu_item_call label="Comprar" name="Menu Object Buy"/>
<menu_item_call label="Tomar" name="Menu Object Take"/>
<menu_item_call label="Coger una copia" name="Take Copy"/>
- <menu_item_call label="Guardar una copia en mi inventario" name="Save Object Back to My Inventory"/>
<menu_item_call label="Guardar una copia del objeto en los contenidos de donde salió" name="Save Object Back to Object Contents"/>
<menu_item_call label="Devolver objeto" name="Return Object back to Owner"/>
</menu>
@@ -129,6 +129,7 @@
<menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Personajes..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Ver/probar..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Recargar la región" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Opciones" name="Options">
<menu_item_check label="Mostrar los permisos avanzados" name="DebugPermissions"/>
@@ -158,6 +159,13 @@
<menu label="Ayuda" name="Help">
<menu_item_call label="Cómo..." name="How To"/>
<menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Guía del usuario" name="User’s guide"/>
+ <menu_item_call label="Base de Conocimientos" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Foros comunitarios" name="Community Forums"/>
+ <menu_item_call label="Portal de soporte" name="Support portal"/>
+ <menu_item_call label="Noticias de [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs de [SECOND_LIFE]" name="Second Life Blogs"/>
<menu_item_call label="Denunciar una infracción" name="Report Abuse"/>
<menu_item_call label="Informar de un fallo" name="Report Bug"/>
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
@@ -335,9 +343,14 @@
<menu_item_call label="Toggle Character Geometry" name="Toggle Character Geometry"/>
<menu_item_check label="Allow Select Avatar" name="Allow Select Avatar"/>
</menu>
+ <menu label="Velocidad de animación" name="Animation Speed">
+ <menu_item_call label="Acelerar todas las animaciones un 10%" name="All Animations 10 Faster"/>
+ <menu_item_call label="Ralentizar todas las animaciones un 10%" name="All Animations 10 Slower"/>
+ <menu_item_call label="Restablecer la velocidad de todas las animaciones" name="Reset All Animation Speed"/>
+ <menu_item_check label="Animaciones a cámara lenta" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Force Params to Default" name="Force Params to Default"/>
<menu_item_check label="Animation Info" name="Animation Info"/>
- <menu_item_check label="Slow Motion Animations" name="Slow Motion Animations"/>
<menu_item_check label="Disable Level Of Detail" name="Disable LOD"/>
<menu_item_check label="Show Collision Skeleton" name="Show Collision Skeleton"/>
<menu_item_check label="Display Agent Target" name="Display Agent Target"/>
diff --git a/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml
index 4bffa689e7..4bffa689e7 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/es/menu_wearing_gear.xml b/indra/newview/skins/default/xui/es/menu_wearing_gear.xml
index ec13f99a01..ec13f99a01 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/es/menu_wearing_tab.xml b/indra/newview/skins/default/xui/es/menu_wearing_tab.xml
index 64fd7ce4cf..64fd7ce4cf 100644..100755
--- a/indra/newview/skins/default/xui/es/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/es/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/es/mime_types.xml b/indra/newview/skins/default/xui/es/mime_types.xml
index 85ff4cfb48..85ff4cfb48 100644..100755
--- a/indra/newview/skins/default/xui/es/mime_types.xml
+++ b/indra/newview/skins/default/xui/es/mime_types.xml
diff --git a/indra/newview/skins/default/xui/es/mime_types_linux.xml b/indra/newview/skins/default/xui/es/mime_types_linux.xml
index 77d05934f4..77d05934f4 100644..100755
--- a/indra/newview/skins/default/xui/es/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/es/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/es/mime_types_mac.xml b/indra/newview/skins/default/xui/es/mime_types_mac.xml
index 77d05934f4..77d05934f4 100644..100755
--- a/indra/newview/skins/default/xui/es/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/es/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 7dfb27717d..05455f54c3 100644..100755
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -511,6 +511,24 @@ El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&
</url>
<usetemplate ignoretext="Mi controlador de gráficos no está actualizado" name="okcancelignore" notext="No" yestext="Sí"/>
</notification>
+ <notification name="AMDOldDriver">
+ Probablemente ya existe un controlador más reciente para tu procesador de gráficos. La actualización del controlador de gráficos puede mejorar sustancialmente el rendimiento.
+
+ ¿Deseas visitar [_URL] para comprobar si hay controladores actualizados?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Mi controlador de gráficos no está actualizado" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Probablemente ya existe un controlador más reciente para tu procesador de gráficos. La actualización del controlador de gráficos puede mejorar sustancialmente el rendimiento.
+
+ ¿Deseas visitar [_URL] para comprobar si hay controladores actualizados?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=es
+ </url>
+ <usetemplate ignoretext="Mi controlador de gráficos no está actualizado" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
<notification name="UnknownGPU">
Tu sistema usa una tarjeta gráfica que [APP_NAME] no reconoce.
Suele suceder con hardware nuevo que todavía no ha sido probado con [APP_NAME]. Probablemente todo irá bien, pero deberás ajustar tus configuraciones gráficas.
@@ -1553,10 +1571,13 @@ Debemos reiniciar [APP_NAME] para instalar la actualización.
En este momento, no se puede ofrecer el ser amigo. Por favor, vuelve a intentarlo en un momento.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- Pasar al modo ocupado.
-Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respuesta en el modo ocupado). Se rehusarán todos los ofrecimientos de teleporte. Todas las ofertas de inventario irán a tu Papelera.
- <usetemplate ignoretext="Cambio mi estado al modo ocupado" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Está activado No molestar. No obtendrás un aviso cuando recibas comunicaciones.
+
+- Los otros residentes recibirán tu respuesta de No molestar (se configura en Preferencias &gt; General).
+- Se rehusarán los ofrecimientos de teleporte.
+- Se rechazarán las llamadas de voz.
+ <usetemplate ignoretext="Cambio mi estado al modo No molestar" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Has superado tu número máximo de grupos. Por favor, sal de al menos uno antes de entrar en éste, o rehúsa la oferta.
@@ -2043,6 +2064,10 @@ Dado que estos objetos tienen scripts, moverlos a tu inventario puede provocar u
¿Ir a tu [http://secondlife.com/account/ Panel de Control] para ver el historial de tu cuenta?
<usetemplate ignoretext="Abrir mi navegador para ver el historial de mi cuenta" name="okcancelignore" notext="Cancelar" yestext="Ir a la página"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Si agregas una persona a una conversación en curso, se creará una conversación nueva. Todos los participantes recibirán notificaciones de la nueva conversación.
+ <usetemplate ignoretext="Confirmar agregar participantes al chat" name="okcancelignore" notext="Cancelar" yestext="Aceptar"/>
+ </notification>
<notification name="ConfirmQuit">
¿Estás seguro de que quieres salir?
<usetemplate ignoretext="Confirmar antes de salir" name="okcancelignore" notext="No salir" yestext="Salir"/>
@@ -2116,14 +2141,14 @@ Linden Lab
<button ignore="Nunca reemplazar" name="No" text="Cancelar"/>
</form>
</notification>
- <notification label="¡Aviso! Modo Ocupado" name="BusyModePay">
- Estás en el modo Ocupado. Por tanto, no recibirás ningún ítem a cambio de este pago.
+ <notification label="Advertencia del modo No molestar" name="DoNotDisturbModePay">
+ Tienes activado No molestar. No podrás recibir ningún objeto ofrecido a cambio de este pago.
-¿Quieres salir del modo Ocupado antes de completar esta transacción?
+¿Deseas desactivar No molestar antes de finalizar esta transacción?
<form name="form">
- <ignore name="ignore" save_option="true" text="Voy a pagar a una persona u objeto mientras estoy en el modo ocupado"/>
- <button ignore="Siempre salir del modo Ocupado" name="Yes" text="OK"/>
- <button ignore="Nunca salir del modo Ocupado" name="No" text="Cancelar"/>
+ <ignore name="ignore" text="Voy a pagar a una persona u objeto mientras estoy en el modo No molestar"/>
+ <button ignore="Salir siempre del modo No molestar" name="Yes" text="OK"/>
+ <button ignore="No salir nunca del modo No molestar" name="No" text="Cancelar"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2258,11 +2283,8 @@ Publícala en una página web para que otros puedan acceder fácilmente a esta p
<notification name="GroupNotice">
Asunto: [SUBJECT], Mensaje: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; está conectado
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; está desconectado
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; está [STATUS]
</notification>
<notification name="AddSelfFriend">
Aunque eres muy agradable, no puedes añadirte como amigo a ti mismo.
@@ -2490,13 +2512,6 @@ Aquí no puedes volar.
<notification name="DynamicPathfindingDisabled">
Esta región no tiene activado el pathfinding dinámico. Los objetos programados que utilicen llamadas LSL de pathfinding pueden tener un comportamiento inesperado en ella.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- Si cambias ciertos objetos en esta región, otros objetos móviles podrían tener un comportamiento incorrecto. Para que los objetos móviles se comporten correctamente, pulsa el botón “Recargar la región”. Si quieres más información, elige “Ayuda”.
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Ayuda" ignoretext="Si cambias ciertos objetos en esta región, otros objetos móviles podrían tener un comportamiento incorrecto." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Se ha producido un error. Puede haber ocurrido un problema en la red o el servidor, o quizás no tengas derechos de construcción. Este problema podría resolverse cerrando la sesión e iniciando una sesión nueva.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2757,9 +2772,9 @@ Del objeto: &lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;, propietario: [NAME]?
</form>
</notification>
<notification name="ScriptQuestionCaution">
- Atención: El objeto &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; solicita un acceso total a tu cuenta de dólares Linden. Si le autorizas el acceso, podrá retirar fondos de tu cuenta en cualquier momento o vaciarla por completo, de manera permanente y sin más advertencias.
+ Atención: El objeto &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; solicita un acceso pleno a tu cuenta de dólares Linden. Si le autorizas el acceso, podrá retirar fondos de tu cuenta en cualquier momento o vaciarla por completo, cuando lo desee y sin más advertencias.
-Estas solicitudes pocas veces son legítimas. No autorices el acceso si no conoces la razón exacta por la que desea el acceso a tu cuenta.
+No autorices el acceso a tu cuenta si no conoces cuál es la razón exacta.
<form name="form">
<button name="Grant" text="Permitir acceso total"/>
<button name="Deny" text="Denegar"/>
@@ -3331,4 +3346,633 @@ Intento cancelado.
Vas a eliminar [NUM_ITEMS] objetos. ¿Estás seguro de que deseas continuar?
<usetemplate ignoretext="¿Estás seguro de que quieres eliminar varios elementos?" name="okcancelignore" notext="No" yestext="Sí"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] te ha congelado. No puedes moverte ni interactuar con el mundo.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] te ha congelado durante [AV_FREEZE_TIME] segundos. No puedes moverte ni interactuar con el mundo.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar congelado.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] te ha descongelado.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar descongelado.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ Error al congelar: no tienes permisos de administrador en esa parcela.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ La congelación ha terminado, puedes seguir con tus asuntos.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Lo sentimos, ese usuario no se puede congelar.
+ </notification>
+ <notification name="NowOwnObject">
+ Ahora eres el propietario del objeto [OBJECT_NAME]
+ </notification>
+ <notification name="CantRezOnLand">
+ No se puede colocar el objeto en [OBJECT_POS] porque el propietario de ese terreno no lo permite. Usa la herramienta de terreno para ver quién es el propietario.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ El objeto no se puede colocar porque hay demasiadas solicitudes.
+ </notification>
+ <notification name="SitFailCantMove">
+ No te puedes sentar porque en este momento no puedes desplazarte.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ No te puedes sentar porque no tienes permiso para estar en ese terreno.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Acércate. No te puedes sentar en el objeto porque
+no está en la misma región que tú.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ No se puede crear el nuevo objeto. La región está llena.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Error al colocar el objeto en el lugar especificado. Vuelve a intentarlo.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ No puedes crear árboles y hierba en un terreno que no es tuyo.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ Error al copiar: careces de permiso para copiar el objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ Error al copiar: no se te puede transferir el objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ Error al copiar porque el objeto &apos;[OBJ_NAME]&apos; contribuye al navmesh.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Duplicación sin objetos raíz seleccionados.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ No se pueden duplicar objetos porque la región está llena.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ No se pueden duplicar los objetos: no se encuentra la parcela en la que se hallan.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ No se puede crear el objeto porque
+la parcela está llena.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Error al intentar colocar un objeto.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ No se puede crear un objeto que ha causado problemas en esta región.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Ese objeto de inventario está en la lista negra.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Actualmente no tienes autorización para crear objetos.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Búsqueda de terrenos bloqueada.
+Has realizado demasiadas búsquedas de terreno con excesiva rapidez.
+Prueba otra vez dentro de un minuto.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ No hay suficientes recursos de script disponibles para anexar el objeto
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Has muerto y te has teleportado a tu lugar de origen
+ </notification>
+ <notification name="EjectComingSoon">
+ Te han expulsado de aquí y tienes [EJECT_TIME] segundos para salir.
+ </notification>
+ <notification name="NoEnterServerFull">
+ No puedes entrar en esta región porque
+el servidor está lleno.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Se ha deshabilitado Devolver el objeto a mi inventario.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ No se puede guardar &apos;[OBJ_NAME]&apos; en el contenido del objeto porque el objeto desde el cual ha sido colocado ya no existe.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ No se puede guardar &apos;[OBJ_NAME]&apos; en el contenido del objeto porque no tienes permiso para modificar el objeto &apos;[DEST_NAME]&apos;.
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ No se puede guardar &apos;[OBJ_NAME]&apos; de nuevo en el inventario; esta operación está desactivada.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ No se puede copiar tu selección porque no tienes permiso para copiar el objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ No se puede copiar tu selección porque el objeto &apos;[OBJ_NAME]&apos; es intransferible.
+ </notification>
+ <notification name="NoTransNoCopy">
+ No se puede copiar tu selección porque el objeto &apos;[OBJ_NAME]&apos; es intransferible.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ El sistema de permisos no admite la eliminación del objeto &apos;[OBJ_NAME]&apos; del simulador.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ No se puede guardar tu selección porque no tienes permiso para modificar el objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ No se puede guardar tu selección porque el objeto &apos;[OBJ_NAME]&apos; no se puede copiar.
+ </notification>
+ <notification name="NoModNoTaking">
+ No se puede aceptar tu selección porque no tienes permiso para modificar el objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="RezDestInternalError">
+ Error interno: tipo de destino desconocido.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Error al borrar: el objeto no se encuentra
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Lo sentimos, ese usuario no se puede expulsar.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Esta región no te permite configurar aquí tu lugar de origen.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Tu &apos;Lugar de origen&apos; solo se puede configurar en tu terreno o en un punto de información del continente.
+ </notification>
+ <notification name="HomePositionSet">
+ Posición de origen ajustada.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar expulsado.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ Error al expulsar: no tienes permiso de administrador en esa parcela.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] en la región [REGION_NAME] porque la parcela está llena.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] de la región [REGION_NAME] porque tus objetos no están permitidos en esta parcela.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] de la región [REGION_NAME] porque no hay suficientes recursos para este objeto en esta parcela.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] de la región [REGION_NAME] porque la otra región ejecuta una versión más antigua que no admite la recepción de este objeto atravesando regiones.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] en la región [REGION_NAME] porque no puedes modificar el navmesh a través de límites de región.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ No se puede mover el objeto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] en la región [REGION_NAME] por un motivo desconocido. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ No tienes permiso para modificar ese objeto
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ No se puede habilitar la física para un objeto que contribuye al navmesh.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ No se puede activar la física para los objetos con fotogramas clave.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ No se puede habilitar la física para el objeto: recursos de terreno insuficientes.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ No se puede activar la física para un objeto con un coste de recursos de física mayor que [MAX_OBJECTS]
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Este objeto no puede tener una pieza cóncava porque es inmaterial y contribuye al navmesh.
+ </notification>
+ <notification name="UnableAddItem">
+ ¡No se puede añadir un objeto!
+ </notification>
+ <notification name="UnableEditItem">
+ ¡No se puede editar esto!
+ </notification>
+ <notification name="NoPermToEdit">
+ No puedes editar esto.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ No está permitido copiar ese inventario.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ No se puede guardar en el contenido del objeto: el objeto ya no existe.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ No se puede guardar en el contenido del objeto: el inventario ya contiene un objeto con ese nombre
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ No se puede guardar en el contenido del objeto: se modificarían los permisos de anexo.
+ </notification>
+ <notification name="TooManyScripts">
+ Demasiados scripts.
+ </notification>
+ <notification name="UnableAddScript">
+ ¡No se puede añadir un script!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ El servidor de objetos no respondió puntualmente. El objeto se ha devuelto al sim.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ Esta región no tiene habilitadas las formas de física.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ No se puede modificar el navmesh a través de límites de región.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ No se pueden establecer propiedades de física en ese tipo de objeto.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ No se puede establecer que un prim raíz no tenga forma.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ Esta región no tiene habilitados los materiales de física.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Solo se pueden ajustar los materiales de física de las prims raíces.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ Aun no es posible configurar materiales de física para los personajes.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Una o varias de las propiedades de los materiales de física especificados no son válidas.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ No se puede cambiar el tipo de unión de un objeto de la malla.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ No se puede cambiar la forma de un objeto de la malla
+ </notification>
+ <notification name="FullRegionCantEnter">
+ No puedes entrar en esta región porque \nla región está llena.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Error de vínculo: los propietarios son diferentes
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Error de vínculo: no se puede modificar el navmesh a través de límites de región.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Error de vínculo: no tienes permiso de edición.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Error de vínculo: demasiadas primitivas
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Error de vínculo: no se pueden vincular &apos;no copiable&apos; y &apos;no transferible&apos;
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Error de vínculo: no hay objetos que se puedan vincular.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Error de vínculo: demasiados personajes de pathfinding
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Error de vínculo: recursos de terreno insuficientes
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ El objeto utiliza una cantidad excesiva de recursos de física; se ha desactivado su dinámica.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Has sido teleportado al origen por el objeto &apos;[OBJECT_NAME]&apos; de la parcela &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Has sido teleportado a tu origen por el objeto &apos;[OBJECT_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Has sido teleportado por un anexo de [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Has sido teleportado por el objeto &apos;[OBJECT_NAME]&apos; de la parcela &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Has sido teleportado por el objeto &apos;[OBJECT_NAME]&apos; que es propiedad de [OWNER_ID]
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Has sido teleportado por el objeto &apos;[OBJECT_NAME]&apos; cuyo propietario es un usuario desconocido.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ No se puede crear el objeto solicitado. La región está llena.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ No puedes anexar varios objetos a un solo lugar.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Aquí no se pueden crear varios objetos.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ No se puede crear el objeto solicitado. El objeto no se encuentra en la base de datos.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ No se puede crear el objeto solicitado. Ha expirado el tiempo de la solicitud. Vuelve a intentarlo.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ No se puede crear el objeto solicitado. Vuelve a intentarlo.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Error al colocar: la carga del objeto solicitado ha tardado demasiado.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Error al colocar el objeto en el lugar especificado. Vuelve a intentarlo.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ No se pueden crear plantas en este terreno.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ No se puede restaurar el objeto. No se ha encontrado una posición del mundo.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ No se puede colocar el objeto porque sus datos de malla no son válidos.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ No se puede colocar el objeto porque la región ya contiene demasiados scripts.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Tus privilegios de acceso no te permiten crear objetos allí.
+ </notification>
+ <notification name="CantCreateObject">
+ Actualmente no tienes autorización para crear objetos.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Los parámetros de objeto no son válidos
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Tus privilegios de acceso no te permiten duplicar objetos aquí.
+ </notification>
+ <notification name="CantChangeShape">
+ No tienes permiso para cambiar esta forma.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Tus privilegios de acceso no te permiten reclamar objetos aquí.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Error de transferencia: no tienes permiso para transferir objetos para tu grupo.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Tus privilegios de acceso no te autorizan a comprar objetos aquí.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ No se puede anexar el objeto porque un avatar está sentado en él.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ No te puedes poner árboles y hierba como anexos.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ No se pueden anexar objetos que son propiedad de grupos.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ No puedes anexar objetos de los que no eres propietario.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ No se pueden anexar objetos que contribuyen al navmesh.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ No se puede anexar el objeto porque no tienes permiso para moverlo.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ No hay suficientes recursos de script disponibles para anexar el objeto
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ No se pueden soltar objetos aquí; inténtalo en la zona de prueba gratuita.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ No se pueden soltar anexos de la malla. Quítalos en el inventario y después colócalos en el mundo.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Error al soltar el anexo: no tienes permiso para soltarlo allí.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Error al soltar el anexo: recurso de terreno disponible insuficiente.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Error al soltar los anexos: los recursos disponibles son insuficientes.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ No se puede soltar el objeto aquí. La parcela está llena.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ No puedes tocar/agarrar este objeto porque tienes prohibida la entrada en la parcela de terreno.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Acota los parámetros de eliminación.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ No se puede subir el activo.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ No se ha podido encontrar el usuario para teleportarlo al origen
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ error en la solicitud de superpoderes
+ </notification>
+ <notification name="GenericRequestFailed">
+ error de solicitud genérico
+ </notification>
+ <notification name="CantUploadPostcard">
+ No se puede subir la postal. Vuelve a intentarlo más tarde.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ No se pueden obtener los datos de inventario del aviso de grupo.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ No se puede enviar el aviso de grupo: no está permitido.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ No se puede enviar el aviso del grupo: el inventario no se puede construir.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ No se puede analizar el inventario del aviso.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Error al subir terreno.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Se ha registrado el archivo de terreno.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Archivo de terreno registrado, iniciando la descarga...
+ </notification>
+ <notification name="TerrainBaked">
+ Terreno predeterminado.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Solamente se han desactivado los 10 primeros objetos seleccionados. Si es preciso, actualiza y selecciona otros objetos.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Para comprar esta parcela debes actualizar el visor.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Error al comprar: esta parcela no está en venta.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ No se puede comprar: el precio de venta o la superficie del terreno han cambiado.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ No eres el comprador autorizado de esta parcela.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ No puedes comprar esta parcela porque ya está en espera de una autorización de compra
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ No se pueden construir objetos aquí porque se desbordaría la parcela.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Has seleccionado un terreno con propietarios diferentes. Selecciona un área más pequeña y repite la operación.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ La selección no contiene suficientes parcelas alquiladas para unirlas.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ No se puede dividir el terreno.\nHay varias parcelas seleccionadas.\nPrueba a seleccionar un terreno más pequeño.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ No se puede dividir el terreno.\nNo se encuentra la parcela.\nAvísanos con Ayuda -&gt; Notificar fallo...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ No se puede dividir el terreno. Está seleccionada la parcela completa.\nPrueba a seleccionar un terreno más pequeño.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ El terreno se ha dividido.
+ </notification>
+ <notification name="PassPurchased">
+ Has comprado un pase.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ La región no permite anuncios.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Tu pase para este terreno está a punto de caducar.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Esta superficie no es adecuada para sentarse, prueba en otro sitio.
+ </notification>
+ <notification name="CantSitNoRoom">
+ No hay sitio para sentarse aquí, prueba en otro lugar.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ Error al reclamar el objeto: no tienes permiso
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ Error al reclamar el objeto: no tienes suficientes L$.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ No se puede transferir un terreno propiedad de un grupo.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ Error al comprar el objeto, no tienes suficientes L$.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ Error al comprar el inventario: no tienes suficientes L$.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ No tienes suficientes L$ para comprar un pase a este terreno.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ No se puede comprar el pase ahora mismo. Vuelve a intentarlo más tarde.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ No se puede crear el objeto porque \nla parcela está llena.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Error al colocar el objeto en el lugar especificado. Vuelve a intentarlo.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ No se puede crear un hito para el evento.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ ¡Tus superpoderes anulan la congelación!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Error en la solicitud de poderes especiales. Esta solicitud se ha registrado.
+ </notification>
+ <notification name="ExpireExplanation">
+ El sistema actualmente no puede procesar tu solicitud. Ha expirado el tiempo de la solicitud.
+ </notification>
+ <notification name="DieExplanation">
+ El sistema no puede procesar tu solicitud.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Dinero insuficiente para crear la primitiva.
+ </notification>
+ <notification name="RezObjectFailure">
+ Dinero insuficiente para crear el objeto.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Se ha restaurado la posición de origen, puesto que dicha posición no era válida.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Actualmente no puedes invitar a nadie a tu ubicación, puesto que la región está llena. Vuelve a intentarlo más tarde.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Esta región no te permite configurar aquí tu lugar de origen.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Tu &apos;Lugar de origen&apos; solo se puede configurar en tu terreno o en un punto de información del continente.
+ </notification>
+ <notification name="SetHomePosition">
+ Posición de origen ajustada.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ No se puede quitar el objeto por un error del inventario.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ No se puede crear el inventario solicitado.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ No se puede crear la carpeta de inventario solicitada.
+ </notification>
+ <notification name="CantCreateInventory">
+ No se puede crear el inventario.
+ </notification>
+ <notification name="CantCreateLandmark">
+ No se puede crear un hito.
+ </notification>
+ <notification name="CantCreateOutfit">
+ No se puede crear el vestuario en este momento. Prueba otra vez dentro de un minuto.
+ </notification>
+ <notification name="InventoryNotForSale">
+ El inventario no está en venta.
+ </notification>
+ <notification name="CantFindInvItem">
+ No se encuentra el objeto del inventario.
+ </notification>
+ <notification name="CantFindObject">
+ No se puede encontrar el objeto.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ En esta región actualmente no están activadas las transferencias de dinero a los objetos.
+ </notification>
+ <notification name="CantPayNoAgent">
+ No se ha averiguado a quién se debe pagar.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ No se pueden dar L$ a los objetos públicos.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Error al crear un inventario de objeto del mundo virtual.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Un error interno nos ha impedido actualizar tu visor correctamente. El saldo en L$ o las parcelas en propiedad presentadas en el visor podrían no coincidir con tu saldo real en los servidores.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ No se pueden crear prims grandes que intersectan a otros jugadores. Reinténtalo cuando se hayan movido otros jugadores.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Esto eliminará los registros de conversaciones anteriores y las copias de seguridad de ese archivo.
+ <usetemplate ignoretext="Confirmar antes de eliminar el registro de conversaciones anteriores." name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Esta acción eliminará las transcripciones de todas las conversaciones anteriores. La lista de conversaciones pasadas no resultará afectada. Se eliminarán de la carpeta [FOLDER] todos los archivos que tengan el sufijo .txt y txt.backup.
+ <usetemplate ignoretext="Confirmar antes de eliminar transcripciones." name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ No se pueden mover los archivos. Ruta anterior restaurada.
+ <usetemplate ignoretext="No se pueden mover los archivos. Ruta anterior restaurada." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/es/panel_active_object_row.xml b/indra/newview/skins/default/xui/es/panel_active_object_row.xml
index 8d4fadb101..8d4fadb101 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/es/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml
index c64a93e0e5..c64a93e0e5 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/es/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/es/panel_avatar_list_item.xml
index 5220df5d21..c73e34b299 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_avatar_list_item.xml
@@ -26,5 +26,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Este amigo puede editar, eliminar o manipular tus objetos"/>
<icon name="permission_map_icon" tool_tip="Este amigo puede encontrarte en el mapa"/>
<icon name="permission_online_icon" tool_tip="Este amigo puede ver cuándo estás conectado"/>
+ <button name="info_btn" tool_tip="Más información"/>
<button name="profile_btn" tool_tip="Ver el perfil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/es/panel_block_list_sidetray.xml
index cddbad1195..a3de14ae67 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/es/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Lista de ignorados
- </text>
- <scroll_list name="blocked" tool_tip="Lista de los residentes ignorados actualmente"/>
- <button label="Ignorar al residente..." label_selected="Ignorar al residente..." name="Block resident..." tool_tip="Elige a un Residente para ignorarle"/>
- <button label="Ignorar objetos según el nombre..." label_selected="Ignorar objetos según el nombre..." name="Block object by name..."/>
- <button label="No ignorar" label_selected="No ignorar" name="Unblock" tool_tip="Quita al Residente o al objeto de la lista de ignorados"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtro" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Acciones en la persona o el objeto seleccionado"/>
+ <menu_button name="view_btn" tool_tip="Opciones de clasificación"/>
+ <menu_button name="plus_btn" tool_tip="Elige un residente o un objeto para ignorarlo"/>
+ <button name="unblock_btn" tool_tip="Quita al Residente o al objeto de la lista de ignorados"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Lista de los residentes ignorados actualmente"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml
index 8f4e0101aa..8f4e0101aa 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/es/panel_bodyparts_list_button_bar.xml
index 66ae7d868b..66ae7d868b 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/es/panel_bottomtray_lite.xml
index 8d1b84a5fd..8d1b84a5fd 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/es/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml
index eaaa5dbe78..eaaa5dbe78 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_classified_info.xml b/indra/newview/skins/default/xui/es/panel_classified_info.xml
index 3c168b9e53..3c168b9e53 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/es/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/es/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/es/panel_clothing_list_button_bar.xml
index d3b3d31bd9..d3b3d31bd9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml
index 959b83d658..959b83d658 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_cof_wearables.xml b/indra/newview/skins/default/xui/es/panel_cof_wearables.xml
index a2994894c1..a2994894c1 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/es/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/es/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/es/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..cc4a7e951d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(cargando)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/es/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..2fc8cd3aff
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="La conversación incluía voz"/>
+ <icon name="unread_ims_icon" tool_tip="Han llegado mensajes mientras no tenías conexión"/>
+ <button name="delete_btn" tool_tip="Quitar esta entrada"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml
index d1d7d8ec82..d1d7d8ec82 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml
index bc3046978c..bc3046978c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_alpha.xml b/indra/newview/skins/default/xui/es/panel_edit_alpha.xml
index 829c206ae1..829c206ae1 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_classified.xml b/indra/newview/skins/default/xui/es/panel_edit_classified.xml
index ffad843732..ffad843732 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_eyes.xml b/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
index 29a416f698..29a416f698 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_gloves.xml b/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
index d536a862f5..d536a862f5 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_hair.xml b/indra/newview/skins/default/xui/es/panel_edit_hair.xml
index 25af1ea8cb..25af1ea8cb 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_jacket.xml b/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
index 22a46a2f75..22a46a2f75 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_pants.xml b/indra/newview/skins/default/xui/es/panel_edit_pants.xml
index fb35e0953b..fb35e0953b 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_physics.xml b/indra/newview/skins/default/xui/es/panel_edit_physics.xml
index dfb5ab330a..dfb5ab330a 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_pick.xml b/indra/newview/skins/default/xui/es/panel_edit_pick.xml
index cda465da9c..cda465da9c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_profile.xml b/indra/newview/skins/default/xui/es/panel_edit_profile.xml
index 8e5e09cfec..8e5e09cfec 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shape.xml b/indra/newview/skins/default/xui/es/panel_edit_shape.xml
index 368be35ed9..368be35ed9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shirt.xml b/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
index 73b712374e..73b712374e 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shoes.xml b/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
index 5e457612d5..5e457612d5 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_skin.xml b/indra/newview/skins/default/xui/es/panel_edit_skin.xml
index 8d895a6152..8d895a6152 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_skirt.xml b/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
index 416d174298..416d174298 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_socks.xml b/indra/newview/skins/default/xui/es/panel_edit_socks.xml
index ac9b2a773e..ac9b2a773e 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/es/panel_edit_tattoo.xml
index 8776dd6c10..8776dd6c10 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_underpants.xml b/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
index aac8af44b9..aac8af44b9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
index c26c554c1a..c26c554c1a 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/es/panel_edit_wearable.xml b/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
index 799512968d..799512968d 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_control_panel.xml b/indra/newview/skins/default/xui/es/panel_group_control_panel.xml
index b398293175..b398293175 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml
index b00c300c85..b00c300c85 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
index 09c4eec4d9..09c4eec4d9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_invite.xml b/indra/newview/skins/default/xui/es/panel_group_invite.xml
index 319e9d0f1b..319e9d0f1b 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index 3afb0f5665..3afb0f5665 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_list_item.xml b/indra/newview/skins/default/xui/es/panel_group_list_item.xml
index 5c9f1c3688..4d682068d7 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Desconocido"/>
+ <button name="info_btn" tool_tip="Más información"/>
<button name="profile_btn" tool_tip="Ver el perfil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_group_notices.xml b/indra/newview/skins/default/xui/es/panel_group_notices.xml
index 1eaa69abff..1eaa69abff 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_notify.xml b/indra/newview/skins/default/xui/es/panel_group_notify.xml
index 7bdacbd1e0..7bdacbd1e0 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/es/panel_group_roles.xml b/indra/newview/skins/default/xui/es/panel_group_roles.xml
index 390b4e2e9d..390b4e2e9d 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml
index f218324d50..f218324d50 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/es/panel_inventory_item.xml b/indra/newview/skins/default/xui/es/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_landmark_info.xml b/indra/newview/skins/default/xui/es/panel_landmark_info.xml
index 1a0ac3ba79..1a0ac3ba79 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/es/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/es/panel_landmarks.xml b/indra/newview/skins/default/xui/es/panel_landmarks.xml
index b92685f0ae..b92685f0ae 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/es/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml
index 1d7f077fe7..1d7f077fe7 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_login.xml
+++ b/indra/newview/skins/default/xui/es/panel_login.xml
diff --git a/indra/newview/skins/default/xui/es/panel_main_inventory.xml b/indra/newview/skins/default/xui/es/panel_main_inventory.xml
index 7e318a150b..7e318a150b 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/panel_me.xml b/indra/newview/skins/default/xui/es/panel_me.xml
index 850cd6ec71..850cd6ec71 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_me.xml
+++ b/indra/newview/skins/default/xui/es/panel_me.xml
diff --git a/indra/newview/skins/default/xui/es/panel_media_settings_general.xml b/indra/newview/skins/default/xui/es/panel_media_settings_general.xml
index afc11a4250..afc11a4250 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
index ec9edbfa15..ec9edbfa15 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/es/panel_media_settings_security.xml b/indra/newview/skins/default/xui/es/panel_media_settings_security.xml
index a1a3ec86cf..a1a3ec86cf 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/es/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
index d36c6283bc..d36c6283bc 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
index 4220ab3c9f..4220ab3c9f 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
index e6ca59f912..e6ca59f912 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_media.xml b/indra/newview/skins/default/xui/es/panel_nearby_media.xml
index 8d4f9eda18..8d4f9eda18 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/es/panel_notify_textbox.xml b/indra/newview/skins/default/xui/es/panel_notify_textbox.xml
index dc7c873303..dc7c873303 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/es/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/es/panel_online_status_toast.xml b/indra/newview/skins/default/xui/es/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/es/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/es/panel_outbox_inventory.xml
index 9e2f3c3adc..9e2f3c3adc 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outfit_edit.xml b/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
index 9e669995aa..9e669995aa 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
index 1107e72b54..1107e72b54 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/es/panel_outfits_inventory_gear_default.xml
index 8f805c3d18..8f805c3d18 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_list.xml b/indra/newview/skins/default/xui/es/panel_outfits_list.xml
index 3f8057f242..3f8057f242 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml
index 8cea619bd5..8cea619bd5 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/es/panel_people.xml b/indra/newview/skins/default/xui/es/panel_people.xml
index a9d38dca25..7a7dfca0b8 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_people.xml
+++ b/indra/newview/skins/default/xui/es/panel_people.xml
@@ -14,81 +14,53 @@
<string name="no_filtered_friends_msg">
¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/people/[SEARCH_TERM] Buscar].
</string>
- <string name="people_filter_label" value="Filtrar a la gente"/>
- <string name="groups_filter_label" value="Filtrar a los grupos"/>
<string name="no_filtered_groups_msg" value="¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/groups/[SEARCH_TERM] Buscar]."/>
<string name="no_groups_msg" value="¿Buscas grupos en que participar? Prueba la [secondlife:///app/search/groups Búsqueda]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Pulsa dos veces para abrir el mapa, pulsa mayús y arrastra para obtener una panorámica)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Pulsa dos veces para teleportarte, pulsa mayús y arrastra para obtener una panorámica)"/>
- <filter_editor label="Filtrar" name="filter_input"/>
<tab_container name="tabs">
<panel label="CERCANA" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Opciones"/>
- <button name="add_friend_btn" tool_tip="Añadir al Residente seleccionado a la lista de tus amigos"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Filtrar la gente" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Acciones en la persona seleccionada"/>
+ <menu_button name="nearby_view_btn" tool_tip="Opciones de vista/orden"/>
+ <button name="add_friend_btn" tool_tip="Ofrecer amistad a un residente"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Quitar la persona seleccionada de la lista de amigos"/>
</panel>
</panel>
- <panel label="MIS AMIGOS" name="friends_panel">
+ <panel label="AMIGOS" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Filtrar la gente" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Acciones en la persona seleccionada"/>
+ <menu_button name="friends_view_btn" tool_tip="Opciones de vista/orden"/>
+ <button name="friends_add_btn" tool_tip="Ofrecer amistad a un residente"/>
+ <dnd_button name="friends_del_btn" tool_tip="Quitar la persona seleccionada de la lista de amigos"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Conectado"/>
<accordion_tab name="tab_all" title="Todos"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Ver más opciones"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Ofrecer amistad a un Residente"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Quitar a la persona seleccionada de tu lista de amigos"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="MIS GRUPOS" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Opciones"/>
- <button name="plus_btn" tool_tip="Entrar en un grupo o crear uno"/>
- <button name="activate_btn" tool_tip="Activar el grupo seleccionado"/>
+ <panel label="GRUPOS" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Filtrar los grupos" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Acciones en el grupo seleccionado"/>
+ <menu_button name="groups_view_btn" tool_tip="Opciones de vista/orden"/>
+ <menu_button name="plus_btn" tool_tip="Entrar en un grupo o crear uno"/>
+ <dnd_button name="minus_btn" tool_tip="Dejar el grupo seleccionado"/>
</panel>
</panel>
<panel label="RECIENTE" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Opciones"/>
- <button name="add_friend_btn" tool_tip="Añadir al Residente seleccionado a la lista de tus amigos"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Filtrar la gente" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Acciones en la persona seleccionada"/>
+ <menu_button name="recent_view_btn" tool_tip="Opciones de vista/orden"/>
+ <button name="add_friend_btn" tool_tip="Ofrecer amistad a un residente"/>
+ <dnd_button name="recent_del_btn" tool_tip="Quitar la persona seleccionada de la lista de amigos"/>
</panel>
</panel>
+ <panel label="BLOQUEADO" name="blocked_panel">
+ <panel label="Residentes y objetos ignorados" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Perfil" name="view_profile_btn" tool_tip="Mostrar imágenes, grupos y otra información del Residente"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="MI" name="im_btn" tool_tip="Abrir una sesión de mensajes instantáneos"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Llamar" name="call_btn" tool_tip="Llamar a este Residente"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Compartir" name="share_btn" tool_tip="Compartir un objeto del inventario"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Teleporte" name="teleport_btn" tool_tip="Ofrecer teleporte"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Perfil del grupo" name="group_info_btn" tool_tip="Ver la información del grupo"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Chat de grupo" name="chat_btn" tool_tip="Abrir el chat"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Llamar al grupo" name="group_call_btn" tool_tip="Llama a este grupo"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_pick_info.xml b/indra/newview/skins/default/xui/es/panel_pick_info.xml
index 3450279b4a..3450279b4a 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/es/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/es/panel_picks.xml b/indra/newview/skins/default/xui/es/panel_picks.xml
index 904cdd12f1..904cdd12f1 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_picks.xml
+++ b/indra/newview/skins/default/xui/es/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/es/panel_place_profile.xml b/indra/newview/skins/default/xui/es/panel_place_profile.xml
index e1cf1332e2..e1cf1332e2 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/es/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/es/panel_places.xml b/indra/newview/skins/default/xui/es/panel_places.xml
index e9984b4512..e9984b4512 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_places.xml
+++ b/indra/newview/skins/default/xui/es/panel_places.xml
diff --git a/indra/newview/skins/default/xui/es/panel_postcard_message.xml b/indra/newview/skins/default/xui/es/panel_postcard_message.xml
index 7316d91f5c..7316d91f5c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/es/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/es/panel_postcard_settings.xml b/indra/newview/skins/default/xui/es/panel_postcard_settings.xml
index 3931319447..3931319447 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/es/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
index 620a95de4d..620a95de4d 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/es/panel_preferences_alerts.xml
index f34edf149e..f34edf149e 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
index b0b6114e88..28bc98f988 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Chat de texto" name="chat">
- <text name="font_size">
- Tamaño de la fuente:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Disminuir" name="radio" value="0"/>
- <radio_item label="Medio" name="radio2" value="1"/>
- <radio_item label="Aumentar" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Ejecutar la animación de escribir al hacerlo en el chat" name="play_typing_animation"/>
- <check_box label="Cuando estoy desconectado, enviarme los MI al correo-e" name="send_im_to_email"/>
- <check_box label="Permitir el historial de MI y chat en texto sin formato" name="plain_text_chat_history"/>
- <check_box label="Bocadillos del chat" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Mostrar los MI en:
- </text>
- <text name="requires_restart_label">
- (requiere reiniciar)
- </text>
- <radio_group name="chat_window" tool_tip="Muestra tus mensajes instantáneos en varias ventanas flotantes o en una sola con varias pestañas (requiere que reinicies)">
- <radio_item label="Ventanas distintas" name="radio" value="0"/>
- <radio_item label="Pestañas" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Permitir ventanas de chat emergentes:
- </text>
- <check_box label="Chats de grupo" name="EnableGroupChatPopups" tool_tip="Activa esta casilla para ver una ventana emergente cada vez que recibas un mensaje de un grupo de chat"/>
- <check_box label="Chats de MI" name="EnableIMChatPopups" tool_tip="Activa esta casilla para ver una ventana emergente cada vez que recibas un mensaje instantáneo"/>
- <spinner label="Duración de los interlocutores favoritos:" name="nearby_toasts_lifetime"/>
- <spinner label="Tiempo de los otros interlocutores:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Ejecutar la animación de escribir al hacerlo en el chat" name="play_typing_animation"/>
+ <check_box label="Cuando estoy desconectado, enviarme los MI al correo-e" name="send_im_to_email"/>
+ <check_box label="Sólo pueden llamarme o mandarme un MI mis amigos y grupos" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Tamaño de la fuente:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Pequeña" name="Small" value="0"/>
+ <item label="Mediana" name="Medium" value="1"/>
+ <item label="Grande" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Bocadillos del chat" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Notificaciones
+ </text>
+ <text name="friend_ims">
+ MI de amigos:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Ventana Conversaciones abiertas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mensaje en ventana emergente" name="PopUpMessage" value="toast"/>
+ <item label="Botón de la barra de herramientas de Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Ninguno" name="None" value="ninguno"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ MI de no amigos:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Ventana Conversaciones abiertas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mensaje en ventana emergente" name="PopUpMessage" value="toast"/>
+ <item label="Botón de la barra de herramientas de Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Ninguno" name="None" value="ninguno"/>
+ </combo_box>
+ <text name="conference_ims">
+ MI de conferencia:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Ventana Conversaciones abiertas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mensaje en ventana emergente" name="PopUpMessage" value="toast"/>
+ <item label="Botón de la barra de herramientas de Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Ninguno" name="None" value="ninguno"/>
+ </combo_box>
+ <text name="group_chat">
+ Chat de grupo:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Ventana Conversaciones abiertas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mensaje en ventana emergente" name="PopUpMessage" value="toast"/>
+ <item label="Botón de la barra de herramientas de Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Ninguno" name="None" value="ninguno"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Chat:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Ventana Conversaciones abiertas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mensaje en ventana emergente" name="PopUpMessage" value="toast"/>
+ <item label="Botón de la barra de herramientas de Flash" name="FlashToolBarButton" value="flash"/>
+ <item label="Ninguno" name="None" value="ninguno"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Para suspender provisionalmente todas las notificaciones, usa Comunicarme &gt; No molestar.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Reproducir sonido:
+ </text>
+ <check_box label="Nueva conversación" name="new_conversation"/>
+ <check_box label="Llamada de voz entrante" name="incoming_voice_call"/>
+ <check_box label="Oferta de teleporte" name="teleport_offer"/>
+ <check_box label="Oferta de inventario" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Limpiar el registro..." name="clear_log"/>
+ <button label="Eliminar transcripciones..." name="delete_transcripts"/>
+ <button label="Examinar..." label_selected="Examinar" name="log_path_button"/>
+ </panel>
<button label="Traducción…" name="ok_btn"/>
<button label="Reemplazo automático..." name="autoreplace_showgui"/>
<button label="Revisión ortográfica..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
index d47a6d718a..d47a6d718a 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 4fc163f5b6..98b0081da9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -69,6 +69,9 @@
<combo_box.item label="nunca" name="item4"/>
</combo_box>
<text name="text_box3">
- Respuesta cuando estoy en modo ocupado:
+ Respuesta de No molestar:
</text>
+ <text_editor name="do_not_disturb_response">
+ log_in_to_change
+ </text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
index 281b871fed..281b871fed 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_move.xml b/indra/newview/skins/default/xui/es/panel_preferences_move.xml
index b2ff6b61c2..b2ff6b61c2 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/es/panel_preferences_privacy.xml
index c162130af6..c162130af6 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
index 81a29dae5a..81a29dae5a 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
index 5cb1654c70..5cb1654c70 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml
index 90b9e475e7..90b9e475e7 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/es/panel_region_covenant.xml b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
index 2beacda235..2beacda235 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/es/panel_region_debug.xml b/indra/newview/skins/default/xui/es/panel_region_debug.xml
index 71bdba1a25..71bdba1a25 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/es/panel_region_environment.xml b/indra/newview/skins/default/xui/es/panel_region_environment.xml
index a73f1deed4..a73f1deed4 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_environment.xml
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 6089dfb8db..6089dfb8db 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/es/panel_region_general.xml b/indra/newview/skins/default/xui/es/panel_region_general.xml
index 453d1fe43c..453d1fe43c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/es/panel_region_terrain.xml b/indra/newview/skins/default/xui/es/panel_region_terrain.xml
index cb6c03dbb5..cb6c03dbb5 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/es/panel_script_ed.xml b/indra/newview/skins/default/xui/es/panel_script_ed.xml
index 4c4077b96f..4c4077b96f 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/es/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/es/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/es/panel_script_limits_my_avatar.xml
index 9334d58af2..9334d58af2 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/es/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/es/panel_script_limits_region_memory.xml
index 37dc0a576c..37dc0a576c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/es/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/es/panel_script_question_toast.xml b/indra/newview/skins/default/xui/es/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/es/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/es/panel_scrolling_param.xml b/indra/newview/skins/default/xui/es/panel_scrolling_param.xml
index bafd4e5e55..bafd4e5e55 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/es/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/es/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/es/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/es/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/es/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/es/panel_side_tray_tab_caption.xml
index 775e343dc9..775e343dc9 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/es/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/es/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/es/panel_snapshot_inventory.xml
index 12c74b5cd1..12c74b5cd1 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/panel_snapshot_local.xml b/indra/newview/skins/default/xui/es/panel_snapshot_local.xml
index 08c45d2e76..08c45d2e76 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/es/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/es/panel_snapshot_options.xml b/indra/newview/skins/default/xui/es/panel_snapshot_options.xml
index 2b2584f66c..2b2584f66c 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/es/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/es/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/es/panel_snapshot_postcard.xml
index 649d547ba0..649d547ba0 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/es/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/es/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/es/panel_snapshot_profile.xml
index 6a0bc22d68..6a0bc22d68 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/es/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/es/panel_sound_devices.xml b/indra/newview/skins/default/xui/es/panel_sound_devices.xml
index 9531b99cc8..9531b99cc8 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/es/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/es/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/es/panel_stand_stop_flying.xml
index 350aec9c69..350aec9c69 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/es/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml
index 7eead3bc18..7eead3bc18 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/es/panel_teleport_history.xml b/indra/newview/skins/default/xui/es/panel_teleport_history.xml
index 364451b26b..364451b26b 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/es/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml
index 10b37b6880..10b37b6880 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/es/panel_voice_effect.xml b/indra/newview/skins/default/xui/es/panel_voice_effect.xml
index 94a0428941..94a0428941 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/es/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
index 426783aa8e..426783aa8e 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/es/panel_world_map.xml b/indra/newview/skins/default/xui/es/panel_world_map.xml
index b1dea02210..b1dea02210 100644..100755
--- a/indra/newview/skins/default/xui/es/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/es/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/es/role_actions.xml b/indra/newview/skins/default/xui/es/role_actions.xml
index 660293b02c..660293b02c 100644..100755
--- a/indra/newview/skins/default/xui/es/role_actions.xml
+++ b/indra/newview/skins/default/xui/es/role_actions.xml
diff --git a/indra/newview/skins/default/xui/es/sidepanel_appearance.xml b/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
index bdef89c392..bdef89c392 100644..100755
--- a/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
index f68dcc65e3..f68dcc65e3 100644..100755
--- a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml
index 176247f90e..176247f90e 100644..100755
--- a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml
index 9da2958953..cb061796e7 100644..100755
--- a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Comprar el objeto" name="Buyobject"/>
<combo_box.item label="Pagar el objeto" name="Payobject"/>
<combo_box.item label="Abrir" name="Open"/>
+ <combo_box.item label="Zoom" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 52bcab54e5..937433e210 100644..100755
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -128,7 +128,7 @@
Salir
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=es-ES&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
Ya no puedes acceder a Second Life con el visor que estás utilizando. Visita la siguiente página para descargar un nuevo visor:
@@ -610,8 +610,8 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="AvatarAway">
Ausente
</string>
- <string name="AvatarBusy">
- Ocupado
+ <string name="AvatarDoNotDisturb">
+ No molestar
</string>
<string name="AvatarMuted">
Ignorado
@@ -844,6 +844,12 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="ST_NO_JOINT">
No se puede encontrar ROOT o JOINT.
</string>
+ <string name="NearbyChatTitle">
+ Chat
+ </string>
+ <string name="NearbyChatLabel">
+ (Chat)
+ </string>
<string name="whisper">
susurra:
</string>
@@ -907,6 +913,9 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="ControlYourCamera">
Controlar su cámara
</string>
+ <string name="AgentNameSubst">
+ (Tú)
+ </string>
<string name="TeleportYourAgent">
Teleportarte
</string>
@@ -991,18 +1000,6 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="dictionary_files">
Diccionarios
</string>
- <string name="AvatarSetNotAway">
- Salir del estado ausente
- </string>
- <string name="AvatarSetAway">
- Pasar al estado ausente
- </string>
- <string name="AvatarSetNotBusy">
- Salir del estado ocupado
- </string>
- <string name="AvatarSetBusy">
- Pasar al estado ocupado
- </string>
<string name="shape">
Forma
</string>
@@ -1959,8 +1956,8 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="PanelContentsNewScript">
Script nuevo
</string>
- <string name="BusyModeResponseDefault">
- El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI.
+ <string name="DoNotDisturbModeResponseDefault">
+ Este residente tiene activado &apos;No molestar&apos; y verá tu mensaje más tarde.
</string>
<string name="MuteByName">
(Por el nombre)
@@ -2073,9 +2070,6 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Contenidos
- </string>
<string name="AcquiredItems">
Artículos adquiridos
</string>
@@ -3793,7 +3787,7 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
Región General
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Los avatares están visibles y está permitido el chat fuera de esta parcela
+ Los avatares que están en esta parcela no pueden ser vistos ni escuchados por los que están fuera de ella
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Los objetos que se mueven pueden presentar un comportamiento incorrecto en la región hasta que ésta se recargue.
@@ -3867,6 +3861,12 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="Saved_message">
(Guardado [LONG_TIMESTAMP])
</string>
+ <string name="OnlineStatus">
+ Conectado/a
+ </string>
+ <string name="OfflineStatus">
+ Desconectado/a
+ </string>
<string name="answered_call">
Han respondido a tu llamada
</string>
@@ -3876,6 +3876,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="you_joined_call">
Has entrado en la llamada de voz
</string>
+ <string name="you_auto_rejected_call-im">
+ Rechazaste la llamada de voz automáticamente porque estaba activado &apos;No molestar&apos;.
+ </string>
<string name="name_started_call">
[NAME] inició una llamada de voz
</string>
@@ -3888,6 +3891,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="hang_up-im">
Se colgó la llamada de voz
</string>
+ <string name="conference-title">
+ Chat multi-persona
+ </string>
<string name="conference-title-incoming">
Conferencia con [AGENT_NAME]
</string>
@@ -4766,6 +4772,9 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
<string name="Command_Chat_Label">
Chat
</string>
+ <string name="Command_Conversations_Label">
+ Conversaciones
+ </string>
<string name="Command_Compass_Label">
Brújula
</string>
@@ -4841,6 +4850,9 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
<string name="Command_Chat_Tooltip">
Habla por chat de texto con las personas próximas
</string>
+ <string name="Command_Conversations_Tooltip">
+ Conversar con todos
+ </string>
<string name="Command_Compass_Tooltip">
Brújula
</string>
@@ -4970,4 +4982,13 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
<string name="UserDictionary">
[Usuario]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ No se están registrando las conversaciones. Para empezar a grabar un registro, elige &quot;Guardar: Solo registro&quot; o &quot;Guardar: Registro y transcripciones&quot; en Preferencias &gt; Chat.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ No se registrarán más conversaciones. Para reanudar la grabación de un registro, elige &quot;Guardar: Solo registro&quot; o &quot;Guardar: Registro y transcripciones&quot; en Preferencias &gt; Chat.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ No hay conversaciones grabadas. Después de contactar con una persona, o de que alguien contacte contigo, aquí se mostrará una entrada de registro.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/es/teleport_strings.xml b/indra/newview/skins/default/xui/es/teleport_strings.xml
index 94975a83f8..94975a83f8 100644..100755
--- a/indra/newview/skins/default/xui/es/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/es/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/es/xui_version.xml b/indra/newview/skins/default/xui/es/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/es/xui_version.xml
+++ b/indra/newview/skins/default/xui/es/xui_version.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml
index a659cb4245..a659cb4245 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_about.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index 25c49b97b5..25c49b97b5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_activeim.xml b/indra/newview/skins/default/xui/fr/floater_activeim.xml
index 18e3d66bb7..18e3d66bb7 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/fr/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/fr/floater_animation_anim_preview.xml
index e82518ce80..e82518ce80 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/fr/floater_animation_bvh_preview.xml
index 84c40b5987..84c40b5987 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_auction.xml b/indra/newview/skins/default/xui/fr/floater_auction.xml
index 6cef2a3591..6cef2a3591 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_auction.xml
+++ b/indra/newview/skins/default/xui/fr/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_autoreplace.xml b/indra/newview/skins/default/xui/fr/floater_autoreplace.xml
index 1d19181692..1d19181692 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/fr/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_avatar.xml b/indra/newview/skins/default/xui/fr/floater_avatar.xml
index 7cbb50a3d6..7cbb50a3d6 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/fr/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
index 74de4ddb1c..74de4ddb1c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
index e1786eafc7..e1786eafc7 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_beacons.xml b/indra/newview/skins/default/xui/fr/floater_beacons.xml
index ebd4dab683..ebd4dab683 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/fr/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_build_options.xml b/indra/newview/skins/default/xui/fr/floater_build_options.xml
index a200ed192f..a200ed192f 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
index ab68ce166b..ab68ce166b 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_bumps.xml b/indra/newview/skins/default/xui/fr/floater_bumps.xml
index 32714ea09c..32714ea09c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/fr/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_contents.xml b/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
index 0436dc8a91..0436dc8a91 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
index 148a5a35d2..148a5a35d2 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/fr/floater_buy_currency_html.xml
index 953fca3544..953fca3544 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_land.xml b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
index b7f8f36f81..b7f8f36f81 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_object.xml b/indra/newview/skins/default/xui/fr/floater_buy_object.xml
index 519e741a25..519e741a25 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_camera.xml b/indra/newview/skins/default/xui/fr/floater_camera.xml
index 893e389f69..893e389f69 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_camera.xml
+++ b/indra/newview/skins/default/xui/fr/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_chat_bar.xml b/indra/newview/skins/default/xui/fr/floater_chat_bar.xml
index 7dcb9a280d..7dcb9a280d 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/fr/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_choose_group.xml b/indra/newview/skins/default/xui/fr/floater_choose_group.xml
index b73bedd7b5..b73bedd7b5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/fr/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_color_picker.xml b/indra/newview/skins/default/xui/fr/floater_color_picker.xml
index c54e3e9ce0..c54e3e9ce0 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/fr/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_conversation_log.xml b/indra/newview/skins/default/xui/fr/floater_conversation_log.xml
new file mode 100644
index 0000000000..e9017c79b1
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="JOURNAL DES CONVERSATIONS">
+ <panel name="buttons_panel">
+ <filter_editor label="Filtrer les personnes" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Actions sur la personne ou le groupe sélectionné"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_conversation_preview.xml b/indra/newview/skins/default/xui/fr/floater_conversation_preview.xml
new file mode 100644
index 0000000000..9a486a84c6
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="CONVERSATION:">
+ <floater.string name="Title">
+ CONVERSATION: [NAME]
+ </floater.string>
+ <text name="page_label" value="Page"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_critical.xml b/indra/newview/skins/default/xui/fr/floater_critical.xml
index 6d30d97048..6d30d97048 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_critical.xml
+++ b/indra/newview/skins/default/xui/fr/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/fr/floater_delete_env_preset.xml
index 035bdbe5f3..035bdbe5f3 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/fr/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_destinations.xml b/indra/newview/skins/default/xui/fr/floater_destinations.xml
index 25e6c90a8e..25e6c90a8e 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/fr/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_display_name.xml b/indra/newview/skins/default/xui/fr/floater_display_name.xml
index eebe7abf2c..eebe7abf2c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/fr/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml
index 5ec68458e1..5ec68458e1 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml
index 4ec9bbb3dd..4ec9bbb3dd 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml
index 81d9d34cfb..81d9d34cfb 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_environment_settings.xml b/indra/newview/skins/default/xui/fr/floater_environment_settings.xml
index ea12749d27..ea12749d27 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_event.xml b/indra/newview/skins/default/xui/fr/floater_event.xml
index 67d70ac003..67d70ac003 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_event.xml
+++ b/indra/newview/skins/default/xui/fr/floater_event.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_fast_timers.xml b/indra/newview/skins/default/xui/fr/floater_fast_timers.xml
index 0100b10557..0100b10557 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/fr/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_font_test.xml b/indra/newview/skins/default/xui/fr/floater_font_test.xml
index 974a5ca3a2..974a5ca3a2 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/fr/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_gesture.xml b/indra/newview/skins/default/xui/fr/floater_gesture.xml
index 5ead1cae3a..5ead1cae3a 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/fr/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_god_tools.xml b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
index 0d21a8af32..0d21a8af32 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
index 098f8fc713..098f8fc713 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_help_browser.xml b/indra/newview/skins/default/xui/fr/floater_help_browser.xml
index 11caca640c..11caca640c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/fr/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_how_to.xml b/indra/newview/skins/default/xui/fr/floater_how_to.xml
index a414212ba0..a414212ba0 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/fr/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_hud.xml b/indra/newview/skins/default/xui/fr/floater_hud.xml
index f212f113b3..f212f113b3 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_hud.xml
+++ b/indra/newview/skins/default/xui/fr/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_im_container.xml b/indra/newview/skins/default/xui/fr/floater_im_container.xml
index 5ea073365e..f0b17e8437 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/fr/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="CONVERSATIONS"/>
+<multi_floater name="floater_im_box" title="CONVERSATIONS">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <button name="add_btn" tool_tip="Commencer une nouvelle conversation"/>
+ <button name="speak_btn" tool_tip="Parler aux personnes en utilisant votre micro"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Réduire/Développer cette liste"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Réduire ce panneau"/>
+ <text name="stub_textbox">
+ Cette conversation s&apos;affiche dans une fenêtre distincte. [secondlife:/// la rattacher.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_im_session.xml b/indra/newview/skins/default/xui/fr/floater_im_session.xml
index 516eb41362..8ab98b8e4e 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/fr/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="À" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] a été invité à la conversation."/>
+ <floater.string name="multiple_participants_added" value="[NAME] ont été invités à la conversation."/>
+ <floater.string name="tooltip_to_separate_window" value="Déplacer cette conversation dans une fenêtre distincte"/>
+ <floater.string name="tooltip_to_main_window" value="Replacer cette conversation dans la fenêtre principale"/>
+ <floater.string name="start_call_button_tooltip" value="Ouvrir une connexion vocale"/>
+ <floater.string name="end_call_button_tooltip" value="Fermer la connexion vocale"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Réduire ce panneau"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Réduire la liste des participants"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Développer la liste des participants"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <menu_button name="gear_btn" tool_tip="Actions sur la personne sélectionnée"/>
+ <button name="add_btn" tool_tip="Ajouter un participant à cette conversation"/>
+ <button name="voice_call_btn" tool_tip="Ouvrir une connexion vocale"/>
+ <button name="close_btn" tool_tip="Mettre fin à cette conversation"/>
+ <button name="expand_collapse_btn" tool_tip="Réduire/Développer ce panneau"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Traduire le chat" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="À" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Affiche/Masque le panneau des messages"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_image_preview.xml b/indra/newview/skins/default/xui/fr/floater_image_preview.xml
index 3d405f358d..3d405f358d 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_import_collada.xml b/indra/newview/skins/default/xui/fr/floater_import_collada.xml
index 03804c4bd5..03804c4bd5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/fr/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_incoming_call.xml b/indra/newview/skins/default/xui/fr/floater_incoming_call.xml
index 7594eec5f2..9e6946ba9e 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/fr/floater_incoming_call.xml
@@ -10,7 +10,7 @@
anonyme
</floater.string>
<floater.string name="VoiceInviteP2P">
- appelle.
+ vous appelle.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
a rejoint un chat vocal avec conférence.
@@ -25,9 +25,9 @@
Voulez-vous quitter [CURRENT_CHAT] et rejoindre ce chat vocal ?
</floater.string>
<text name="question">
- Voulez-vous quitter [CURRENT_CHAT] et rejoindre ce chat vocal ?
+ Si vous répondez, vous serez déconnecté de votre conversation vocale actuelle.
</text>
- <button label="Accepter" label_selected="Accepter" name="Accept"/>
- <button label="Refuser" label_selected="Refuser" name="Reject"/>
- <button label="Lancer IM" name="Start IM"/>
+ <button label="Répondre" label_selected="Répondre" name="Accept"/>
+ <button label="Ignorer" label_selected="Ignorer" name="Reject"/>
+ <button label="Ouvrir IM à la place" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_inspect.xml b/indra/newview/skins/default/xui/fr/floater_inspect.xml
index 9b1bdf106d..9b1bdf106d 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
index f2eb3cb6bc..f2eb3cb6bc 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
index 7567817f3a..7567817f3a 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_joystick.xml b/indra/newview/skins/default/xui/fr/floater_joystick.xml
index 02ac21bf82..02ac21bf82 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/fr/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_lagmeter.xml b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
index 39a861d8bd..39a861d8bd 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_land_holdings.xml b/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
index ff728e3aaa..ff728e3aaa 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
index 7647452e91..7647452e91 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml b/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
index 71d2c42578..71d2c42578 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_map.xml b/indra/newview/skins/default/xui/fr/floater_map.xml
index dbd3dd9406..dbd3dd9406 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_map.xml
+++ b/indra/newview/skins/default/xui/fr/floater_map.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_media_browser.xml b/indra/newview/skins/default/xui/fr/floater_media_browser.xml
index 58535eddf5..58535eddf5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/fr/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_media_settings.xml b/indra/newview/skins/default/xui/fr/floater_media_settings.xml
index 27db5ea995..27db5ea995 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml
index d03c4d7544..d03c4d7544 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/fr/floater_merchant_outbox.xml
index b491dd6aed..b491dd6aed 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/fr/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_model_preview.xml b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
index bd3dae6599..bd3dae6599 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_moveview.xml b/indra/newview/skins/default/xui/fr/floater_moveview.xml
index 853af2afdf..853af2afdf 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_mute_object.xml b/indra/newview/skins/default/xui/fr/floater_mute_object.xml
index f4db3201a8..f4db3201a8 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/fr/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_my_appearance.xml b/indra/newview/skins/default/xui/fr/floater_my_appearance.xml
index 53ff58e307..53ff58e307 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/fr/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_my_inventory.xml b/indra/newview/skins/default/xui/fr/floater_my_inventory.xml
index d514d08081..d514d08081 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_notification.xml b/indra/newview/skins/default/xui/fr/floater_notification.xml
index fe4b5f9bd6..fe4b5f9bd6 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_notification.xml
+++ b/indra/newview/skins/default/xui/fr/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_notifications_console.xml b/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
index e040e948f5..e040e948f5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_object_weights.xml b/indra/newview/skins/default/xui/fr/floater_object_weights.xml
index 2667188308..2667188308 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/fr/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_openobject.xml b/indra/newview/skins/default/xui/fr/floater_openobject.xml
index 4e046ff3f3..4e046ff3f3 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/fr/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml
index 72018f5de5..72018f5de5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml b/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
index 089d710f17..089d710f17 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_characters.xml
index 7c9109c011..7c9109c011 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
index 02d969dc08..0bcf55aba5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Afficher :
</text>
- <check_box label="Monde" name="show_world"/>
+ <check_box label="Test" name="show_world"/>
<check_box label="Mobiles uniquement" name="show_world_movables_only"/>
<check_box label="Maillage de navigation" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
index 894ec6dd9c..894ec6dd9c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml
index 397436876d..397436876d 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_pay.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_pay_object.xml b/indra/newview/skins/default/xui/fr/floater_pay_object.xml
index 966fa3b8a6..966fa3b8a6 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_people.xml b/indra/newview/skins/default/xui/fr/floater_people.xml
index 58701c06b2..58701c06b2 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_people.xml
+++ b/indra/newview/skins/default/xui/fr/floater_people.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
index 36bec80561..36bec80561 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_picks.xml b/indra/newview/skins/default/xui/fr/floater_picks.xml
index f058ff668b..f058ff668b 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_picks.xml
+++ b/indra/newview/skins/default/xui/fr/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_places.xml b/indra/newview/skins/default/xui/fr/floater_places.xml
index 9e649aca47..9e649aca47 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_places.xml
+++ b/indra/newview/skins/default/xui/fr/floater_places.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_post_process.xml b/indra/newview/skins/default/xui/fr/floater_post_process.xml
index a22c7512e5..a22c7512e5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/fr/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preferences.xml b/indra/newview/skins/default/xui/fr/floater_preferences.xml
index 0f9fb1334b..0f9fb1334b 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/fr/floater_preferences_proxy.xml
index 020bdf928b..020bdf928b 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_animation.xml b/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
index 6488089c06..6488089c06 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
index 6287f10f3e..6287f10f3e 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml b/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
index 5646ad45eb..5646ad45eb 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_sound.xml b/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
index a215f92df1..a215f92df1 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_texture.xml b/indra/newview/skins/default/xui/fr/floater_preview_texture.xml
index 9fc9d14026..9fc9d14026 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml b/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
index a6e598dd2b..a6e598dd2b 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_publish_classified.xml b/indra/newview/skins/default/xui/fr/floater_publish_classified.xml
index d4d8652434..d4d8652434 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/fr/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_region_debug_console.xml b/indra/newview/skins/default/xui/fr/floater_region_debug_console.xml
index 1747155b60..1747155b60 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/fr/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_region_info.xml b/indra/newview/skins/default/xui/fr/floater_region_info.xml
index c2663174d4..c2663174d4 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/fr/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
index 78c35dc303..78c35dc303 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_debug.xml b/indra/newview/skins/default/xui/fr/floater_script_debug.xml
index e257aac6c4..e257aac6c4 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/fr/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_limits.xml b/indra/newview/skins/default/xui/fr/floater_script_limits.xml
index cc3aaa6653..cc3aaa6653 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_preview.xml b/indra/newview/skins/default/xui/fr/floater_script_preview.xml
index 7b6bc73677..7b6bc73677 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_queue.xml b/indra/newview/skins/default/xui/fr/floater_script_queue.xml
index b9a8165457..b9a8165457 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_script_search.xml b/indra/newview/skins/default/xui/fr/floater_script_search.xml
index 09b903f41c..09b903f41c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/fr/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_search.xml b/indra/newview/skins/default/xui/fr/floater_search.xml
index 32800182ea..32800182ea 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_search.xml
+++ b/indra/newview/skins/default/xui/fr/floater_search.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_select_key.xml b/indra/newview/skins/default/xui/fr/floater_select_key.xml
index 664bc0a723..664bc0a723 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/fr/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_sell_land.xml b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
index c5fb0ea0d4..c5fb0ea0d4 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_settings_debug.xml b/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
index 995837e9ee..995837e9ee 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
index 9244051edc..9244051edc 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_sound_devices.xml b/indra/newview/skins/default/xui/fr/floater_sound_devices.xml
index 080ade9dd4..080ade9dd4 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_sound_preview.xml b/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
index 6f0fb3421f..6f0fb3421f 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_spellcheck.xml b/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
index 635db52ffa..635db52ffa 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/fr/floater_spellcheck_import.xml
index c8c76c672d..c8c76c672d 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/fr/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_stats.xml b/indra/newview/skins/default/xui/fr/floater_stats.xml
index d6bd187956..d6bd187956 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_stats.xml
+++ b/indra/newview/skins/default/xui/fr/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_sys_well.xml b/indra/newview/skins/default/xui/fr/floater_sys_well.xml
index dbdd32974c..dbdd32974c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_telehub.xml b/indra/newview/skins/default/xui/fr/floater_telehub.xml
index c529ca2736..c529ca2736 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/fr/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/fr/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/fr/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/fr/floater_test_text_vertical_aligment.xml
index 702170ef52..702170ef52 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/fr/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
index f86c1a4217..eace67026c 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
@@ -20,7 +20,7 @@
<button label="Vierge" label_selected="Vierge" name="Blank" width="60"/>
<button label="Aucune" label_selected="Aucune" left="68" name="None" width="60"/>
<button bottom="-240" label="" label_selected="" name="Pipette"/>
- <check_box initial_value="true" label="Aperçu direct" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Appliquer maintenant" name="apply_immediate_check"/>
<text name="preview_disabled" value="Aperçu désactivé"/>
<filter_editor label="Filtrer les textures" name="inventory search editor"/>
<check_box initial_value="false" label="Afficher les dossiers" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
index caae15ea17..caae15ea17 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index bcc3423862..bcc3423862 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_top_objects.xml b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
index eb084d9184..eb084d9184 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_tos.xml b/indra/newview/skins/default/xui/fr/floater_tos.xml
index 6d58cf77ca..6d58cf77ca 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_toybox.xml b/indra/newview/skins/default/xui/fr/floater_toybox.xml
index f99d3d30b5..f99d3d30b5 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/fr/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_translation_settings.xml b/indra/newview/skins/default/xui/fr/floater_translation_settings.xml
index c7582f110f..c7582f110f 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_url_entry.xml b/indra/newview/skins/default/xui/fr/floater_url_entry.xml
index 4b2be14569..4b2be14569 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/fr/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/fr/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..f4f452eea7
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="VOLUME DU CHAT VOCAL">
+ <slider label="Chat vocal" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_voice_controls.xml b/indra/newview/skins/default/xui/fr/floater_voice_controls.xml
index fc4de4a5a6..fc4de4a5a6 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/fr/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_voice_effect.xml b/indra/newview/skins/default/xui/fr/floater_voice_effect.xml
index 671fb5c14d..f9a76d127e 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/fr/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Endroits" name="voice_effects" title="EFFET DE VOIX">
+<floater label="Endroits" name="voice_effects" title="APERÇU DES EFFETS DE VOIX">
<string name="no_voice_effect">
(Aucun effet de voix)
</string>
diff --git a/indra/newview/skins/default/xui/fr/floater_voice_volume.xml b/indra/newview/skins/default/xui/fr/floater_voice_volume.xml
new file mode 100644
index 0000000000..bf91a5bb79
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="VOLUME DE LA VOIX">
+ <slider name="volume_slider" tool_tip="Volume de la voix" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_web_content.xml b/indra/newview/skins/default/xui/fr/floater_web_content.xml
index 65dfafe760..65dfafe760 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/fr/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/fr/floater_whitelist_entry.xml
index 99e4954555..99e4954555 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/fr/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_window_size.xml b/indra/newview/skins/default/xui/fr/floater_window_size.xml
index 11c2e439bd..11c2e439bd 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/fr/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml
index f5dab91924..f5dab91924 100644..100755
--- a/indra/newview/skins/default/xui/fr/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/fr/fonts.xml b/indra/newview/skins/default/xui/fr/fonts.xml
index cccb45b973..cccb45b973 100644..100755
--- a/indra/newview/skins/default/xui/fr/fonts.xml
+++ b/indra/newview/skins/default/xui/fr/fonts.xml
diff --git a/indra/newview/skins/default/xui/fr/inspect_avatar.xml b/indra/newview/skins/default/xui/fr/inspect_avatar.xml
index 553646f8e9..553646f8e9 100644..100755
--- a/indra/newview/skins/default/xui/fr/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/fr/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/fr/inspect_group.xml b/indra/newview/skins/default/xui/fr/inspect_group.xml
index e8c528c1ac..e8c528c1ac 100644..100755
--- a/indra/newview/skins/default/xui/fr/inspect_group.xml
+++ b/indra/newview/skins/default/xui/fr/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/fr/inspect_object.xml b/indra/newview/skins/default/xui/fr/inspect_object.xml
index b66af7a2bf..b66af7a2bf 100644..100755
--- a/indra/newview/skins/default/xui/fr/inspect_object.xml
+++ b/indra/newview/skins/default/xui/fr/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/fr/inspect_remote_object.xml b/indra/newview/skins/default/xui/fr/inspect_remote_object.xml
index 6d7cfadc04..6d7cfadc04 100644..100755
--- a/indra/newview/skins/default/xui/fr/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/fr/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/fr/language_settings.xml b/indra/newview/skins/default/xui/fr/language_settings.xml
index fdac9d65a7..fdac9d65a7 100644..100755
--- a/indra/newview/skins/default/xui/fr/language_settings.xml
+++ b/indra/newview/skins/default/xui/fr/language_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/fr/menu_add_wearable_gear.xml
index 7e7993175e..7e7993175e 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
index f48513eb2b..f48513eb2b 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
index 6af2064e44..6af2064e44 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
index 3bac25c79b..3bac25c79b 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
index 08d1a20361..08d1a20361 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
index 6310a2177a..6310a2177a 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml b/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml
index a4ead48b6b..a4ead48b6b 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_body_part.xml b/indra/newview/skins/default/xui/fr/menu_cof_body_part.xml
index 4b6907fcc6..4b6907fcc6 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/fr/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml b/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml
index 03cc569704..03cc569704 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_gear.xml b/indra/newview/skins/default/xui/fr/menu_cof_gear.xml
index 8276d57025..fea0486d8a 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="Nouveaux habits" name="COF.Gear.New_Clothes"/>
- <menu label="Nouvelles parties du corps" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="Nouvelles parties du corps" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_conversation.xml b/indra/newview/skins/default/xui/fr/menu_conversation.xml
new file mode 100644
index 0000000000..857ead603b
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Fermer la conversation" name="close_conversation"/>
+ <menu_item_call label="Ouvrir une conversation vocale" name="open_voice_conversation"/>
+ <menu_item_call label="Se déconnecter de la conversation et du canal vocal" name="disconnect_from_voice"/>
+ <menu_item_call label="Voir le profil" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Proposer une téléportation." name="offer_teleport"/>
+ <menu_item_call label="Appel" name="voice_call"/>
+ <menu_item_call label="Historique du chat..." name="chat_history"/>
+ <menu_item_call label="Devenir amis" name="add_friend"/>
+ <menu_item_call label="Supprimer cet ami" name="remove_friend"/>
+ <menu_item_call label="Supprimer ces amis" name="remove_friends"/>
+ <menu_item_call label="Inviter dans le groupe..." name="invite_to_group"/>
+ <menu_item_call label="Zoomer en avant" name="zoom_in"/>
+ <menu_item_call label="Carte" name="map"/>
+ <menu_item_call label="Partager" name="share"/>
+ <menu_item_call label="Payer" name="pay"/>
+ <menu_item_check label="Bloquer le chat vocal" name="block_unblock"/>
+ <menu_item_check label="Ignorer le texte" name="MuteText"/>
+ <menu_item_call label="Profil du groupe" name="group_profile"/>
+ <menu_item_call label="Activer le groupe" name="activate_group"/>
+ <menu_item_call label="Quitter le groupe" name="leave_group"/>
+ <context_menu label="Options du modérateur" name="Moderator Options">
+ <menu_item_check label="Autoriser les chats écrits" name="AllowTextChat"/>
+ <menu_item_call label="Ignorer ce participant" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Ne plus ignorer ce participant" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Ignorer les autres" name="ModerateVoiceMute"/>
+ <menu_item_call label="Ne plus ignorer les autres" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/fr/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..4e7e84199d
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM..." name="IM"/>
+ <menu_item_call label="Appel..." name="Call"/>
+ <menu_item_call label="Ouvrir l&apos;historique du chat..." name="Chat history"/>
+ <menu_item_call label="Voir le profil" name="View Profile"/>
+ <menu_item_call label="Téléporter" name="teleport"/>
+ <menu_item_call label="Devenir amis" name="add_friend"/>
+ <menu_item_call label="Supprimer cet ami" name="remove_friend"/>
+ <menu_item_call label="Inviter dans le groupe..." name="Invite"/>
+ <menu_item_call label="Carte" name="Map"/>
+ <menu_item_call label="Partager" name="Share"/>
+ <menu_item_call label="Payer" name="Pay"/>
+ <menu_item_check label="Ignorer/Ne plus ignorer" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/fr/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..c515a8e8e5
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Trier par nom" name="sort_by_name"/>
+ <menu_item_check label="Trier par date" name="sort_by_date"/>
+ <menu_item_check label="Trier avec les amis en haut" name="sort_by_friends"/>
+ <menu_item_call label="Afficher l&apos;historique du Chat près de moi" name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_edit.xml b/indra/newview/skins/default/xui/fr/menu_edit.xml
index 56669f31e1..56669f31e1 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_edit.xml
+++ b/indra/newview/skins/default/xui/fr/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_favorites.xml b/indra/newview/skins/default/xui/fr/menu_favorites.xml
index 5f1545fde7..5f1545fde7 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/fr/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml b/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml
index 062dd0f005..062dd0f005 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_group_plus.xml b/indra/newview/skins/default/xui/fr/menu_group_plus.xml
index ad76f11d79..ad76f11d79 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/fr/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml b/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml
index 09c9f5084a..09c9f5084a 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_im_conversation.xml b/indra/newview/skins/default/xui/fr/menu_im_conversation.xml
new file mode 100644
index 0000000000..1ec5910c8f
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Voir le profil" name="View Profile"/>
+ <menu_item_call label="Devenir amis" name="Add Friend"/>
+ <menu_item_call label="Supprimer cet ami" name="remove_friend"/>
+ <menu_item_call label="Proposer une téléportation." name="offer_teleport"/>
+ <menu_item_call label="Inviter dans le groupe..." name="invite_to_group"/>
+ <menu_item_call label="Historique du chat..." name="chat_history"/>
+ <menu_item_call label="Zoomer en avant" name="zoom_in"/>
+ <menu_item_call label="Carte" name="map"/>
+ <menu_item_call label="Partager" name="Share"/>
+ <menu_item_call label="Payer" name="Pay"/>
+ <menu_item_check label="Bloquer le chat vocal" name="Block/Unblock"/>
+ <menu_item_check label="Ignorer le texte" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/fr/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..03a091d1cc
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Vue compacte" name="compact_view"/>
+ <menu_item_check label="Vue développée" name="expanded_view"/>
+ <menu_item_check label="Afficher l’heure" name="IMShowTime"/>
+ <menu_item_check label="Afficher les noms dans les conversations privées" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/fr/menu_imchiclet_adhoc.xml
index 4d9a103058..4d9a103058 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/fr/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/fr/menu_imchiclet_group.xml
index 59f97d8b48..59f97d8b48 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/fr/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/fr/menu_imchiclet_p2p.xml
index ecc8cee413..ecc8cee413 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/fr/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
index 53f22bb44a..53f22bb44a 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml
index f3b974aba5..f3b974aba5 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
index ac70df472d..ac70df472d 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml
index a9b2883cca..a9b2883cca 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index 627d3068c3..627d3068c3 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
index 1076af44d9..1076af44d9 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml
index 364872c875..364872c875 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_land.xml b/indra/newview/skins/default/xui/fr/menu_land.xml
index b84daee3ae..b84daee3ae 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_land.xml
+++ b/indra/newview/skins/default/xui/fr/menu_land.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_landmark.xml b/indra/newview/skins/default/xui/fr/menu_landmark.xml
index 73eaa4af7e..73eaa4af7e 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/fr/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_login.xml b/indra/newview/skins/default/xui/fr/menu_login.xml
index dc6b2793ca..dc6b2793ca 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_login.xml
+++ b/indra/newview/skins/default/xui/fr/menu_login.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_media_ctrl.xml b/indra/newview/skins/default/xui/fr/menu_media_ctrl.xml
index 1941ad2cbf..1941ad2cbf 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/fr/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_mini_map.xml b/indra/newview/skins/default/xui/fr/menu_mini_map.xml
index b9d0a70383..b9d0a70383 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/fr/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/fr/menu_model_import_gear_default.xml
index af6bfcd028..af6bfcd028 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/fr/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_navbar.xml b/indra/newview/skins/default/xui/fr/menu_navbar.xml
index 08d810b653..08d810b653 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/fr/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_nearby_chat.xml b/indra/newview/skins/default/xui/fr/menu_nearby_chat.xml
index 99e22aeff7..99e22aeff7 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/fr/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_notification_well_button.xml b/indra/newview/skins/default/xui/fr/menu_notification_well_button.xml
index 323bfdbf16..323bfdbf16 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/fr/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_object.xml b/indra/newview/skins/default/xui/fr/menu_object.xml
index 573b6da582..573b6da582 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_object.xml
+++ b/indra/newview/skins/default/xui/fr/menu_object.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_object_icon.xml b/indra/newview/skins/default/xui/fr/menu_object_icon.xml
index 69f8e88a0d..7c94930160 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/fr/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Profil de l&apos;objet..." name="Object Profile"/>
<menu_item_call label="Ignorer..." name="Block"/>
+ <menu_item_call label="Voir sur la carte" name="show_on_map"/>
+ <menu_item_call label="Me téléporter à l’emplacement de l&apos;objet" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml b/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml
index b5181f4f82..21b19eded6 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Nouveaux cheveux" name="New Hair"/>
<menu_item_call label="Nouveaux yeux" name="New Eyes"/>
</menu>
+ <menu_item_call label="Développer tous les dossiers" name="expand"/>
+ <menu_item_call label="Réduire tous les dossiers" name="collapse"/>
<menu_item_call label="Renommer la tenue" name="rename"/>
<menu_item_call label="Supprimer la tenue" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_outfit_tab.xml b/indra/newview/skins/default/xui/fr/menu_outfit_tab.xml
index 2a7f618e07..2a7f618e07 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/fr/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_participant_list.xml b/indra/newview/skins/default/xui/fr/menu_participant_list.xml
index f91a30f6bb..f91a30f6bb 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/fr/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_participant_view.xml b/indra/newview/skins/default/xui/fr/menu_participant_view.xml
new file mode 100644
index 0000000000..1811082c84
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Trier les conversations par type" name="sort_sessions_by_type"/>
+ <menu_item_check label="Trier les conversations par nom" name="sort_sessions_by_name"/>
+ <menu_item_check label="Trier les conversations par activité récente" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Trier les participants par nom" name="sort_participants_by_name"/>
+ <menu_item_check label="Trier les participants par activité récente" name="sort_participants_by_recent"/>
+ <menu_item_call label="Préférences pour le chat..." name="chat_preferences"/>
+ <menu_item_call label="Préférences pour la confidentialité" name="privacy_preferences"/>
+ <menu_item_check label="Journal des conversations..." name="Conversation"/>
+ <menu_item_check label="Traduire le Chat près de moi" name="Translate_chat"/>
+ <menu_item_check label="Paramètres de traduction" name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/fr/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..47589572c2
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Ne plus ignorer" name="unblock"/>
+ <menu_item_call label="Profil..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/fr/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..79880dd16d
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Ignorer un résident par son nom…" name="block_resident_by_name"/>
+ <menu_item_call label="Ignorer un objet par son nom" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/fr/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..13f1575090
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Trier par nom" name="sort_by_name"/>
+ <menu_item_check label="Trier par type" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_friends_view.xml b/indra/newview/skins/default/xui/fr/menu_people_friends_view.xml
new file mode 100644
index 0000000000..cc81172462
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Trier par nom" name="sort_name"/>
+ <menu_item_check label="Trier par statut" name="sort_status"/>
+ <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/>
+ <menu_item_check label="Afficher les droits octroyés" name="view_permissions"/>
+ <menu_item_check label="Afficher le journal des conversations..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml
index a6170a6c16..a6170a6c16 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_people_groups.xml b/indra/newview/skins/default/xui/fr/menu_people_groups.xml
index eb51b4cf7e..8e32f065fa 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Afficher les infos" name="View Info"/>
<menu_item_call label="Chat" name="Chat"/>
- <menu_item_call label="Appeler" name="Call"/>
+ <menu_item_call label="Appel" name="Call"/>
<menu_item_call label="Activer" name="Activate"/>
<menu_item_call label="Quitter" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_groups_view.xml b/indra/newview/skins/default/xui/fr/menu_people_groups_view.xml
new file mode 100644
index 0000000000..79ede5e22d
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Afficher les icônes des groupes" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml
index 34f949cf2c..34f949cf2c 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_people_nearby.xml b/indra/newview/skins/default/xui/fr/menu_people_nearby.xml
index 26bd3978a9..6f7d02ef74 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Voir le profil" name="View Profile"/>
- <menu_item_call label="Devenir amis" name="Add Friend"/>
- <menu_item_call label="Supprimer cet ami" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Appeler" name="Call"/>
- <menu_item_call label="Carte" name="Map"/>
- <menu_item_call label="Partager" name="Share"/>
- <menu_item_call label="Payer" name="Pay"/>
- <menu_item_check label="Ignorer/Ne plus ignorer" name="Block/Unblock"/>
- <menu_item_call label="Proposer une téléportation" name="teleport"/>
+ <menu_item_call label="Voir le profil" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Téléporter" name="offer_teleport"/>
+ <menu_item_call label="Appel" name="voice_call"/>
+ <menu_item_call label="Afficher l&apos;historique du chat..." name="chat_history"/>
+ <menu_item_call label="Devenir amis" name="add_friend"/>
+ <menu_item_call label="Supprimer cet ami" name="remove_friend"/>
+ <menu_item_call label="Inviter dans le groupe..." name="invite_to_group"/>
+ <menu_item_call label="Zoomer en avant" name="zoom_in"/>
+ <menu_item_call label="Carte" name="map"/>
+ <menu_item_call label="Partager" name="share"/>
+ <menu_item_call label="Payer" name="pay"/>
+ <menu_item_check label="Ignorer/Ne plus ignorer" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/fr/menu_people_nearby_multiselect.xml
index 8400ec0a14..37abf831c2 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Devenir amis" name="Add Friends"/>
- <menu_item_call label="Supprimer des amis" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Appeler" name="Call"/>
- <menu_item_call label="Partager" name="Share"/>
- <menu_item_call label="Payer" name="Pay"/>
- <menu_item_call label="Proposer une téléportation" name="teleport"/>
+ <menu_item_call label="Devenir amis" name="add_friends"/>
+ <menu_item_call label="Supprimer des amis" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Appeler" name="call"/>
+ <menu_item_call label="Partager" name="share"/>
+ <menu_item_call label="Payer" name="pay"/>
+ <menu_item_call label="Téléporter" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/fr/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..086002dce5
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Trier par intervenants récents" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Trier par nom" name="sort_name"/>
+ <menu_item_check label="Trier par distance" name="sort_distance"/>
+ <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/>
+ <menu_item_check label="Afficher la carte" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml
index 8bb466b8d6..8bb466b8d6 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_people_recent_view.xml b/indra/newview/skins/default/xui/fr/menu_people_recent_view.xml
new file mode 100644
index 0000000000..a7d698ab7c
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Trier en commençant par le plus récent" name="sort_most"/>
+ <menu_item_check label="Trier par nom" name="sort_name"/>
+ <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml
index 93b90ae61c..93b90ae61c 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_picks.xml b/indra/newview/skins/default/xui/fr/menu_picks.xml
index 7d7174d43c..7d7174d43c 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_picks.xml
+++ b/indra/newview/skins/default/xui/fr/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_picks_plus.xml b/indra/newview/skins/default/xui/fr/menu_picks_plus.xml
index b6cde6d6e2..b6cde6d6e2 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/fr/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_place.xml b/indra/newview/skins/default/xui/fr/menu_place.xml
index 6b0f4db752..6b0f4db752 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_place.xml
+++ b/indra/newview/skins/default/xui/fr/menu_place.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_place_add_button.xml b/indra/newview/skins/default/xui/fr/menu_place_add_button.xml
index 92f9e7719d..92f9e7719d 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/fr/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/fr/menu_places_gear_folder.xml
index 3fdf3bf3c4..3fdf3bf3c4 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/fr/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml
index b48f6ea693..b48f6ea693 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_profile_overflow.xml b/indra/newview/skins/default/xui/fr/menu_profile_overflow.xml
index ddf898b791..ddf898b791 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/fr/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_save_outfit.xml b/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
index f78db411b3..f78db411b3 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml b/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml
index 46efa30bd6..46efa30bd6 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_slurl.xml b/indra/newview/skins/default/xui/fr/menu_slurl.xml
index ddfa5c0849..ddfa5c0849 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/fr/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/fr/menu_teleport_history_gear.xml
index 3dea662cc2..3dea662cc2 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
index fb4582dbce..fb4582dbce 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/fr/menu_teleport_history_tab.xml
index 369680985d..369680985d 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/fr/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_text_editor.xml b/indra/newview/skins/default/xui/fr/menu_text_editor.xml
index c31b0c8556..c31b0c8556 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/fr/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_toolbars.xml b/indra/newview/skins/default/xui/fr/menu_toolbars.xml
index f74d206d56..f74d206d56 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/fr/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_topinfobar.xml b/indra/newview/skins/default/xui/fr/menu_topinfobar.xml
index dc68f40fe7..dc68f40fe7 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/fr/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_agent.xml b/indra/newview/skins/default/xui/fr/menu_url_agent.xml
index 5ed627fbc3..d701b3a414 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Voir le profil du résident" name="show_agent"/>
+ <menu_item_call label="Voir le profil" name="show_agent"/>
+ <menu_item_call label="Envoyer IM..." name="send_im"/>
+ <menu_item_call label="Devenir amis..." name="add_friend"/>
<menu_item_call label="Copier le nom dans le presse-papiers" name="url_copy_label"/>
<menu_item_call label="Copier la SLurl dans le presse-papiers" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_url_group.xml b/indra/newview/skins/default/xui/fr/menu_url_group.xml
index de90c3ff7e..de90c3ff7e 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_http.xml b/indra/newview/skins/default/xui/fr/menu_url_http.xml
index 5e96352999..5e96352999 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_inventory.xml b/indra/newview/skins/default/xui/fr/menu_url_inventory.xml
index 8ab88b4be7..8ab88b4be7 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_map.xml b/indra/newview/skins/default/xui/fr/menu_url_map.xml
index 67e6986f5d..67e6986f5d 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_objectim.xml b/indra/newview/skins/default/xui/fr/menu_url_objectim.xml
index f581c3ef9d..0a934d3e69 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Afficher les informations sur l&apos;objet" name="show_object"/>
+ <menu_item_call label="Profil de l&apos;objet…" name="show_object"/>
<menu_item_call label="Voir sur la carte" name="show_on_map"/>
<menu_item_call label="Me téléporter à l&apos;emplacement de l&apos;objet" name="teleport_to_object"/>
<menu_item_call label="Copier le nom de l&apos;objet dans le presse-papiers" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_url_parcel.xml b/indra/newview/skins/default/xui/fr/menu_url_parcel.xml
index 07b0eeca49..07b0eeca49 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_slapp.xml b/indra/newview/skins/default/xui/fr/menu_url_slapp.xml
index f4b7e212ca..f4b7e212ca 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_slurl.xml b/indra/newview/skins/default/xui/fr/menu_url_slurl.xml
index e44943cf15..e44943cf15 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_url_teleport.xml b/indra/newview/skins/default/xui/fr/menu_url_teleport.xml
index a5075a2740..a5075a2740 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/fr/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 85020afe25..457b756c7d 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Arrêter mon animation" name="Stop Animating My Avatar"/>
<menu_item_call label="Marcher / Courir / Voler..." name="Walk / run / fly"/>
</menu>
- <menu label="Statut" name="Status">
- <menu_item_call label="Absent" name="Set Away"/>
- <menu_item_call label="Occupé" name="Set Busy"/>
- </menu>
+ <menu label="Statut" name="Status"/>
<menu_item_call label="Acheter des L$..." name="Buy and Sell L$"/>
<menu_item_call label="Boîte d&apos;envoi vendeur..." name="MerchantOutbox"/>
<menu_item_call label="Page d&apos;accueil du compte..." name="Manage My Account">
@@ -32,14 +29,18 @@
<menu_item_call label="Quitter [APP_NAME]" name="Quit"/>
</menu>
<menu label="Communiquer" name="Communicate">
- <menu_item_check label="Chat..." name="Nearby Chat"/>
+ <menu_item_check label="Conversations..." name="Conversations"/>
+ <menu_item_check label="Chat près de moi..." name="Nearby Chat"/>
<menu_item_check label="Parler" name="Speak"/>
- <menu_item_check label="Paramètres vocaux..." name="Nearby Voice"/>
- <menu_item_check label="Effet de voix..." name="ShowVoice"/>
+ <menu label="Effet de voix" name="VoiceMorphing">
+ <menu_item_check label="Aucun effet de voix" name="NoVoiceMorphing"/>
+ <menu_item_check label="Aperçu..." name="Preview"/>
+ <menu_item_call label="S&apos;abonner..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Gestes..." name="Gestures"/>
- <menu_item_call label="Amis" name="My Friends"/>
- <menu_item_call label="Groupes" name="My Groups"/>
- <menu_item_call label="Personnes près de vous" name="Active Speakers"/>
+ <menu_item_check label="Amis" name="My Friends"/>
+ <menu_item_check label="Groupes" name="My Groups"/>
+ <menu_item_check label="Personnes près de vous" name="Active Speakers"/>
<menu_item_call label="Liste des ignorés" name="Block List"/>
</menu>
<menu label="Monde" name="World">
@@ -115,7 +116,6 @@
<menu_item_call label="Acheter" name="Menu Object Buy"/>
<menu_item_call label="Prendre" name="Menu Object Take"/>
<menu_item_call label="Prendre une copie" name="Take Copy"/>
- <menu_item_call label="Enregistrer dans mon inventaire" name="Save Object Back to My Inventory"/>
<menu_item_call label="Enregistrer dans le contenu des objets" name="Save Object Back to Object Contents"/>
<menu_item_call label="Renvoi de l&apos;objet" name="Return Object back to Owner"/>
</menu>
@@ -130,6 +130,7 @@
<menu_item_call label="Groupes de liens..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Personnages..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Vue / test..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Refiger la région" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Options" name="Options">
<menu_item_check label="Afficher les droits avancés" name="DebugPermissions"/>
@@ -159,6 +160,13 @@
<menu label="Aide" name="Help">
<menu_item_call label="Aide rapide..." name="How To"/>
<menu_item_call label="Aide de [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Guide de l&apos;utilisateur" name="User’s guide"/>
+ <menu_item_call label="Base de connaissances" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Forums de la communauté" name="Community Forums"/>
+ <menu_item_call label="Portail d&apos;assistance" name="Support portal"/>
+ <menu_item_call label="Actualités [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs [SECOND_LIFE]" name="Second Life Blogs"/>
<menu_item_call label="Signaler une infraction" name="Report Abuse"/>
<menu_item_call label="Signaler un bug" name="Report Bug"/>
<menu_item_call label="À propos de [APP_NAME]" name="About Second Life"/>
@@ -385,9 +393,14 @@
<menu_item_call label="Test femme" name="Test Female"/>
<menu_item_check label="Autoriser la sélection de l&apos;avatar" name="Allow Select Avatar"/>
</menu>
+ <menu label="Vitesse d&apos;animation" name="Animation Speed">
+ <menu_item_call label="Toutes les animations 10 % plus rapides" name="All Animations 10 Faster"/>
+ <menu_item_call label="Toutes les animations 10 % plus lentes" name="All Animations 10 Slower"/>
+ <menu_item_call label="Réinitialiser la vitesse de toutes les animations" name="Reset All Animation Speed"/>
+ <menu_item_check label="Animations au ralenti" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Forcer les paramètres par défaut" name="Force Params to Default"/>
<menu_item_check label="Infos sur l&apos;animation" name="Animation Info"/>
- <menu_item_check label="Animations au ralenti" name="Slow Motion Animations"/>
<menu_item_check label="Afficher la direction du regard" name="Show Look At"/>
<menu_item_check label="Afficher la direction du pointeur" name="Show Point At"/>
<menu_item_check label="Débogages des mises à jour" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml
index 187cb4bcd2..187cb4bcd2 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml b/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml
index c3d9d908b0..c3d9d908b0 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml b/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml
index 4d88445506..4d88445506 100644..100755
--- a/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/fr/mime_types.xml b/indra/newview/skins/default/xui/fr/mime_types.xml
index 322887fb76..322887fb76 100644..100755
--- a/indra/newview/skins/default/xui/fr/mime_types.xml
+++ b/indra/newview/skins/default/xui/fr/mime_types.xml
diff --git a/indra/newview/skins/default/xui/fr/mime_types_linux.xml b/indra/newview/skins/default/xui/fr/mime_types_linux.xml
index 3a7ff979ee..3a7ff979ee 100644..100755
--- a/indra/newview/skins/default/xui/fr/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/fr/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/fr/mime_types_mac.xml b/indra/newview/skins/default/xui/fr/mime_types_mac.xml
index 3a7ff979ee..3a7ff979ee 100644..100755
--- a/indra/newview/skins/default/xui/fr/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/fr/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index 30154d1873..e73cc6e6e0 100644..100755
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -515,6 +515,24 @@ Consulter [_URL] pour en savoir plus ?
</url>
<usetemplate ignoretext="Mon pilote graphique est obsolète." name="okcancelignore" notext="Non" yestext="Oui"/>
</notification>
+ <notification name="AMDOldDriver">
+ Il existe probablement un pilote plus récent pour votre puce graphique. La mise à jour des pilotes graphiques est susceptible d&apos;améliorer considérablement les performances.
+
+ Visiter la page [_URL] pour rechercher d&apos;éventuelles mises à jour de pilotes ?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Mon pilote graphique est obsolète." name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Il existe probablement un pilote plus récent pour votre puce graphique. La mise à jour des pilotes graphiques est susceptible d&apos;améliorer considérablement les performances.
+
+ Visiter la page [_URL] pour rechercher d&apos;éventuelles mises à jour de pilotes ?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=fr
+ </url>
+ <usetemplate ignoretext="Mon pilote graphique est obsolète." name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
<notification name="UnknownGPU">
Votre système contient une carte graphique que [APP_NAME] ne reconnaît pas.
Cela est souvent le cas avec le nouveau matériel qui n&apos;a pas encore été testé avec [APP_NAME]. Cela ne posera probablement pas de problème, mais vous devrez peut-être ajuster vos paramètres graphiques.
@@ -1543,10 +1561,13 @@ Quitter le groupe ?
Impossible de proposer votre amitié actuellement. Veuillez réessayer dans un moment.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- Le mode Occupé est sélectionné.
-Les chats et les messages instantanés ne s&apos;afficheront pas. Les messages instantanés génèreront la réponse en mode occupé que vous avez créée. Toutes les offres de téléportation seront refusées. Toutes les offres d&apos;inventaire iront dans la corbeille.
- <usetemplate ignoretext="Je change mon statut en mode Occupé" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Ne pas déranger est activé. Vous ne recevrez pas les notifications de communications entrantes.
+
+- Les autres résidents recevront votre réponse Ne pas déranger (définie dans Préférences &gt; Général).
+- Toutes les offres de téléportation seront refusées.
+- Les appels vocaux seront refusés.
+ <usetemplate ignoretext="J&apos;ai changé mon statut et suis désormais en mode Ne pas déranger." name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Vous avez atteint le nombre de groupes maximum. Avant de pouvoir rejoindre ce groupe, vous devez en quitter un ou refuser cette offre.
@@ -2033,6 +2054,10 @@ Déplacer les objets de l&apos;inventaire ?
Accéder à votre [http://secondlife.com/account/ Page d&apos;accueil] pour consulter l&apos;historique de votre compte ?
<usetemplate ignoretext="Lancer mon navigateur pour consulter l&apos;historique de mon compte" name="okcancelignore" notext="Annuler" yestext="Aller sur cette page"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Quand vous ajoutez une personne à une conversation existante, une nouvelle conversation est créée. Tous les participants recevront les notifications de nouvelle conversation.
+ <usetemplate ignoretext="Confirmer l&apos;ajout de participants au chat" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
<notification name="ConfirmQuit">
Êtes-vous certain de vouloir quitter ?
<usetemplate ignoretext="Confirmer avant de quitter" name="okcancelignore" notext="Ne pas quitter" yestext="Quitter"/>
@@ -2107,14 +2132,14 @@ Voulez-vous le remplacer par l&apos;objet sélectionné ?
<button ignore="Ne jamais remplacer" name="No" text="Annuler"/>
</form>
</notification>
- <notification label="Réponse si occupé(e)" name="BusyModePay">
- Vous êtes en mode occupé et vous ne recevrez donc aucun objet en échange de ce paiement.
+ <notification label="Avertissement de mode Ne pas déranger" name="DoNotDisturbModePay">
+ Vous avez activé Ne pas déranger. Vous ne recevrez aucun article proposé en échange de ce paiement.
-Souhaitez-vous quitter le mode occupé avant de terminer cette transaction ?
+Voulez-vous désactiver Ne pas déranger avant de terminer cette transaction ?
<form name="form">
- <ignore name="ignore" save_option="true" text="Je suis sur le point de payer une personne ou un objet mais suis en mode Occupé"/>
- <button ignore="Toujours quitter le mode occupé" name="Yes" text="OK"/>
- <button ignore="Ne jamais quitter le mode occupé" name="No" text="Annuler"/>
+ <ignore name="ignore" text="Je suis sur le point de payer une personne ou un objet mais suis en mode Ne pas déranger"/>
+ <button ignore="Toujours quitter le mode Ne pas déranger" name="Yes" text="OK"/>
+ <button ignore="Ne jamais quitter le mode Ne pas déranger" name="No" text="Annuler"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2249,11 +2274,8 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
<notification name="GroupNotice">
Sujet : [SUBJECT], Message : [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; est en ligne
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; est hors ligne
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; est [STATUS]
</notification>
<notification name="AddSelfFriend">
Même si vous êtes extrêmement sympathique, vous ne pouvez pas devenir ami avec vous-même.
@@ -2482,13 +2504,6 @@ Vous ne pouvez pas voler ici.
<notification name="DynamicPathfindingDisabled">
La recherche de chemin dynamique n&apos;est pas activée dans cette région. Il se peut que les objets scriptés utilisant des appels LSL de recherche de chemin ne fonctionnent pas comme prévu pour cette région.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- La modification de certains objets de cette région risque d&apos;entraîner un comportement incorrect des autres objets mobiles. Pour que les objets mobiles se comportent correctement, cliquez sur Refiger la région. Pour plus d&apos;informations, choisissez Aide.
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Aide" ignoretext="La modification de certains objets de cette région risque d&apos;entraîner un comportement incorrect des autres objets mobiles." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Une erreur est survenue. Un problème réseau ou serveur s&apos;est peut-être produit ou vous ne disposez pas de droits de construction. Se déconnecter puis se reconnecter permet parfois de résoudre le problème.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2751,7 +2766,7 @@ Acceptez-vous ?
<notification name="ScriptQuestionCaution">
Avertissement : l&apos;objet &lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt; souhaite un accès total à votre compte en Linden dollars. Si vous autorisez cet accès, il pourra supprimer des fonds de votre compte à tout moment ou le vider entièrement de façon continue sans avis préalable.
-Il est rare qu&apos;une telle demande soit légitime. N&apos;autorisez pas cet accès si vous ne comprenez pas entièrement pourquoi l&apos;objet souhaite accéder à votre compte.
+N&apos;autorisez pas cet accès si vous ne comprenez pas entièrement pourquoi l&apos;objet souhaite accéder à votre compte.
<form name="form">
<button name="Grant" text="Permettre un accès total"/>
<button name="Deny" text="Refuser"/>
@@ -3332,4 +3347,633 @@ Désactivation des mises à jour futures de ce fichier...
Vous allez supprimer [NUM_ITEMS] articles. Voulez-vous vraiment continuer ?
<usetemplate ignoretext="Voulez-vous vraiment supprimer plusieurs articles ?" name="okcancelignore" notext="Non" yestext="Oui"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] vous a figé. Vous ne pouvez pas bouger ni interagir avec le monde.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] vous a figé pour une durée de [AV_FREEZE_TIME] secondes. Vous ne pouvez pas bouger ni interagir avec le monde.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar figé.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] vous a libéré.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar libéré.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ Vous n&apos;avez pas pu figer ce que vous vouliez car vous ne disposez pas des droits d&apos;admin pour cette parcelle.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Vous n&apos;êtes plus figé, vous pouvez reprendre votre vie.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Impossible de figer cet utilisateur.
+ </notification>
+ <notification name="NowOwnObject">
+ Vous êtes désormais le propriétaire de l&apos;objet [OBJECT_NAME].
+ </notification>
+ <notification name="CantRezOnLand">
+ Impossible de rezzer l&apos;objet à [OBJECT_POS] car le propriétaire de ce terrain de l&apos;autorise pas. Utilisez l&apos;outil Terrain pour voir à qui appartiennent les terrains.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ Impossible de rezzer l&apos;objet car il y a trop de demandes.
+ </notification>
+ <notification name="SitFailCantMove">
+ Vous ne pouvez pas vous asseoir car vous ne pouvez actuellement pas bouger.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Vous ne pouvez pas vous asseoir car votre présence sur ce terrain n&apos;est pas autorisée.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Essayez de vous rapprocher. Impossible de vous asseoir sur l&apos;objet car
+il ne se trouve pas dans la même région que vous.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Création d&apos;un nouvel objet impossible. La région est pleine.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Échec du placement de l&apos;objet à l&apos;emplacement spécifié. Veuillez réessayer.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Vous ne pouvez pas créer d&apos;arbres ni d&apos;herbe sur un terrain qui ne vous appartient pas.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ Échec de la copie car vous ne disposez pas des droits requis pour copier l&apos;objet [OBJ_NAME].
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ Échec de la copie car l&apos;objet [OBJ_NAME] ne peut pas vous être transféré.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ Échec de la copie car l&apos;objet [OBJ_NAME] contribue au maillage de navigation.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Dupliquer sans objet racine sélectionné
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Impossible de dupliquer les objets car la région est pleine.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Impossible de dupliquer les objets - la parcelle sur laquelle ils sont est introuvable.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Création de l&apos;objet impossible car
+la parcelle est pleine.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Échec d&apos;une tentative pour rezzer un objet.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Impossible de créer l&apos;article qui a provoqué des problèmes pour cette région.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Cet article d&apos;inventaire a été placé sur liste noire.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Vous n&apos;êtes actuellement pas autorisé à créer des objets.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Recherche de terrain bloquée.
+Vous avez effectué trop de recherches de terrain trop rapidement.
+Veuillez réessayer dans une minute.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Ressources de script insuffisantes pour attacher cet objet.
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Vous êtes mort et avez été téléporté à votre domicile.
+ </notification>
+ <notification name="EjectComingSoon">
+ Votre présence ici n&apos;est plus autorisée et vous disposez de [EJECT_TIME] secondes pour partir.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Vous ne pouvez pas pénétrer dans cette région car
+le serveur est plein.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Le réenregistrement dans l&apos;inventaire a été désactivé.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ Impossible d&apos;enregistrer [OBJ_NAME] dans le contenu des objets car l&apos;objet à partir duquel il a été rezzé n&apos;existe plus.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ Impossible d&apos;enregistrer [OBJ_NAME] dans le contenu des objets car vous ne disposez pas des droits requis pour modifier l&apos;objet [DEST_NAME].
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ Impossible de réenregistrer [OBJ_NAME] dans l&apos;inventaire -- cette opération a été désactivée.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ Vous ne pouvez pas copier votre sélection car vous n&apos;avez pas le droit de copier l&apos;objet [OBJ_NAME].
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ Vous ne pouvez pas copier votre sélection car l&apos;objet [OBJ_NAME] n&apos;est pas transférable.
+ </notification>
+ <notification name="NoTransNoCopy">
+ Vous ne pouvez pas copier votre sélection car l&apos;objet [OBJ_NAME] n&apos;est pas transférable.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ La suppression de l&apos;objet [OBJ_NAME] du simulateur n&apos;est pas autorisée par le système de droits.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ Vous ne pouvez pas enregistrer votre sélection car vous n&apos;avez pas le droit de modifier l&apos;objet [OBJ_NAME].
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ Vous ne pouvez pas enregistrer votre sélection car l&apos;objet [OBJ_NAME] ne peut pas être copié.
+ </notification>
+ <notification name="NoModNoTaking">
+ Vous ne pouvez pas prendre votre sélection car vous n&apos;avez pas le droit de modifier l&apos;objet [OBJ_NAME].
+ </notification>
+ <notification name="RezDestInternalError">
+ Erreur interne : type de destination inconnue.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Échec de la suppression car l&apos;objet est introuvable
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Exclusion de cet utilisateur impossible.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Cette région ne vous permet pas d&apos;y définir votre domicile.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Vous ne pouvez définir votre domicile que sur votre terrain ou un infohub du continent.
+ </notification>
+ <notification name="HomePositionSet">
+ Emplacement du domicile défini.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar expulsé.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ Vous n&apos;avez pas pu réaliser l&apos;exclusion car vous ne disposez pas des droits d&apos;admin pour cette parcelle.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] car la parcelle est pleine.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] car vos objets ne sont pas autorisés sur cette parcelle.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] car il n&apos;y a pas suffisamment de ressources pour cet objet sur cette parcelle.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] car l&apos;autre région exécute une version plus ancienne qui ne prend pas en charge la réception de cet objet via le passage à une autre région.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] car vous ne pouvez pas modifier le maillage de navigation d&apos;une région à une autre.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Impossible de déplacer [OBJECT_NAME] jusqu&apos;à
+[OBJ_POSITION] dans la région [REGION_NAME] pour une raison inconnue. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ Vous n&apos;êtes pas autorisé à modifier cet objet.
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Impossible d&apos;activer les propriétés physiques pour un objet qui contribue au maillage de navigation.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Impossible d&apos;activer les propriétés physiques pour les objets avec images-clés.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Impossible d&apos;activer les propriétés physiques pour l&apos;objet -- ressources de terrain insuffisantes.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Impossible d&apos;activer les propriétés physiques pour les objets avec un coût de ressources physiques supérieur à [MAX_OBJECTS]
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Cet objet ne peut pas contenir de morceau concave car c&apos;est un fantôme qui contribue au maillage de navigation.
+ </notification>
+ <notification name="UnableAddItem">
+ Ajout de l&apos;article impossible.
+ </notification>
+ <notification name="UnableEditItem">
+ Modification impossible
+ </notification>
+ <notification name="NoPermToEdit">
+ Modification interdite.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Pas autorisé à copier cet inventaire.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Impossible d&apos;enregistrer dans le contenu des objets : L&apos;article n&apos;existe plus.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Impossible d&apos;enregistrer dans le contenu des objets : Un article avec ce nom existe déjà dans l&apos;inventaire.
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Impossible d&apos;enregistrer dans le contenu des objets : cela modifierait les droits d&apos;attache.
+ </notification>
+ <notification name="TooManyScripts">
+ Trop de scripts.
+ </notification>
+ <notification name="UnableAddScript">
+ Ajout du script impossible.
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Le serveur d&apos;actifs n&apos;a pas répondu assez vite. Objet renvoyé dans le sim.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ Les formes physiques ne sont pas activées pour cette région.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Vous ne pouvez pas modifier le maillage de navigation d&apos;une région à une autre.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Impossible de définir les propriétés physiques pour ce type d&apos;objet.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ Vous devenez définir une forme pour la prim racine.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ Les matériaux physiques ne sont pas activés pour cette région.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Les matériaux physiques ne peuvent être ajustés que pour les prims racines.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ La configuration de matériaux physiques sur les personnages n&apos;est pas prise en charge actuellement.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Une ou plusieurs propriétés des ressources physiques spécifiées n&apos;étaient pas valides.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Vous ne pouvez pas changer le type de raccord d&apos;un objet avec maillage.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Vous ne pouvez pas changer la forme d&apos;un objet avec maillage.
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Vous ne pouvez pas pénétrer dans cette région car \ncar la région est pleine.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Échec du lien -- les propriétaires sont différents
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Échec du lien -- vous ne pouvez pas modifier le maillage de navigation d&apos;une région à une autre.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Échec du lien car vous ne disposez pas des droits de modification.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Échec du lien -- trop de primitives
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Échec du lien -- impossible de lier pas de copie et pas de transfert
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Échec du lien - il n&apos;y a rien qui puisse être lié.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Échec du lien -- trop de personnages de recherche de chemin
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Échec du lien -- ressources de terrain insuffisantes
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ Cet objet utilise trop de ressources physiques - sa dynamique a été désactivée.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Vous avez été téléporté chez vous par l&apos;objet [OBJECT_NAME] sur la parcelle [PARCEL_NAME].
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Vous avez été téléporté chez vous par l&apos;objet [OBJECT_NAME].
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Vous avez été téléporté par un élément sur [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Vous avez été téléporté par l&apos;objet [OBJECT_NAME] sur la parcelle [PARCEL_NAME].
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Vous avez été téléporté par l&apos;objet [OBJECT_NAME] appartenant à [OWNER_ID].
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Vous avez été téléporté par l&apos;objet [OBJECT_NAME] appartenant à un utilisateur inconnu.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Création de l&apos;objet demandé impossible. La région est pleine.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Vous ne pouvez pas attacher plusieurs objets au même endroit.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Vous ne pouvez pas créer plusieurs objets ici.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Création de l&apos;objet demandé impossible. Objet absent de la base de données.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Création de l&apos;objet demandé impossible. Délai d&apos;attente dépassé. Veuillez réessayer.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Création de l&apos;objet demandé impossible. Veuillez réessayer.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Échec de l&apos;action « rezzer », le chargement de l&apos;objet demandé a pris trop longtemps.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Échec du placement de l&apos;objet à l&apos;emplacement spécifié. Veuillez réessayer.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Vous ne pouvez pas créer de plantes sur ce terrain.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Impossible de restaurer l&apos;objet. Position dans le monde introuvable.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Impossible de rezzer l&apos;objet car ses données de maillage ne sont pas valides.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Impossible de rezzer l&apos;objet car il y a déjà trop de scripts dans cette région.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Vos privilèges d&apos;accès ne vous autorisent pas à créer des objets à cet endroit.
+ </notification>
+ <notification name="CantCreateObject">
+ Vous n&apos;êtes actuellement pas autorisé à créer des objets.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Paramètres d&apos;objet non valides
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Vos privilèges d&apos;accès ne vous autorisent pas à dupliquer des objets ici.
+ </notification>
+ <notification name="CantChangeShape">
+ Vous n’êtes pas autorisé à modifier cette forme.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Vos privilèges d&apos;accès ne vous autorisent pas à revendiquer des objets ici.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Échec de la cession car vous de disposez pas des droits de cession des objets pour votre groupe.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Vos privilèges d&apos;accès ne vous autorisent pas à acheter des objets ici.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Impossible d&apos;attacher l&apos;objet car un avatar est assis dessus.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Les arbres et les plantes ne peuvent pas être portés sous forme d&apos;éléments attachés.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Impossible d&apos;attacher les objets appartenant au groupe.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Vous ne pouvez pas attacher des objets qui ne vous appartiennent pas.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Impossible d&apos;attacher les objets contribuant au maillage de navigation.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ Impossible d&apos;attacher l&apos;objet car vous n&apos;avez pas le droit de le déplacer.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Ressources de script insuffisantes pour attacher cet objet.
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Vous ne pouvez pas déposer d&apos;objets ici. Essayez la zone de période d&apos;essai gratuite.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Vous ne pouvez pas déposer les éléments attachés avec maillage. Détachez-les dans l&apos;inventaire puis rezzez-les dans le monde.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ L&apos;élément n&apos;a pas pu être déposé : vous n&apos;avez pas le droit de déposer des éléments à cet endroit.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ L&apos;élément n&apos;a pas pu être déposé : ressources de terrain disponibles insuffisantes.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Les éléments n&apos;ont pas pu être déposés : ressources disponibles insuffisantes.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Impossible de déposer l&apos;objet ici. La parcelle est pleine.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Vous ne pouvez pas toucher/attraper cet objet car vous êtes banni de cette parcelle de terrain.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Veuillez affiner vos paramètres de suppression.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Chargement de l&apos;actif impossible.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Impossible de trouver l&apos;utilisateur à téléporter chez lui
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ échec de la demande de type divine
+ </notification>
+ <notification name="GenericRequestFailed">
+ échec de la demande générique
+ </notification>
+ <notification name="CantUploadPostcard">
+ Chargement de la carte postale impossible. Réessayez ultérieurement.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ Impossible récupérer les détails de l&apos;inventaire pour la notice au groupe.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Impossible d&apos;envoyer une notice au groupe -- ce n&apos;est pas autorisé.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Impossible d&apos;envoyer une notice au groupe - échec de la construction de l&apos;inventaire.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Impossible d&apos;analyser l&apos;inventaire dans la notice.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Échec du chargement du terrain.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Fichier de terrain écrit
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Fichier de terrain écrit, lancement du téléchargement...
+ </notification>
+ <notification name="TerrainBaked">
+ Terrain figé.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Seuls les 10 premiers objets sélectionnés ont été désactivés. Actualisez et effectuez des sélections supplémentaires si nécessaire.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Vous devez mettre votre client à jour pour acheter cette parcelle.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Achat impossible, cette parcelle n&apos;est pas à vendre.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Achat impossible, le prix de vente ou la zone de terrain a changé.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Vous n&apos;êtes pas un acheteur autorisé pour cette parcelle.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Vous ne pouvez pas acheter cette parcelle car elle est déjà en attente d&apos;une autorisation d&apos;achat.
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Vous ne pouvez pas construire d&apos;objets ici car cela saturerait la parcelle.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Vous avez sélectionné des terrains avec des propriétaires différents. Sélectionnez une zone plus petite et réessayez.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Pas suffisamment de parcelles louées dans la sélection pour effectuer la fusion.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Division du terrain impossible.\nPlusieurs parcelles sont sélectionnées.\nVeuillez sélectionner un terrain plus petit.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ Division du terrain impossible.\nParcelle introuvable.\nSignalez-le en allant à Aide -&gt; Signaler un bug...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Division du terrain impossible. Toute la parcelle est sélectionnée.\nVeuillez sélectionner un terrain plus petit.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ Le terrain a été divisé.
+ </notification>
+ <notification name="PassPurchased">
+ Vous avez acheté un pass.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ Cette région n&apos;autorise pas les petites annonces.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Votre pass pour ce terrain arrive à expiration.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Il n&apos;y a pas de surface appropriée sur laquelle s&apos;asseoir, essayez un autre endroit.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Pas de place pour s&apos;asseoir ici, essayez un autre endroit.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ Échec de la revendication de l&apos;objet car vous ne disposez pas des droits requis.
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ Échec de la revendication de l&apos;objet car vous ne disposez pas de suffisamment de L$.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Impossible de céder un terrain appartenant au groupe.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ Échec de l&apos;achat de l&apos;objet car vous ne disposez pas de suffisamment de L$.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ Échec de l&apos;achat d&apos;inventaire car vous ne disposez pas de suffisamment de L$.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ Vous ne disposez pas de suffisamment de L$ pour acheter un pass pour ce terrain.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Impossible d&apos;acheter le pass actuellement. Réessayez ultérieurement.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Création de l&apos;objet impossible car \nla parcelle est pleine.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Échec du placement de l&apos;objet à l&apos;emplacement spécifié. Veuillez réessayer.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Impossible de créer le repère pour l&apos;événement.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ Grâce à vos pouvoirs de type divin, vous n&apos;êtes plus figé.
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Échec de la demande de pouvoirs spéciaux. Cette demande a été archivée.
+ </notification>
+ <notification name="ExpireExplanation">
+ Le système ne peut pas traiter votre demande actuellement. Délai d&apos;attente dépassé.
+ </notification>
+ <notification name="DieExplanation">
+ Le système ne peut pas traiter votre demande.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Fonds insuffisants pour créer la primitive.
+ </notification>
+ <notification name="RezObjectFailure">
+ Fonds insuffisants pour créer l&apos;objet.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Réinitialiser l&apos;emplacement du domicile car il n&apos;était pas légal.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Vous ne pouvez pas inviter quiconque là où vous vous trouvez actuellement car la région est pleine. Réessayez ultérieurement.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Cette région ne vous permet pas d&apos;y définir votre domicile.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Vous ne pouvez définir votre domicile que sur votre terrain ou un infohub du continent.
+ </notification>
+ <notification name="SetHomePosition">
+ Emplacement du domicile défini.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Impossible de dérezzer l&apos;objet à cause d&apos;un défaut d&apos;inventaire.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Création de l&apos;inventaire demandé impossible.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Création du dossier d&apos;inventaire demandé impossible.
+ </notification>
+ <notification name="CantCreateInventory">
+ Création de cet inventaire impossible.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Création du repère impossible.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Création de la tenue impossible. Veuillez réessayer dans une minute.
+ </notification>
+ <notification name="InventoryNotForSale">
+ L&apos;inventaire n&apos;est pas à vendre.
+ </notification>
+ <notification name="CantFindInvItem">
+ Objet de l&apos;inventaire introuvable.
+ </notification>
+ <notification name="CantFindObject">
+ Objet introuvable.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Les transferts d&apos;argent aux objets sont actuellement désactivés dans cette région.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Impossible de savoir qui payer.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Vous ne pouvez pas donner de L$ à des objets publics.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Échec de la création d&apos;inventaire sur l&apos;objet Second Life.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Une erreur interne nous a empêchés de mettre votre client à jour correctement. Le solde de L$ et le patrimoine affichés dans votre client peuvent ne pas correspondre à votre solde réel sur les serveurs.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Impossible de créer de grandes prims qui coupent d&apos;autres joueurs. Réessayez une fois que les autres joueurs se seront déplacés.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Cela supprimera les journaux des conversations précédentes, ainsi que toute copie de sauvegarde de ce fichier.
+ <usetemplate ignoretext="Confirmer avant de supprimer le journal des conversations précédentes" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Cela supprimera les transcriptions de toutes les conversations précédentes. La liste des conversations passées ne sera pas affectée. Tous les fichiers avec les suffixes .txt et txt.backup dans le dossier [FOLDER] seront supprimés.
+ <usetemplate ignoretext="Confirmer avant la suppression des transcriptions" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Impossible de déplacer les fichiers. Chemin précédent rétabli.
+ <usetemplate ignoretext="Impossible de déplacer les fichiers. Chemin précédent rétabli." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_active_object_row.xml b/indra/newview/skins/default/xui/fr/panel_active_object_row.xml
index 0baa8353d9..0baa8353d9 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/fr/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml
index 4191ba42f9..4191ba42f9 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/fr/panel_avatar_list_item.xml
index 54b8f53e59..c8fa9f340f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Cet(te) ami(e) peut modifier, supprimer ou prendre vos objets."/>
<icon name="permission_map_icon" tool_tip="Cet(te) ami(e) peut vous localiser sur la carte."/>
<icon name="permission_online_icon" tool_tip="Cet(te) ami(e) peut voir lorsque vous êtes en ligne."/>
+ <button name="info_btn" tool_tip="En savoir plus"/>
<button name="profile_btn" tool_tip="Voir le profil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_avatar_tag.xml b/indra/newview/skins/default/xui/fr/panel_avatar_tag.xml
index 20a355b11d..20a355b11d 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/fr/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/fr/panel_block_list_sidetray.xml
index 96add2a74b..0e2b5a9c93 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/fr/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Liste des ignorés
- </text>
- <scroll_list name="blocked" tool_tip="Liste des résidents actuellement ignorés"/>
- <button label="Ignorer une personne" label_selected="Ignorer le résident..." name="Block resident..." tool_tip="Choisir un résident à ignorer"/>
- <button label="Ignorer un objet par son nom" label_selected="Ignorer un objet par son nom..." name="Block object by name..." tool_tip="Choisir un objet à ignorer par nom"/>
- <button label="Ne plus ignorer" label_selected="Ne plus ignorer" name="Unblock" tool_tip="Enlever le résident ou l&apos;objet de la liste des ignorés"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtrer" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Actions sur la personne ou l&apos;objet sélectionné"/>
+ <menu_button name="view_btn" tool_tip="Options de tri"/>
+ <menu_button name="plus_btn" tool_tip="Choisir un résident ou un objet à ignorer"/>
+ <button name="unblock_btn" tool_tip="Enlever le résident ou l’objet de la liste des ignorés"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Liste des résidents actuellement ignorés"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml
index 377f85368f..377f85368f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/fr/panel_bodyparts_list_button_bar.xml
index 5e7442b877..5e7442b877 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/fr/panel_bottomtray_lite.xml
index 5b6d37ce00..5b6d37ce00 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/fr/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_chat_header.xml b/indra/newview/skins/default/xui/fr/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/fr/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/fr/panel_chiclet_bar.xml
index de21996404..de21996404 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_classified_info.xml b/indra/newview/skins/default/xui/fr/panel_classified_info.xml
index c4265be877..c4265be877 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/fr/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/fr/panel_clothing_list_button_bar.xml
index 0b58a4e40b..0b58a4e40b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml
index b23cb91c6f..b23cb91c6f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_cof_wearables.xml b/indra/newview/skins/default/xui/fr/panel_cof_wearables.xml
index c1085aa461..c1085aa461 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/fr/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/fr/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..ebf18f6483
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(chargement)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/fr/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..9c277842b5
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="Incluait une conversation vocale"/>
+ <icon name="unread_ims_icon" tool_tip="Des messages sont arrivés pendant que vous étiez déconnecté."/>
+ <button name="delete_btn" tool_tip="Supprimer cette entrée"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml
index e1fa769f2f..e1fa769f2f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml
index bc0edda5b6..bc0edda5b6 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml b/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml
index a8b95c66fb..a8b95c66fb 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml b/indra/newview/skins/default/xui/fr/panel_edit_classified.xml
index 7b58f2e825..7b58f2e825 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml b/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
index 549864e237..549864e237 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
index 68a7ac54e2..68a7ac54e2 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_hair.xml b/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
index 575cbabc88..575cbabc88 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
index 7e467b130c..7e467b130c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
index 60d8e947f8..60d8e947f8 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_physics.xml b/indra/newview/skins/default/xui/fr/panel_edit_physics.xml
index d79f7df90a..d79f7df90a 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml b/indra/newview/skins/default/xui/fr/panel_edit_pick.xml
index 247e18da82..247e18da82 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
index 9e63c88221..9e63c88221 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shape.xml b/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
index 6a5f71a36b..6a5f71a36b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
index 9a263f6148..9a263f6148 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
index 3eb70923ef..3eb70923ef 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
index f5f2738319..f5f2738319 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
index f562d67937..f562d67937 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
index f97047ae28..f97047ae28 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml
index 086542dee2..086542dee2 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
index c83ce04885..c83ce04885 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
index 689b7b81f4..689b7b81f4 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
index def158cf68..def158cf68 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml
index 3e66b3c72a..3e66b3c72a 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml
index a2655dcd45..a2655dcd45 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
index 047cd692e8..047cd692e8 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_invite.xml b/indra/newview/skins/default/xui/fr/panel_group_invite.xml
index d792439220..d792439220 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 4011d1b8c7..4011d1b8c7 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_list_item.xml b/indra/newview/skins/default/xui/fr/panel_group_list_item.xml
index 5fb69d1989..b1b32af7c6 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Inconnu"/>
+ <button name="info_btn" tool_tip="En savoir plus"/>
<button name="profile_btn" tool_tip="Voir le profil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_notices.xml b/indra/newview/skins/default/xui/fr/panel_group_notices.xml
index 3364dd9dbc..3364dd9dbc 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_notify.xml b/indra/newview/skins/default/xui/fr/panel_group_notify.xml
index 08a49f908c..08a49f908c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_group_roles.xml b/indra/newview/skins/default/xui/fr/panel_group_roles.xml
index 0bd2e0bdab..0bd2e0bdab 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml
index 1f2169e22c..1f2169e22c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_instant_message.xml b/indra/newview/skins/default/xui/fr/panel_instant_message.xml
index 305d2d853c..305d2d853c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/fr/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_inventory_item.xml b/indra/newview/skins/default/xui/fr/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_landmark_info.xml b/indra/newview/skins/default/xui/fr/panel_landmark_info.xml
index 60507f191d..60507f191d 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/fr/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_landmarks.xml b/indra/newview/skins/default/xui/fr/panel_landmarks.xml
index 7501e54f11..7501e54f11 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml
index c8a1fe8751..c8a1fe8751 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_login.xml
+++ b/indra/newview/skins/default/xui/fr/panel_login.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
index db7d254b7a..db7d254b7a 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_me.xml b/indra/newview/skins/default/xui/fr/panel_me.xml
index 5676986228..5676986228 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_me.xml
+++ b/indra/newview/skins/default/xui/fr/panel_me.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_media_settings_general.xml b/indra/newview/skins/default/xui/fr/panel_media_settings_general.xml
index e048e66810..e048e66810 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
index 8f1b436ba1..8f1b436ba1 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml b/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml
index 9d070b7aff..9d070b7aff 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/fr/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_navigation_bar.xml b/indra/newview/skins/default/xui/fr/panel_navigation_bar.xml
index ecb1e9813a..ecb1e9813a 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml
index b02e53269b..b02e53269b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
index 762dee01bb..762dee01bb 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
index 7b7b67041a..7b7b67041a 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml b/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
index 110e017050..110e017050 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_notify_textbox.xml b/indra/newview/skins/default/xui/fr/panel_notify_textbox.xml
index 6ce09cde4b..6ce09cde4b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/fr/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_online_status_toast.xml b/indra/newview/skins/default/xui/fr/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/fr/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/fr/panel_outbox_inventory.xml
index d947dbceb8..d947dbceb8 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml b/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
index 39bc7ef8af..39bc7ef8af 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
index 1bc553c8c0..1bc553c8c0 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/fr/panel_outfits_inventory_gear_default.xml
index 4703559111..4703559111 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_list.xml b/indra/newview/skins/default/xui/fr/panel_outfits_list.xml
index 416353e1d4..416353e1d4 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml
index 874bab2daa..874bab2daa 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_people.xml b/indra/newview/skins/default/xui/fr/panel_people.xml
index f035853efc..227ce26df7 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_people.xml
+++ b/indra/newview/skins/default/xui/fr/panel_people.xml
@@ -14,81 +14,53 @@ Pour rechercher des résidents avec qui passer du temps, utilisez [secondlife://
<string name="no_filtered_friends_msg">
Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/people/[SEARCH_TERM] Rechercher].
</string>
- <string name="people_filter_label" value="Filtrer les personnes"/>
- <string name="groups_filter_label" value="Filtrer les groupes"/>
<string name="no_filtered_groups_msg" value="Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/groups/[SEARCH_TERM] Rechercher]."/>
<string name="no_groups_msg" value="Vous souhaitez trouver des groupes à rejoindre ? Utilisez [secondlife:///app/search/groups Rechercher]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Carte : double-clic ; Panoramique : Maj + faire glisser)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Téléportation : double-clic ; Panoramique : Maj + faire glisser)"/>
- <filter_editor label="Filtre" name="filter_input"/>
<tab_container name="tabs">
<panel label="PRÈS DE VOUS" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Options"/>
- <button name="add_friend_btn" tool_tip="Ajouter le résident sélectionné à votre liste d&apos;amis"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Filtrer les personnes" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Actions sur la personne sélectionnée"/>
+ <menu_button name="nearby_view_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <button name="add_friend_btn" tool_tip="Proposer à ce résident de devenir votre ami"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Supprimer la personne sélectionnée des amis"/>
</panel>
</panel>
- <panel label="MES AMIS" name="friends_panel">
+ <panel label="AMIS" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Filtrer les personnes" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Actions sur la personne sélectionnée"/>
+ <menu_button name="friends_view_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <button name="friends_add_btn" tool_tip="Proposer à ce résident de devenir votre ami"/>
+ <dnd_button name="friends_del_btn" tool_tip="Supprimer la personne sélectionnée des amis"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="En ligne"/>
<accordion_tab name="tab_all" title="Tout"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Afficher d&apos;autres options"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Proposer à un résident de devenir votre ami"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Supprimer le résident sélectionné de votre liste d&apos;amis."/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="MES GROUPES" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Options"/>
- <button name="plus_btn" tool_tip="Rejoindre/créer un nouveau groupe"/>
- <button name="activate_btn" tool_tip="Activer le groupe sélectionné"/>
+ <panel label="GROUPES" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Filtrer les groupes" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Actions sur le groupe sélectionné"/>
+ <menu_button name="groups_view_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <menu_button name="plus_btn" tool_tip="Rejoindre/créer un nouveau groupe"/>
+ <dnd_button name="minus_btn" tool_tip="Quitter le groupe sélectionné"/>
</panel>
</panel>
<panel label="RÉCENT" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Options"/>
- <button name="add_friend_btn" tool_tip="Ajouter le résident sélectionné à votre liste d&apos;amis"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Filtrer les personnes" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Actions sur la personne sélectionnée"/>
+ <menu_button name="recent_view_btn" tool_tip="Options d&apos;affichage/de tri"/>
+ <button name="add_friend_btn" tool_tip="Proposer à ce résident de devenir votre ami"/>
+ <dnd_button name="recent_del_btn" tool_tip="Supprimer la personne sélectionnée des amis"/>
</panel>
</panel>
+ <panel label="BLOQUÉ" name="blocked_panel">
+ <panel label="Résidents et objets ignorés" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Profil" name="view_profile_btn" tool_tip="Afficher la photo, les groupes et autres infos des résidents"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="Ouvrir une session IM."/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Appel" name="call_btn" tool_tip="Appeler ce résident."/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Partager" name="share_btn" tool_tip="Partager un article de l&apos;inventaire."/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Téléporter" name="teleport_btn" tool_tip="Proposer une téléportation."/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Profil du groupe" name="group_info_btn" tool_tip="Afficher les informations sur le groupe"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Chat de groupe" name="chat_btn" tool_tip="Ouvrir une session de chat"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Appel de groupe" name="group_call_btn" tool_tip="Appeler ce groupe"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_pick_info.xml b/indra/newview/skins/default/xui/fr/panel_pick_info.xml
index 1de9b243f1..1de9b243f1 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/fr/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_picks.xml b/indra/newview/skins/default/xui/fr/panel_picks.xml
index fb277f653f..fb277f653f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_place_profile.xml b/indra/newview/skins/default/xui/fr/panel_place_profile.xml
index 30be838896..30be838896 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/fr/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_places.xml b/indra/newview/skins/default/xui/fr/panel_places.xml
index 5ec48c44c7..5ec48c44c7 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_places.xml
+++ b/indra/newview/skins/default/xui/fr/panel_places.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_postcard_message.xml b/indra/newview/skins/default/xui/fr/panel_postcard_message.xml
index 0f8397cfb4..0f8397cfb4 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/fr/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_postcard_settings.xml b/indra/newview/skins/default/xui/fr/panel_postcard_settings.xml
index 945a5e0272..945a5e0272 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/fr/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
index 3f3d0f51f4..3f3d0f51f4 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/fr/panel_preferences_alerts.xml
index 901a92ed1b..901a92ed1b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index 550beb653e..972190dc15 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Chat écrit" name="chat">
- <text name="font_size">
- Taille de la police :
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Petite" name="radio" value="0"/>
- <radio_item label="Moyenne" name="radio2" value="1"/>
- <radio_item label="Grande" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Exécuter l&apos;animation clavier quand vous écrivez" name="play_typing_animation"/>
- <check_box label="M&apos;envoyer les IM par e-mail une fois déconnecté" name="send_im_to_email"/>
- <check_box label="Activer l&apos;historique des chats et des IM en texte brut" name="plain_text_chat_history"/>
- <check_box label="Bulles de chat" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Afficher les IM dans :
- </text>
- <text name="requires_restart_label">
- (redémarrage requis)
- </text>
- <radio_group name="chat_window" tool_tip="Afficher vos messages instantanés dans plusieurs fenêtres ou dans une seule fenêtre avec plusieurs onglets (redémarrage requis)">
- <radio_item label="Plusieurs fenêtres" name="radio" value="0"/>
- <radio_item label="Onglets" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Activer les popups de chat entrant :
- </text>
- <check_box label="Chats de groupe" name="EnableGroupChatPopups" tool_tip="Cocher cette case pour qu&apos;un popup s&apos;affiche à réception d&apos;un message de chat de groupe."/>
- <check_box label="Chats IM" name="EnableIMChatPopups" tool_tip="Cocher cette case pour qu&apos;un popup s&apos;affiche à réception d&apos;un message instantané."/>
- <spinner label="Durée de vie du popup Chat près de moi :" name="nearby_toasts_lifetime"/>
- <spinner label="Disparition progressive du popup Chat près de moi :" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Exécuter l&apos;animation clavier quand vous écrivez" name="play_typing_animation"/>
+ <check_box label="M&apos;envoyer les IM par e-mail une fois déconnecté" name="send_im_to_email"/>
+ <check_box label="Seuls mes amis et groupes peuvent m&apos;appeler ou m&apos;envoyer un IM" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Taille de la police :
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Petite" name="Small" value="0"/>
+ <item label="Moyenne" name="Medium" value="1"/>
+ <item label="Grande" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Bulles de chat" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Notifications
+ </text>
+ <text name="friend_ims">
+ IM amis :
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Ouvrir la fenêtre Conversation" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Afficher le message dans une fenêtre popup" name="PopUpMessage" value="toast"/>
+ <item label="Bouton de la barre d&apos;outils Flash" name="FlashToolbarButton" value="clignote"/>
+ <item label="Aucun(e)" name="None" value="aucun(e)"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ IM non amis :
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Ouvrir la fenêtre Conversation" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Afficher le message dans une fenêtre popup" name="PopUpMessage" value="toast"/>
+ <item label="Bouton de la barre d&apos;outils Flash" name="FlashToolbarButton" value="clignote"/>
+ <item label="Aucun(e)" name="None" value="aucun(e)"/>
+ </combo_box>
+ <text name="conference_ims">
+ IM conférence :
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Ouvrir la fenêtre Conversation" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Afficher le message dans une fenêtre popup" name="PopUpMessage" value="toast"/>
+ <item label="Bouton de la barre d&apos;outils Flash" name="FlashToolbarButton" value="clignote"/>
+ <item label="Aucun(e)" name="None" value="aucun(e)"/>
+ </combo_box>
+ <text name="group_chat">
+ Chat de groupe :
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Ouvrir la fenêtre Conversation" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Afficher le message dans une fenêtre popup" name="PopUpMessage" value="toast"/>
+ <item label="Bouton de la barre d&apos;outils Flash" name="FlashToolbarButton" value="clignote"/>
+ <item label="Aucun(e)" name="None" value="aucun(e)"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Chat près de moi :
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Ouvrir la fenêtre Conversation" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Afficher le message dans une fenêtre popup" name="PopUpMessage" value="toast"/>
+ <item label="Bouton de la barre d&apos;outils Flash" name="FlashToolBarButton" value="clignote"/>
+ <item label="Aucun(e)" name="None" value="aucun(e)"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Pour suspendre temporairement toutes les notifications, utilisez Communication &gt; Ne pas déranger.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Écouter le son :
+ </text>
+ <check_box label="Nouvelle conversation" name="new_conversation"/>
+ <check_box label="Appel entrant" name="incoming_voice_call"/>
+ <check_box label="Offre de téléportation" name="teleport_offer"/>
+ <check_box label="Offre d&apos;inventaire" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Effacer le journal..." name="clear_log"/>
+ <button label="Supprimer les transcriptions..." name="delete_transcripts"/>
+ <button label="Parcourir..." label_selected="Parcourir" name="log_path_button"/>
+ </panel>
<button label="Traduction..." name="ok_btn"/>
<button label="Rechercher/Remplacer..." name="autoreplace_showgui"/>
<button label="Orthographe..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_colors.xml b/indra/newview/skins/default/xui/fr/panel_preferences_colors.xml
index e50fd2b6f3..e50fd2b6f3 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 66b84af3aa..533c392d6b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -69,9 +69,9 @@
<combo_box.item label="Jamais" name="item4"/>
</combo_box>
<text name="text_box3">
- Réponse si occupé(e) :
+ Réponse Ne pas déranger
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
index a738b2d43f..a738b2d43f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_move.xml b/indra/newview/skins/default/xui/fr/panel_preferences_move.xml
index 80aed90a2d..80aed90a2d 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
index cf1a374da6..cf1a374da6 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
index 83303950dc..83303950dc 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml b/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
index 37eb6bbeb0..37eb6bbeb0 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml
index ad744b7760..ad744b7760 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
index a30306d116..a30306d116 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_debug.xml b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
index 98ae250215..98ae250215 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_environment.xml b/indra/newview/skins/default/xui/fr/panel_region_environment.xml
index 085a308786..085a308786 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
index be89020ac7..be89020ac7 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_general.xml b/indra/newview/skins/default/xui/fr/panel_region_general.xml
index 234d316069..234d316069 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_region_terrain.xml b/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
index 97f486d3a3..97f486d3a3 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_script_ed.xml b/indra/newview/skins/default/xui/fr/panel_script_ed.xml
index 29fbe3c7e7..29fbe3c7e7 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/fr/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml
index e541fae31f..e541fae31f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml
index 751abd6f1d..751abd6f1d 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_script_question_toast.xml b/indra/newview/skins/default/xui/fr/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/fr/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml b/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
index 8febdccbed..8febdccbed 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/fr/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/fr/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/fr/panel_side_tray_tab_caption.xml
index 45efbdc980..45efbdc980 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/fr/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/fr/panel_sidetray_home_tab.xml
index 48bcff1c09..48bcff1c09 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/fr/panel_sidetray_home_tab.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
index 472c4a5e8f..472c4a5e8f 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
index 97dc3e7e2b..97dc3e7e2b 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_options.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_options.xml
index befe1b3bc6..befe1b3bc6 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_postcard.xml
index 82a4815144..82a4815144 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_profile.xml
index 427ffe2113..427ffe2113 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_sound_devices.xml b/indra/newview/skins/default/xui/fr/panel_sound_devices.xml
index 460b269f7c..460b269f7c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/fr/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/fr/panel_stand_stop_flying.xml
index ee4e8a6be6..ee4e8a6be6 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/fr/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_status_bar.xml b/indra/newview/skins/default/xui/fr/panel_status_bar.xml
index ba36a7d299..ba36a7d299 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_sys_well_item.xml b/indra/newview/skins/default/xui/fr/panel_sys_well_item.xml
index 81db7c8989..81db7c8989 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_sys_well_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_sys_well_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_teleport_history.xml b/indra/newview/skins/default/xui/fr/panel_teleport_history.xml
index cf1266a460..cf1266a460 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/fr/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml
index 21eb7ff62c..21eb7ff62c 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_voice_effect.xml b/indra/newview/skins/default/xui/fr/panel_voice_effect.xml
index a134854706..a134854706 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/fr/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml
index e05c93a4ac..e05c93a4ac 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/fr/panel_world_map.xml b/indra/newview/skins/default/xui/fr/panel_world_map.xml
index 972aae1fab..972aae1fab 100644..100755
--- a/indra/newview/skins/default/xui/fr/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/fr/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/fr/role_actions.xml b/indra/newview/skins/default/xui/fr/role_actions.xml
index 7187de8760..7187de8760 100644..100755
--- a/indra/newview/skins/default/xui/fr/role_actions.xml
+++ b/indra/newview/skins/default/xui/fr/role_actions.xml
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml b/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
index 5e1ac55a97..5e1ac55a97 100644..100755
--- a/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
index 1b9c832679..1b9c832679 100644..100755
--- a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml
index e7fc7859c9..e7fc7859c9 100644..100755
--- a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml
index 60027d41cb..896dd932e3 100644..100755
--- a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Acheter l&apos;objet" name="Buyobject"/>
<combo_box.item label="Payer l&apos;objet" name="Payobject"/>
<combo_box.item label="Ouvrir" name="Open"/>
+ <combo_box.item label="Zoom" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 6a2a3f559a..69ed20f376 100644..100755
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -137,7 +137,7 @@
Quitter
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=fr-FR&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
Le client que vous utilisez ne permet plus d&apos;accéder à Second Life. Téléchargez un nouveau client à la page suivante :
@@ -622,8 +622,8 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="AvatarAway">
Absent
</string>
- <string name="AvatarBusy">
- Occupé
+ <string name="AvatarDoNotDisturb">
+ Ne pas déranger
</string>
<string name="AvatarMuted">
Bloqué(e)
@@ -859,6 +859,12 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="ST_NO_JOINT">
Impossible de trouver ROOT ou JOINT.
</string>
+ <string name="NearbyChatTitle">
+ Chat près de moi
+ </string>
+ <string name="NearbyChatLabel">
+ (Chat près de moi)
+ </string>
<string name="whisper">
chuchote :
</string>
@@ -922,12 +928,15 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="ControlYourCamera">
Contrôler votre caméra
</string>
- <string name="TeleportYourAgent">
- Vous téléporter
- </string>
<string name="NotConnected">
Pas connecté(e)
</string>
+ <string name="AgentNameSubst">
+ (Vous)
+ </string>
+ <string name="TeleportYourAgent">
+ Vous téléporter
+ </string>
<string name="SIM_ACCESS_PG">
Général
</string>
@@ -1009,18 +1018,6 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="dictionary_files">
Dictionnaires
</string>
- <string name="AvatarSetNotAway">
- Présent
- </string>
- <string name="AvatarSetAway">
- Absent
- </string>
- <string name="AvatarSetNotBusy">
- Pas occupé
- </string>
- <string name="AvatarSetBusy">
- Occupé
- </string>
<string name="shape">
Silhouette
</string>
@@ -1989,8 +1986,8 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="PanelContentsNewScript">
Nouveau script
</string>
- <string name="BusyModeResponseDefault">
- Le résident auquel vous avez envoyé un message est en mode Occupé, ce qui signifie qu&apos;il a demandé à ne pas être dérangé. Votre message restera affiché dans son panneau IM afin qu&apos;il puisse le lire ultérieurement.
+ <string name="DoNotDisturbModeResponseDefault">
+ Ce résident a activé Ne pas déranger et verra votre message plus tard.
</string>
<string name="MuteByName">
(par nom)
@@ -2103,9 +2100,6 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="GroupMoneyDate">
[weekday,datetime,utc] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Contenus
- </string>
<string name="AcquiredItems">
Objets acquis
</string>
@@ -3877,7 +3871,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Région de type Général
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Avatars visibles et chat autorisé en dehors de cette parcelle
+ Les avatars à l&apos;extérieur de cette parcelle ne peuvent pas voir ni entendre les avatars qui se trouvent à l&apos;intérieur.
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Les objets mobiles risquent de ne pas se comporter correctement dans cette région tant qu&apos;elle n&apos;est pas refigée.
@@ -3954,6 +3948,12 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="IM_unblock_only_groups_friends">
Pour afficher ce message, vous devez désactiver la case Seuls mes amis et groupes peuvent m&apos;appeler ou m&apos;envoyer un IM, sous Préférences/Confidentialité.
</string>
+ <string name="OnlineStatus">
+ En ligne
+ </string>
+ <string name="OfflineStatus">
+ Hors ligne
+ </string>
<string name="answered_call">
Votre appel a fait l&apos;objet d&apos;une réponse
</string>
@@ -3963,6 +3963,9 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="you_joined_call">
Vous avez rejoint l&apos;appel
</string>
+ <string name="you_auto_rejected_call-im">
+ Vous avez automatiquement refusé l&apos;appel vocal quand le mode Ne pas déranger était activé.
+ </string>
<string name="name_started_call">
[NAME] appelle.
</string>
@@ -3979,7 +3982,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Connexion en cours...
</string>
<string name="conference-title">
- Conférence ad-hoc
+ Chat à plusieurs
</string>
<string name="conference-title-incoming">
Conférence avec [AGENT_NAME]
@@ -4859,6 +4862,9 @@ Essayez avec le chemin d&apos;accès à l&apos;éditeur entre guillemets doubles
<string name="Command_Chat_Label">
Chat
</string>
+ <string name="Command_Conversations_Label">
+ Conversations
+ </string>
<string name="Command_Compass_Label">
Boussole
</string>
@@ -4934,6 +4940,9 @@ Essayez avec le chemin d&apos;accès à l&apos;éditeur entre guillemets doubles
<string name="Command_Chat_Tooltip">
Parler aux personnes près de vous par chat écrit
</string>
+ <string name="Command_Conversations_Tooltip">
+ Parler à quelqu&apos;un
+ </string>
<string name="Command_Compass_Tooltip">
Boussole
</string>
@@ -5063,4 +5072,13 @@ Essayez avec le chemin d&apos;accès à l&apos;éditeur entre guillemets doubles
<string name="UserDictionary">
[User]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ Les conversations ne sont pas archivées. Pour commencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences &gt; Chat.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Aucune conversation ne sera plus enregistrée. Pour recommencer à tenir un journal, choisissez Enregistrer : Journal seul ou Enregistrer : Journal et transcriptions sous Préférences &gt; Chat.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Il n&apos;y a aucune conversation enregistrée. Quand quelqu&apos;un vous contacte ou quand vous contactez quelqu&apos;un, une entrée de journal s&apos;affiche ici.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/fr/teleport_strings.xml b/indra/newview/skins/default/xui/fr/teleport_strings.xml
index 6065fa2966..6065fa2966 100644..100755
--- a/indra/newview/skins/default/xui/fr/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/fr/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/fr/xui_version.xml b/indra/newview/skins/default/xui/fr/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/fr/xui_version.xml
+++ b/indra/newview/skins/default/xui/fr/xui_version.xml
diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml
index c672511fc5..c672511fc5 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_about.xml
+++ b/indra/newview/skins/default/xui/it/floater_about.xml
diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml
index fe3e59b0bd..fe3e59b0bd 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/it/floater_activeim.xml b/indra/newview/skins/default/xui/it/floater_activeim.xml
index 0c1f0448e1..0c1f0448e1 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/it/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/it/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/it/floater_animation_anim_preview.xml
index a2bce00141..a2bce00141 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/it/floater_animation_bvh_preview.xml
index a4319f2e77..a4319f2e77 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_auction.xml b/indra/newview/skins/default/xui/it/floater_auction.xml
index 4cad8b744d..4cad8b744d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_auction.xml
+++ b/indra/newview/skins/default/xui/it/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/it/floater_autoreplace.xml b/indra/newview/skins/default/xui/it/floater_autoreplace.xml
index 559a42cfae..559a42cfae 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/it/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/it/floater_avatar.xml b/indra/newview/skins/default/xui/it/floater_avatar.xml
index d7445cfb2b..d7445cfb2b 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/it/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
index 5a542d6a27..5a542d6a27 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/it/floater_avatar_textures.xml b/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
index b6376973cd..b6376973cd 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/it/floater_beacons.xml b/indra/newview/skins/default/xui/it/floater_beacons.xml
index b7ab265cc2..b7ab265cc2 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/it/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/it/floater_build_options.xml b/indra/newview/skins/default/xui/it/floater_build_options.xml
index 080e396642..080e396642 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/it/floater_bulk_perms.xml b/indra/newview/skins/default/xui/it/floater_bulk_perms.xml
index 89f4a0cb71..89f4a0cb71 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/it/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/it/floater_bumps.xml b/indra/newview/skins/default/xui/it/floater_bumps.xml
index ae66148659..ae66148659 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/it/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/it/floater_buy_contents.xml b/indra/newview/skins/default/xui/it/floater_buy_contents.xml
index 84ed85e362..84ed85e362 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/it/floater_buy_currency.xml b/indra/newview/skins/default/xui/it/floater_buy_currency.xml
index 743969f557..743969f557 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/it/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/it/floater_buy_currency_html.xml
index 4a1bf33403..4a1bf33403 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/it/floater_buy_land.xml b/indra/newview/skins/default/xui/it/floater_buy_land.xml
index 3940c43a3d..3940c43a3d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/it/floater_buy_object.xml b/indra/newview/skins/default/xui/it/floater_buy_object.xml
index e7cbd68b38..e7cbd68b38 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/it/floater_camera.xml b/indra/newview/skins/default/xui/it/floater_camera.xml
index be03857bc9..be03857bc9 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_camera.xml
+++ b/indra/newview/skins/default/xui/it/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/it/floater_chat_bar.xml b/indra/newview/skins/default/xui/it/floater_chat_bar.xml
index b47e32ce90..b47e32ce90 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/it/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/it/floater_choose_group.xml b/indra/newview/skins/default/xui/it/floater_choose_group.xml
index 00f2692295..00f2692295 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/it/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/it/floater_color_picker.xml b/indra/newview/skins/default/xui/it/floater_color_picker.xml
index 38d4a0a037..38d4a0a037 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/it/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/it/floater_conversation_log.xml b/indra/newview/skins/default/xui/it/floater_conversation_log.xml
new file mode 100644
index 0000000000..8354824ed1
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="REGISTRO CONVERSAZIONI">
+ <panel name="buttons_panel">
+ <filter_editor label="Filtro persone" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Azioni sulla persona o gruppo selezionato"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_conversation_preview.xml b/indra/newview/skins/default/xui/it/floater_conversation_preview.xml
new file mode 100644
index 0000000000..d0e9c8ee0e
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="CONVERSAZIONE:">
+ <floater.string name="Title">
+ CONVERSAZIONE: [NAME]
+ </floater.string>
+ <text name="page_label" value="Pagina"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_critical.xml b/indra/newview/skins/default/xui/it/floater_critical.xml
index 82850b0ada..82850b0ada 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_critical.xml
+++ b/indra/newview/skins/default/xui/it/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/it/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/it/floater_delete_env_preset.xml
index 71071825af..71071825af 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/it/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/it/floater_destinations.xml b/indra/newview/skins/default/xui/it/floater_destinations.xml
index 242403e431..242403e431 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/it/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/it/floater_display_name.xml b/indra/newview/skins/default/xui/it/floater_display_name.xml
index 3e0c43e741..3e0c43e741 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/it/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml
index c922b2e4f7..c922b2e4f7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml
index 571027fd29..571027fd29 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml
index 7bffc60ba2..7bffc60ba2 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/it/floater_environment_settings.xml b/indra/newview/skins/default/xui/it/floater_environment_settings.xml
index f191078fad..f191078fad 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/it/floater_event.xml b/indra/newview/skins/default/xui/it/floater_event.xml
index b64f429870..b64f429870 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_event.xml
+++ b/indra/newview/skins/default/xui/it/floater_event.xml
diff --git a/indra/newview/skins/default/xui/it/floater_fast_timers.xml b/indra/newview/skins/default/xui/it/floater_fast_timers.xml
index 52ab6b0c3d..52ab6b0c3d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/it/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/it/floater_font_test.xml b/indra/newview/skins/default/xui/it/floater_font_test.xml
index 859c068b11..859c068b11 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/it/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/it/floater_gesture.xml b/indra/newview/skins/default/xui/it/floater_gesture.xml
index b9419ebc22..b9419ebc22 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/it/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/it/floater_god_tools.xml b/indra/newview/skins/default/xui/it/floater_god_tools.xml
index 32c79936cf..32c79936cf 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
index edbbc354cf..edbbc354cf 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/it/floater_help_browser.xml b/indra/newview/skins/default/xui/it/floater_help_browser.xml
index 008643afac..008643afac 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/it/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/it/floater_how_to.xml b/indra/newview/skins/default/xui/it/floater_how_to.xml
index 8f0e210571..8f0e210571 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/it/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/it/floater_hud.xml b/indra/newview/skins/default/xui/it/floater_hud.xml
index 437d2d6496..437d2d6496 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_hud.xml
+++ b/indra/newview/skins/default/xui/it/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/it/floater_im_container.xml b/indra/newview/skins/default/xui/it/floater_im_container.xml
index fb8e77b32f..10cf1b7f7e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/it/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="CONVERSAZIONI"/>
+<multi_floater name="floater_im_box" title="CONVERSAZIONI">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <button name="add_btn" tool_tip="Avvia una nuova conversazione"/>
+ <button name="speak_btn" tool_tip="Parla con le persone usando il microfono"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Minimizza/espandi questo elenco"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Minimizza questo pannello"/>
+ <text name="stub_textbox">
+ Questa conversazione in una finestra separata. [secondlife:/// Ripristina conversazione.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/it/floater_im_session.xml b/indra/newview/skins/default/xui/it/floater_im_session.xml
index 3d9d17fc81..d38ec7a5fe 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/it/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="A" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] è stato invitato alla conversazione."/>
+ <floater.string name="multiple_participants_added" value="[NAME] sono stati invitati alla conversazione."/>
+ <floater.string name="tooltip_to_separate_window" value="Sposta questa conversazione in una finestra separata."/>
+ <floater.string name="tooltip_to_main_window" value="Sposta questa conversazione di nuovo nella finestra principale"/>
+ <floater.string name="start_call_button_tooltip" value="Apri collegamento voce"/>
+ <floater.string name="end_call_button_tooltip" value="Chiudi collegamento voce"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Minimizza questo pannello"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Minimizza elenco partecipanti"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Espandi l&apos;elenco dei partecipanti"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <menu_button name="gear_btn" tool_tip="Azioni per la persona selezionata:"/>
+ <button name="add_btn" tool_tip="Aggiungi qualcuno a questa conversazione"/>
+ <button name="voice_call_btn" tool_tip="Apri collegamento voce"/>
+ <button name="close_btn" tool_tip="Termina questa conversazione"/>
+ <button name="expand_collapse_btn" tool_tip="Minimizza/espandi questo pannello"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Traduci chat" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="A" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Mostra/nascondi pannello messaggi"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_image_preview.xml b/indra/newview/skins/default/xui/it/floater_image_preview.xml
index ee7be7b155..ee7be7b155 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_import_collada.xml b/indra/newview/skins/default/xui/it/floater_import_collada.xml
index eb4d0c0fdb..eb4d0c0fdb 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/it/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/it/floater_incoming_call.xml b/indra/newview/skins/default/xui/it/floater_incoming_call.xml
index a95ed44662..566920209d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/it/floater_incoming_call.xml
@@ -10,7 +10,7 @@
anonimo
</floater.string>
<floater.string name="VoiceInviteP2P">
- sta chiamando.
+ ti sta chiamando.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
ha aderito ad una chiamata in chat vocale in conferenza.
@@ -25,9 +25,9 @@
Vuoi abbandonare [CURRENT_CHAT] e aderire a questa voice chat?
</floater.string>
<text name="question">
- Vuoi abbandonare [CURRENT_CHAT] e aderire a questa voice chat?
+ Se rispondi, verrà interrotto il collegamento dalla conversazione a voce corrente.
</text>
- <button label="Accetta" label_selected="Accetta" name="Accept"/>
- <button label="Rifiuta" label_selected="Rifiuta" name="Reject"/>
- <button label="Inizia IM" name="Start IM"/>
+ <button label="Risposta" label_selected="Risposta" name="Accept"/>
+ <button label="Ignora" label_selected="Ignora" name="Reject"/>
+ <button label="Apri invece IM" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_inspect.xml b/indra/newview/skins/default/xui/it/floater_inspect.xml
index bae993d2be..bae993d2be 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/it/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
index 7ed3486b9b..7ed3486b9b 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
index cf790ee62e..cf790ee62e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/it/floater_joystick.xml b/indra/newview/skins/default/xui/it/floater_joystick.xml
index 3d60ded7ab..3d60ded7ab 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/it/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/it/floater_lagmeter.xml b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
index f7b2b1ab4a..f7b2b1ab4a 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/it/floater_land_holdings.xml b/indra/newview/skins/default/xui/it/floater_land_holdings.xml
index 1b2f2605f7..1b2f2605f7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/it/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
index 0bd2b02323..0bd2b02323 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
index 47fe2de051..47fe2de051 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/it/floater_map.xml b/indra/newview/skins/default/xui/it/floater_map.xml
index 5e4e4abca4..5e4e4abca4 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_map.xml
diff --git a/indra/newview/skins/default/xui/it/floater_media_browser.xml b/indra/newview/skins/default/xui/it/floater_media_browser.xml
index 0a8c0f1c41..0a8c0f1c41 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/it/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/it/floater_media_settings.xml b/indra/newview/skins/default/xui/it/floater_media_settings.xml
index d521502a4c..d521502a4c 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/it/floater_mem_leaking.xml b/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
index 63074d5a4c..63074d5a4c 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/it/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/it/floater_merchant_outbox.xml
index 02f257d466..02f257d466 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/it/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/it/floater_model_preview.xml b/indra/newview/skins/default/xui/it/floater_model_preview.xml
index e8df4d2d4b..e8df4d2d4b 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_moveview.xml b/indra/newview/skins/default/xui/it/floater_moveview.xml
index 1237bd06a9..1237bd06a9 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/it/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_mute_object.xml b/indra/newview/skins/default/xui/it/floater_mute_object.xml
index dd1a2b67d7..dd1a2b67d7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/it/floater_my_appearance.xml b/indra/newview/skins/default/xui/it/floater_my_appearance.xml
index 39ddd6186a..39ddd6186a 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/it/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/it/floater_my_inventory.xml b/indra/newview/skins/default/xui/it/floater_my_inventory.xml
index 0efd9f1c6d..0efd9f1c6d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/it/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/floater_object_weights.xml b/indra/newview/skins/default/xui/it/floater_object_weights.xml
index fdcb732dee..fdcb732dee 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/it/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/it/floater_openobject.xml b/indra/newview/skins/default/xui/it/floater_openobject.xml
index d8144c7cd5..d8144c7cd5 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/it/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
index 55bb5adb1e..55bb5adb1e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
index cdb180bacd..cdb180bacd 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/it/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/it/floater_pathfinding_characters.xml
index 5122954edb..5122954edb 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/it/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/it/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/it/floater_pathfinding_console.xml
index 77be220a2a..7777444161 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/it/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Mostra:
</text>
- <check_box label="Mondo" name="show_world"/>
+ <check_box label="Test" name="show_world"/>
<check_box label="Solo elementi spostabili" name="show_world_movables_only"/>
<check_box label="Navmesh" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
index 7edac3ff46..7edac3ff46 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/it/floater_pay.xml b/indra/newview/skins/default/xui/it/floater_pay.xml
index 5753c8c765..5753c8c765 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_pay.xml
+++ b/indra/newview/skins/default/xui/it/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/it/floater_pay_object.xml b/indra/newview/skins/default/xui/it/floater_pay_object.xml
index 8805f3208e..8805f3208e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/it/floater_people.xml b/indra/newview/skins/default/xui/it/floater_people.xml
index 1acc3cbf19..1acc3cbf19 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_people.xml
+++ b/indra/newview/skins/default/xui/it/floater_people.xml
diff --git a/indra/newview/skins/default/xui/it/floater_perm_prefs.xml b/indra/newview/skins/default/xui/it/floater_perm_prefs.xml
index a02b3b5075..a02b3b5075 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/it/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/it/floater_picks.xml b/indra/newview/skins/default/xui/it/floater_picks.xml
index dfc539da66..dfc539da66 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_picks.xml
+++ b/indra/newview/skins/default/xui/it/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/it/floater_places.xml b/indra/newview/skins/default/xui/it/floater_places.xml
index cd46cf8b59..cd46cf8b59 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_places.xml
+++ b/indra/newview/skins/default/xui/it/floater_places.xml
diff --git a/indra/newview/skins/default/xui/it/floater_post_process.xml b/indra/newview/skins/default/xui/it/floater_post_process.xml
index 3aa8b29101..3aa8b29101 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/it/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preferences.xml b/indra/newview/skins/default/xui/it/floater_preferences.xml
index 7a1d2966ed..7a1d2966ed 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/it/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/it/floater_preferences_proxy.xml
index 86ea8064b1..86ea8064b1 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/it/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preview_animation.xml b/indra/newview/skins/default/xui/it/floater_preview_animation.xml
index ed609c70fa..ed609c70fa 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
index 2172b9848b..2172b9848b 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preview_notecard.xml b/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
index 7ec229f9d3..7ec229f9d3 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preview_sound.xml b/indra/newview/skins/default/xui/it/floater_preview_sound.xml
index 8eb9573e54..8eb9573e54 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/it/floater_preview_texture.xml b/indra/newview/skins/default/xui/it/floater_preview_texture.xml
index 5b4054514e..5b4054514e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/it/floater_price_for_listing.xml b/indra/newview/skins/default/xui/it/floater_price_for_listing.xml
index 06c838a981..06c838a981 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/it/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/it/floater_publish_classified.xml b/indra/newview/skins/default/xui/it/floater_publish_classified.xml
index c371e28caa..c371e28caa 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/it/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/it/floater_region_debug_console.xml b/indra/newview/skins/default/xui/it/floater_region_debug_console.xml
index 6efa10290b..6efa10290b 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/it/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/it/floater_region_info.xml b/indra/newview/skins/default/xui/it/floater_region_info.xml
index dc2c24ca56..dc2c24ca56 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/it/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/it/floater_report_abuse.xml b/indra/newview/skins/default/xui/it/floater_report_abuse.xml
index eeba54b0ca..eeba54b0ca 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/it/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_debug.xml b/indra/newview/skins/default/xui/it/floater_script_debug.xml
index 89bf80da5e..89bf80da5e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/it/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_limits.xml b/indra/newview/skins/default/xui/it/floater_script_limits.xml
index 2383b85bb7..2383b85bb7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_preview.xml b/indra/newview/skins/default/xui/it/floater_script_preview.xml
index d007774f43..d007774f43 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_queue.xml b/indra/newview/skins/default/xui/it/floater_script_queue.xml
index f4117d30a2..f4117d30a2 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/it/floater_script_search.xml b/indra/newview/skins/default/xui/it/floater_script_search.xml
index 3d0b02877e..3d0b02877e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/it/floater_search.xml b/indra/newview/skins/default/xui/it/floater_search.xml
index ac3dc17aa3..ac3dc17aa3 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_search.xml
+++ b/indra/newview/skins/default/xui/it/floater_search.xml
diff --git a/indra/newview/skins/default/xui/it/floater_select_key.xml b/indra/newview/skins/default/xui/it/floater_select_key.xml
index 014bc76ffb..014bc76ffb 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/it/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/it/floater_sell_land.xml b/indra/newview/skins/default/xui/it/floater_sell_land.xml
index 106ae0373c..106ae0373c 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/it/floater_settings_debug.xml b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
index 489d52d3b8..489d52d3b8 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/it/floater_snapshot.xml b/indra/newview/skins/default/xui/it/floater_snapshot.xml
index bff6081bdf..bff6081bdf 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/it/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/it/floater_sound_devices.xml b/indra/newview/skins/default/xui/it/floater_sound_devices.xml
index 9799b48d89..9799b48d89 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/it/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/it/floater_sound_preview.xml b/indra/newview/skins/default/xui/it/floater_sound_preview.xml
index 221e5e5b53..221e5e5b53 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/it/floater_spellcheck.xml b/indra/newview/skins/default/xui/it/floater_spellcheck.xml
index 2a8557b0fc..2a8557b0fc 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/it/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/it/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/it/floater_spellcheck_import.xml
index c04fc249a7..c04fc249a7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/it/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/it/floater_stats.xml b/indra/newview/skins/default/xui/it/floater_stats.xml
index 825b2ce57a..825b2ce57a 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_stats.xml
+++ b/indra/newview/skins/default/xui/it/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/it/floater_sys_well.xml b/indra/newview/skins/default/xui/it/floater_sys_well.xml
index e1c0b89902..e1c0b89902 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/it/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/it/floater_telehub.xml b/indra/newview/skins/default/xui/it/floater_telehub.xml
index 15312a8959..15312a8959 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/it/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/it/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/it/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/it/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/it/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/it/floater_test_text_vertical_aligment.xml
index 23da6f7588..23da6f7588 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/it/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
index c97a91bb3f..27a17868a7 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
@@ -19,7 +19,7 @@
<button label="Default" label_selected="Default" name="Default"/>
<button label="Vuoto" label_selected="Vuoto" name="Blank"/>
<button label="Niente" label_selected="Niente" name="None"/>
- <check_box initial_value="true" label="Anteprima dal vivo" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Applica adesso" name="apply_immediate_check"/>
<text name="preview_disabled" value="Anteprima disattivata"/>
<filter_editor label="Filtro texture" name="inventory search editor"/>
<check_box initial_value="false" label="Mostra cartelle" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
index 49b6453319..49b6453319 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index dd59035dd4..dd59035dd4 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/it/floater_top_objects.xml b/indra/newview/skins/default/xui/it/floater_top_objects.xml
index d8ca7f4438..d8ca7f4438 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/it/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml
index 28a2dfdda2..28a2dfdda2 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_tos.xml
+++ b/indra/newview/skins/default/xui/it/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/it/floater_toybox.xml b/indra/newview/skins/default/xui/it/floater_toybox.xml
index 269e2831d0..269e2831d0 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/it/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/it/floater_translation_settings.xml b/indra/newview/skins/default/xui/it/floater_translation_settings.xml
index a0a34da723..a0a34da723 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/it/floater_url_entry.xml b/indra/newview/skins/default/xui/it/floater_url_entry.xml
index 9ad1a0dce5..9ad1a0dce5 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/it/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/it/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/it/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..b168d067c2
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="VOLUME CHAT VOCALE">
+ <slider label="Chat vocale" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_voice_controls.xml b/indra/newview/skins/default/xui/it/floater_voice_controls.xml
index 77973eef1e..77973eef1e 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/it/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/it/floater_voice_effect.xml b/indra/newview/skins/default/xui/it/floater_voice_effect.xml
index c83b11f698..f102622f5d 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/it/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Luoghi" name="voice_effects" title="MANIPOLAZIONE VOCE">
+<floater label="Luoghi" name="voice_effects" title="ANTEPRIMA MANIPOLAZIONE VOCE">
<string name="no_voice_effect">
(Nessuna manipolazione voce)
</string>
diff --git a/indra/newview/skins/default/xui/it/floater_voice_volume.xml b/indra/newview/skins/default/xui/it/floater_voice_volume.xml
new file mode 100644
index 0000000000..eaeda7597f
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="VOLUME VOCE">
+ <slider name="volume_slider" tool_tip="Volume voce" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_web_content.xml b/indra/newview/skins/default/xui/it/floater_web_content.xml
index 5603e85417..5603e85417 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/it/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/it/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/it/floater_whitelist_entry.xml
index 9abc968b94..9abc968b94 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/it/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/it/floater_window_size.xml b/indra/newview/skins/default/xui/it/floater_window_size.xml
index fef423aefe..fef423aefe 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/it/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml
index 8da17a4034..8da17a4034 100644..100755
--- a/indra/newview/skins/default/xui/it/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/it/inspect_avatar.xml b/indra/newview/skins/default/xui/it/inspect_avatar.xml
index 6f52aaef74..6f52aaef74 100644..100755
--- a/indra/newview/skins/default/xui/it/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/it/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/it/inspect_group.xml b/indra/newview/skins/default/xui/it/inspect_group.xml
index 2416f4bb12..2416f4bb12 100644..100755
--- a/indra/newview/skins/default/xui/it/inspect_group.xml
+++ b/indra/newview/skins/default/xui/it/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/it/inspect_object.xml b/indra/newview/skins/default/xui/it/inspect_object.xml
index d8ab10cfda..d8ab10cfda 100644..100755
--- a/indra/newview/skins/default/xui/it/inspect_object.xml
+++ b/indra/newview/skins/default/xui/it/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/it/inspect_remote_object.xml b/indra/newview/skins/default/xui/it/inspect_remote_object.xml
index b2d96ad757..b2d96ad757 100644..100755
--- a/indra/newview/skins/default/xui/it/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/it/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/it/language_settings.xml b/indra/newview/skins/default/xui/it/language_settings.xml
index 5f448fa828..5f448fa828 100644..100755
--- a/indra/newview/skins/default/xui/it/language_settings.xml
+++ b/indra/newview/skins/default/xui/it/language_settings.xml
diff --git a/indra/newview/skins/default/xui/it/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/it/menu_add_wearable_gear.xml
index 46abd7deed..46abd7deed 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_attachment_other.xml b/indra/newview/skins/default/xui/it/menu_attachment_other.xml
index d4d6fd68d0..d4d6fd68d0 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/it/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/it/menu_attachment_self.xml b/indra/newview/skins/default/xui/it/menu_attachment_self.xml
index 0b841d591f..0b841d591f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
index b93b695300..b93b695300 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_other.xml b/indra/newview/skins/default/xui/it/menu_avatar_other.xml
index c2edc32a49..c2edc32a49 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_self.xml b/indra/newview/skins/default/xui/it/menu_avatar_self.xml
index a4dafd7b5f..a4dafd7b5f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/it/menu_cof_attachment.xml b/indra/newview/skins/default/xui/it/menu_cof_attachment.xml
index 699490c8f1..699490c8f1 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/it/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/it/menu_cof_body_part.xml b/indra/newview/skins/default/xui/it/menu_cof_body_part.xml
index 1e3658ef45..1e3658ef45 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/it/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/it/menu_cof_clothing.xml b/indra/newview/skins/default/xui/it/menu_cof_clothing.xml
index 1e16ce8ed1..1e16ce8ed1 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/it/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/it/menu_cof_gear.xml b/indra/newview/skins/default/xui/it/menu_cof_gear.xml
index 10524ba92d..984e4a1611 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="Nuovi abiti" name="COF.Gear.New_Clothes"/>
- <menu label="Nuove parti del corpo" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="Nuove parti del corpo" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_conversation.xml b/indra/newview/skins/default/xui/it/menu_conversation.xml
new file mode 100644
index 0000000000..46ced93f1d
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Chiudi la conversazione" name="close_conversation"/>
+ <menu_item_call label="Apri conversazione a voce" name="open_voice_conversation"/>
+ <menu_item_call label="Interrompi collegamento a voce" name="disconnect_from_voice"/>
+ <menu_item_call label="Vedi profilo" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Offri teleport" name="offer_teleport"/>
+ <menu_item_call label="Chiamata a voce" name="voice_call"/>
+ <menu_item_call label="Cronologia chat..." name="chat_history"/>
+ <menu_item_call label="Aggiungi amico" name="add_friend"/>
+ <menu_item_call label="Rimuovi amico" name="remove_friend"/>
+ <menu_item_call label="Rimuovi amici" name="remove_friends"/>
+ <menu_item_call label="Invita al gruppo..." name="invite_to_group"/>
+ <menu_item_call label="Zoom avanti" name="zoom_in"/>
+ <menu_item_call label="Mappa" name="map"/>
+ <menu_item_call label="Condividi" name="share"/>
+ <menu_item_call label="Paga" name="pay"/>
+ <menu_item_check label="Blocca voce" name="block_unblock"/>
+ <menu_item_check label="Blocca testo" name="MuteText"/>
+ <menu_item_call label="Profilo del gruppo" name="group_profile"/>
+ <menu_item_call label="Attiva gruppo" name="activate_group"/>
+ <menu_item_call label="Lascia il gruppo" name="leave_group"/>
+ <context_menu label="Opzioni moderatore" name="Moderator Options">
+ <menu_item_check label="Consenti chat di testo" name="AllowTextChat"/>
+ <menu_item_call label="Disattiva audio di questo partecipante" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Riattiva audio di questo partecipante" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Disattiva audio di tutti" name="ModerateVoiceMute"/>
+ <menu_item_call label="Riattiva audio di tutti" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/it/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..5686a902eb
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM..." name="IM"/>
+ <menu_item_call label="Chiamata a voce..." name="Call"/>
+ <menu_item_call label="Apro la cronologia delle chat..." name="Chat history"/>
+ <menu_item_call label="Vedi profilo" name="View Profile"/>
+ <menu_item_call label="Offri Teleport" name="teleport"/>
+ <menu_item_call label="Aggiungi come amico" name="add_friend"/>
+ <menu_item_call label="Rimuovi amico" name="remove_friend"/>
+ <menu_item_call label="Invita al gruppo..." name="Invite"/>
+ <menu_item_call label="Mappa" name="Map"/>
+ <menu_item_call label="Condividi" name="Share"/>
+ <menu_item_call label="Paga" name="Pay"/>
+ <menu_item_check label="Blocca/Sblocca" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/it/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..73b05831ef
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Ordina in base al nome" name="sort_by_name"/>
+ <menu_item_check label="Ordina in base alla data" name="sort_by_date"/>
+ <menu_item_check label="Ordina con gli amici in alto" name="sort_by_friends"/>
+ <menu_item_call label="Mostra la cronologia delle chat vicine..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_edit.xml b/indra/newview/skins/default/xui/it/menu_edit.xml
index ffb20a02e9..ffb20a02e9 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_edit.xml
+++ b/indra/newview/skins/default/xui/it/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/it/menu_favorites.xml b/indra/newview/skins/default/xui/it/menu_favorites.xml
index 7813ef44b5..7813ef44b5 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/it/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/it/menu_gesture_gear.xml b/indra/newview/skins/default/xui/it/menu_gesture_gear.xml
index 7cfcc6287e..7cfcc6287e 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_group_plus.xml b/indra/newview/skins/default/xui/it/menu_group_plus.xml
index 3b76fb94a9..3b76fb94a9 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/it/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/it/menu_hide_navbar.xml b/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
index 48f6691fd8..48f6691fd8 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/it/menu_im_conversation.xml b/indra/newview/skins/default/xui/it/menu_im_conversation.xml
new file mode 100644
index 0000000000..1621d57e12
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Vedi profilo" name="View Profile"/>
+ <menu_item_call label="Aggiungi come amico" name="Add Friend"/>
+ <menu_item_call label="Rimuovi amico" name="remove_friend"/>
+ <menu_item_call label="Offri teleport" name="offer_teleport"/>
+ <menu_item_call label="Invita al gruppo..." name="invite_to_group"/>
+ <menu_item_call label="Cronologia chat..." name="chat_history"/>
+ <menu_item_call label="Zoom avanti" name="zoom_in"/>
+ <menu_item_call label="Mappa" name="map"/>
+ <menu_item_call label="Condividi" name="Share"/>
+ <menu_item_call label="Paga" name="Pay"/>
+ <menu_item_check label="Blocca voce" name="Block/Unblock"/>
+ <menu_item_check label="Blocca testo" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/it/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..350fbc5c6f
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Vista compatta" name="compact_view"/>
+ <menu_item_check label="Vista espansa" name="expanded_view"/>
+ <menu_item_check label="Mostra orario" name="IMShowTime"/>
+ <menu_item_check label="Mostra i nomi nelle conversazioni individuali" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/it/menu_imchiclet_adhoc.xml
index f78ed8489f..f78ed8489f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/it/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/it/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/it/menu_imchiclet_group.xml
index baa4e671b0..baa4e671b0 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/it/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/it/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/it/menu_imchiclet_p2p.xml
index 2eacbb09ad..2eacbb09ad 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/it/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
index 1f10734c4a..1f10734c4a 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_object_gear.xml
index 4740c9bf67..4740c9bf67 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
index 4f62ccaa9c..4f62ccaa9c 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml
index 471640eff5..471640eff5 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index b31e35771d..b31e35771d 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inventory_add.xml b/indra/newview/skins/default/xui/it/menu_inventory_add.xml
index 62da61cd6b..62da61cd6b 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml
index 3d64e4da4e..3d64e4da4e 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/it/menu_land.xml b/indra/newview/skins/default/xui/it/menu_land.xml
index f510078e14..f510078e14 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_land.xml
+++ b/indra/newview/skins/default/xui/it/menu_land.xml
diff --git a/indra/newview/skins/default/xui/it/menu_landmark.xml b/indra/newview/skins/default/xui/it/menu_landmark.xml
index b3cddab783..b3cddab783 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/it/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml
index 7b060e6565..7b060e6565 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_login.xml
+++ b/indra/newview/skins/default/xui/it/menu_login.xml
diff --git a/indra/newview/skins/default/xui/it/menu_media_ctrl.xml b/indra/newview/skins/default/xui/it/menu_media_ctrl.xml
index aa9e583f8e..aa9e583f8e 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/it/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/it/menu_mini_map.xml b/indra/newview/skins/default/xui/it/menu_mini_map.xml
index 561b80e046..561b80e046 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/it/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/it/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/it/menu_model_import_gear_default.xml
index 5012e6450f..5012e6450f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/it/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/it/menu_navbar.xml b/indra/newview/skins/default/xui/it/menu_navbar.xml
index e42d913a6f..e42d913a6f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/it/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/it/menu_nearby_chat.xml b/indra/newview/skins/default/xui/it/menu_nearby_chat.xml
index 719a6d3261..719a6d3261 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/it/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/it/menu_notification_well_button.xml b/indra/newview/skins/default/xui/it/menu_notification_well_button.xml
index 8c82e30f0e..8c82e30f0e 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/it/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/it/menu_object.xml b/indra/newview/skins/default/xui/it/menu_object.xml
index 7f41e8937f..7f41e8937f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_object.xml
+++ b/indra/newview/skins/default/xui/it/menu_object.xml
diff --git a/indra/newview/skins/default/xui/it/menu_object_icon.xml b/indra/newview/skins/default/xui/it/menu_object_icon.xml
index 0f347b1a90..9623775af4 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/it/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Profilo oggetto..." name="Object Profile"/>
<menu_item_call label="Blocca..." name="Block"/>
+ <menu_item_call label="Mostra sulla mappa" name="show_on_map"/>
+ <menu_item_call label="Teleport sul luogo dell&apos;oggetto" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_outfit_gear.xml b/indra/newview/skins/default/xui/it/menu_outfit_gear.xml
index 09fc867d7c..3ac0c5ce69 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Nuovi capelli" name="New Hair"/>
<menu_item_call label="Nuovi occhi" name="New Eyes"/>
</menu>
+ <menu_item_call label="Apri tutte le cartelle" name="expand"/>
+ <menu_item_call label="Chiudi tutte le cartelle" name="collapse"/>
<menu_item_call label="Cambia nome del vestiario" name="rename"/>
<menu_item_call label="Elimina vestito" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_outfit_tab.xml b/indra/newview/skins/default/xui/it/menu_outfit_tab.xml
index 8166cf20ed..8166cf20ed 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/it/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/it/menu_participant_list.xml b/indra/newview/skins/default/xui/it/menu_participant_list.xml
index 1b057c4077..1b057c4077 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/it/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/it/menu_participant_view.xml b/indra/newview/skins/default/xui/it/menu_participant_view.xml
new file mode 100644
index 0000000000..c87cda57bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Ordina le conversazioni in base al tipo" name="sort_sessions_by_type"/>
+ <menu_item_check label="Ordina le conversazioni in base al nome" name="sort_sessions_by_name"/>
+ <menu_item_check label="Ordina le conversazioni in base alle attività più recenti" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Ordina i partecipanti in base al nome" name="sort_participants_by_name"/>
+ <menu_item_check label="Ordina i partecipanti in base alle attività più recenti" name="sort_participants_by_recent"/>
+ <menu_item_call label="Preferenze chat..." name="chat_preferences"/>
+ <menu_item_call label="Preferenze privacy..." name="privacy_preferences"/>
+ <menu_item_check label="Registro conversazioni..." name="Conversation"/>
+ <menu_item_check label="Traduci chat vicina" name="Translate_chat"/>
+ <menu_item_check label="Impostazioni traduzione..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/it/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..e9955923b2
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Sblocca" name="unblock"/>
+ <menu_item_call label="Profilo..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/it/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..cbcf084b86
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Blocca residente per nome..." name="block_resident_by_name"/>
+ <menu_item_call label="Blocca oggetto per nome" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/it/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..fc80c73ae3
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Ordina in base al nome" name="sort_by_name"/>
+ <menu_item_check label="Ordina in base al tipo" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_friends_view.xml b/indra/newview/skins/default/xui/it/menu_people_friends_view.xml
new file mode 100644
index 0000000000..972e359cfe
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordina in base al nome" name="sort_name"/>
+ <menu_item_check label="Ordina in base allo stato" name="sort_status"/>
+ <menu_item_check label="Mostra le icone delle persone" name="view_icons"/>
+ <menu_item_check label="Mostra le autorizzazioni concesse" name="view_permissions"/>
+ <menu_item_check label="Mostra il registro conversazioni..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml
index 3a799f44eb..3a799f44eb 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/it/menu_people_groups.xml b/indra/newview/skins/default/xui/it/menu_people_groups.xml
index 30a97a1c72..8ca7537ee0 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Mostra informazioni" name="View Info"/>
<menu_item_call label="Chat" name="Chat"/>
- <menu_item_call label="Chiama" name="Call"/>
+ <menu_item_call label="Chiamata a voce" name="Call"/>
<menu_item_call label="Attiva" name="Activate"/>
<menu_item_call label="Chiudi" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_groups_view.xml b/indra/newview/skins/default/xui/it/menu_people_groups_view.xml
new file mode 100644
index 0000000000..56b9abbd3a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Mostra le icone di gruppo" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml
index d31ddaf1aa..d31ddaf1aa 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/it/menu_people_nearby.xml b/indra/newview/skins/default/xui/it/menu_people_nearby.xml
index a974bd181d..1c09b1cfe2 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Vedi profilo" name="View Profile"/>
- <menu_item_call label="Aggiungi amico" name="Add Friend"/>
- <menu_item_call label="Rimuovi amico" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Chiama" name="Call"/>
- <menu_item_call label="Mappa" name="Map"/>
- <menu_item_call label="Condividi" name="Share"/>
- <menu_item_call label="Paga" name="Pay"/>
- <menu_item_check label="Blocca/Sblocca" name="Block/Unblock"/>
- <menu_item_call label="Offri Teleport" name="teleport"/>
+ <menu_item_call label="Vedi profilo" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Offri Teleport" name="offer_teleport"/>
+ <menu_item_call label="Chiamata a voce" name="voice_call"/>
+ <menu_item_call label="Mostra la cronologia delle chat..." name="chat_history"/>
+ <menu_item_call label="Aggiungi come amico" name="add_friend"/>
+ <menu_item_call label="Rimuovi amico" name="remove_friend"/>
+ <menu_item_call label="Invita al gruppo..." name="invite_to_group"/>
+ <menu_item_call label="Zoom avanti" name="zoom_in"/>
+ <menu_item_call label="Mappa" name="map"/>
+ <menu_item_call label="Condividi" name="share"/>
+ <menu_item_call label="Paga" name="pay"/>
+ <menu_item_check label="Blocca/Sblocca" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/it/menu_people_nearby_multiselect.xml
index e0b9ceb63d..b9ce70167f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Aggiungi amici" name="Add Friends"/>
- <menu_item_call label="Rimuovi amici" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Chiama" name="Call"/>
- <menu_item_call label="Condividi" name="Share"/>
- <menu_item_call label="Paga" name="Pay"/>
- <menu_item_call label="Offri Teleport" name="teleport"/>
+ <menu_item_call label="Aggiungi amici" name="add_friends"/>
+ <menu_item_call label="Rimuovi amici" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Chiama" name="call"/>
+ <menu_item_call label="Condividi" name="share"/>
+ <menu_item_call label="Paga" name="pay"/>
+ <menu_item_call label="Offri Teleport" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/it/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..223d88fee1
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordina in base a intervenuti recenti" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Ordina in base al nome" name="sort_name"/>
+ <menu_item_check label="Ordina in base alla distanza" name="sort_distance"/>
+ <menu_item_check label="Mostra le icone delle persone" name="view_icons"/>
+ <menu_item_check label="Mostra mappa" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml
index 2b5c235706..2b5c235706 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/it/menu_people_recent_view.xml b/indra/newview/skins/default/xui/it/menu_people_recent_view.xml
new file mode 100644
index 0000000000..fc6213bd08
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Mostra prima i più recenti" name="sort_most"/>
+ <menu_item_check label="Ordina in base al nome" name="sort_name"/>
+ <menu_item_check label="Mostra le icone delle persone" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml
index 7fccd1621a..7fccd1621a 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/it/menu_picks.xml b/indra/newview/skins/default/xui/it/menu_picks.xml
index 000d219ed0..000d219ed0 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_picks.xml
+++ b/indra/newview/skins/default/xui/it/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/it/menu_picks_plus.xml b/indra/newview/skins/default/xui/it/menu_picks_plus.xml
index 7fbd5abd57..7fbd5abd57 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/it/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/it/menu_place.xml b/indra/newview/skins/default/xui/it/menu_place.xml
index 5381a4effa..5381a4effa 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_place.xml
+++ b/indra/newview/skins/default/xui/it/menu_place.xml
diff --git a/indra/newview/skins/default/xui/it/menu_place_add_button.xml b/indra/newview/skins/default/xui/it/menu_place_add_button.xml
index 0e783c0000..0e783c0000 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/it/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/it/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/it/menu_places_gear_folder.xml
index 23757d47e0..23757d47e0 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/it/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml
index a458b1a768..a458b1a768 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/it/menu_profile_overflow.xml b/indra/newview/skins/default/xui/it/menu_profile_overflow.xml
index 56b695c597..56b695c597 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/it/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/it/menu_save_outfit.xml b/indra/newview/skins/default/xui/it/menu_save_outfit.xml
index 4882a8ac64..4882a8ac64 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/it/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/it/menu_script_chiclet.xml b/indra/newview/skins/default/xui/it/menu_script_chiclet.xml
index 604f754ba8..604f754ba8 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/it/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/it/menu_slurl.xml b/indra/newview/skins/default/xui/it/menu_slurl.xml
index be83133efc..be83133efc 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/it/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/it/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/it/menu_teleport_history_gear.xml
index 409a62c31b..409a62c31b 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
index 81053fbd65..81053fbd65 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/it/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/it/menu_teleport_history_tab.xml
index c221f141a6..c221f141a6 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/it/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/it/menu_text_editor.xml b/indra/newview/skins/default/xui/it/menu_text_editor.xml
index 5b61da914e..5b61da914e 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/it/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/it/menu_toolbars.xml b/indra/newview/skins/default/xui/it/menu_toolbars.xml
index 604ca763d1..604ca763d1 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/it/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/it/menu_topinfobar.xml b/indra/newview/skins/default/xui/it/menu_topinfobar.xml
index 0beb9314de..0beb9314de 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/it/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_agent.xml b/indra/newview/skins/default/xui/it/menu_url_agent.xml
index 37755d5749..abfbab35a3 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostra profilo residente" name="show_agent"/>
+ <menu_item_call label="Vedi profilo" name="show_agent"/>
+ <menu_item_call label="Manda IM..." name="send_im"/>
+ <menu_item_call label="Aggiungi come amico..." name="add_friend"/>
<menu_item_call label="Copia nome negli Appunti" name="url_copy_label"/>
<menu_item_call label="Copia SLurl negli Appunti" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_url_group.xml b/indra/newview/skins/default/xui/it/menu_url_group.xml
index d9a792ebdf..d9a792ebdf 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_http.xml b/indra/newview/skins/default/xui/it/menu_url_http.xml
index e0153d9169..e0153d9169 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_inventory.xml b/indra/newview/skins/default/xui/it/menu_url_inventory.xml
index a45a6bbc10..a45a6bbc10 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_map.xml b/indra/newview/skins/default/xui/it/menu_url_map.xml
index cb7935b3ed..cb7935b3ed 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_objectim.xml b/indra/newview/skins/default/xui/it/menu_url_objectim.xml
index 763e65f17c..8456d14b63 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostra informazioni oggetto" name="show_object"/>
+ <menu_item_call label="Profilo oggetto..." name="show_object"/>
<menu_item_call label="Mostra sulla mappa" name="show_on_map"/>
<menu_item_call label="Teleport sul luogo dell&apos;oggetto" name="teleport_to_object"/>
<menu_item_call label="Copia nome oggetto negli Appunti" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/it/menu_url_parcel.xml b/indra/newview/skins/default/xui/it/menu_url_parcel.xml
index a032c33585..a032c33585 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_slapp.xml b/indra/newview/skins/default/xui/it/menu_url_slapp.xml
index b368aa9141..b368aa9141 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_slurl.xml b/indra/newview/skins/default/xui/it/menu_url_slurl.xml
index 355c7dbed9..355c7dbed9 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/it/menu_url_teleport.xml b/indra/newview/skins/default/xui/it/menu_url_teleport.xml
index c129e61f25..c129e61f25 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/it/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index 547c5a9b73..c93b92029f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Ferma animazione" name="Stop Animating My Avatar"/>
<menu_item_call label="Cammina / corri / vola..." name="Walk / run / fly"/>
</menu>
- <menu label="Stato" name="Status">
- <menu_item_call label="Assente" name="Set Away"/>
- <menu_item_call label="Non disponibile" name="Set Busy"/>
- </menu>
+ <menu label="Stato" name="Status"/>
<menu_item_call label="Acquista L$..." name="Buy and Sell L$"/>
<menu_item_call label="Casella venditore in uscita..." name="MerchantOutbox"/>
<menu_item_call label="Dashboard dell&apos;account..." name="Manage My Account">
@@ -32,14 +29,18 @@
<menu_item_call label="Esci da [APP_NAME]" name="Quit"/>
</menu>
<menu label="Comunica" name="Communicate">
- <menu_item_check label="Chat..." name="Nearby Chat"/>
+ <menu_item_check label="Conversazioni..." name="Conversations"/>
+ <menu_item_check label="Chat nei dintorni..." name="Nearby Chat"/>
<menu_item_check label="Parla" name="Speak"/>
- <menu_item_check label="Impostazioni voce..." name="Nearby Voice"/>
- <menu_item_check label="Manipolazione voce..." name="ShowVoice"/>
+ <menu label="Manipolazione voce" name="VoiceMorphing">
+ <menu_item_check label="Nessuna manipolazione voce" name="NoVoiceMorphing"/>
+ <menu_item_check label="Anteprima..." name="Preview"/>
+ <menu_item_call label="Abbonati..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Gesture..." name="Gestures"/>
- <menu_item_call label="Amici" name="My Friends"/>
- <menu_item_call label="Gruppi" name="My Groups"/>
- <menu_item_call label="Persone vicine" name="Active Speakers"/>
+ <menu_item_check label="Amici" name="My Friends"/>
+ <menu_item_check label="Gruppi" name="My Groups"/>
+ <menu_item_check label="Persone vicine" name="Active Speakers"/>
<menu_item_call label="Blocca lista" name="Block List"/>
</menu>
<menu label="Mondo" name="World">
@@ -115,7 +116,6 @@
<menu_item_call label="Acquista" name="Menu Object Buy"/>
<menu_item_call label="Prendi" name="Menu Object Take"/>
<menu_item_call label="Prendi copia" name="Take Copy"/>
- <menu_item_call label="Salva nell&apos;inventario" name="Save Object Back to My Inventory"/>
<menu_item_call label="Salva nei contenuti oggetto" name="Save Object Back to Object Contents"/>
<menu_item_call label="Restituisci oggetto" name="Return Object back to Owner"/>
</menu>
@@ -130,6 +130,7 @@
<menu_item_call label="Set collegati..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Personaggi..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Visualizza / test..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Rebake regione" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Opzioni" name="Options">
<menu_item_check label="Mostra autorizzazioni avanzate" name="DebugPermissions"/>
@@ -159,6 +160,13 @@
<menu label="Aiuto" name="Help">
<menu_item_call label="Istruzioni..." name="How To"/>
<menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Guida dell&apos;utente" name="User’s guide"/>
+ <menu_item_call label="Base di conoscenza" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Forum della comunità" name="Community Forums"/>
+ <menu_item_call label="Portale assistenza" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] Notizie" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] Blog" name="Second Life Blogs"/>
<menu_item_call label="Segnala abuso" name="Report Abuse"/>
<menu_item_call label="Segnala bug" name="Report Bug"/>
<menu_item_call label="Informazioni su [APP_NAME]" name="About Second Life"/>
@@ -336,9 +344,14 @@
<menu_item_call label="Alterna la geometria dei personaggi" name="Toggle Character Geometry"/>
<menu_item_check label="Consenti selezione avatar" name="Allow Select Avatar"/>
</menu>
+ <menu label="Velocità animazione" name="Animation Speed">
+ <menu_item_call label="Accelera tutte le animazioni del 10%" name="All Animations 10 Faster"/>
+ <menu_item_call label="Rallenta tutte le animazioni del 10%" name="All Animations 10 Slower"/>
+ <menu_item_call label="Ripristina la velocità di tutte le animazioni" name="Reset All Animation Speed"/>
+ <menu_item_check label="Animazioni lente" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Forza i parametri sui valori predefiniti" name="Force Params to Default"/>
<menu_item_check label="Informazioni sull&apos;animazione" name="Animation Info"/>
- <menu_item_check label="Animazioni lente" name="Slow Motion Animations"/>
<menu_item_check label="Disabilita livello di dettaglio" name="Disable LOD"/>
<menu_item_check label="Mostra schemi collisione" name="Show Collision Skeleton"/>
<menu_item_check label="Mostra bersaglio" name="Display Agent Target"/>
diff --git a/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml
index c9a02d8a86..c9a02d8a86 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/it/menu_wearing_gear.xml b/indra/newview/skins/default/xui/it/menu_wearing_gear.xml
index de25f88aca..de25f88aca 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/it/menu_wearing_tab.xml b/indra/newview/skins/default/xui/it/menu_wearing_tab.xml
index 4a5366091f..4a5366091f 100644..100755
--- a/indra/newview/skins/default/xui/it/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/it/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/it/mime_types.xml b/indra/newview/skins/default/xui/it/mime_types.xml
index 5eda7a5752..5eda7a5752 100644..100755
--- a/indra/newview/skins/default/xui/it/mime_types.xml
+++ b/indra/newview/skins/default/xui/it/mime_types.xml
diff --git a/indra/newview/skins/default/xui/it/mime_types_linux.xml b/indra/newview/skins/default/xui/it/mime_types_linux.xml
index 3bc30b507a..3bc30b507a 100644..100755
--- a/indra/newview/skins/default/xui/it/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/it/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/it/mime_types_mac.xml b/indra/newview/skins/default/xui/it/mime_types_mac.xml
index 3bc30b507a..3bc30b507a 100644..100755
--- a/indra/newview/skins/default/xui/it/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/it/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index d5fdde4e7d..8adbebb62a 100644..100755
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -513,6 +513,24 @@ Visitare [_URL] per ulteriori informazioni?
</url>
<usetemplate ignoretext="Driver grafica obsoleto" name="okcancelignore" notext="No" yestext="Sì"/>
</notification>
+ <notification name="AMDOldDriver">
+ È probabile che ci sia un driver aggiornato per il processore grafico. L&apos;aggiornamento dei driver della grafica può migliorare le prestazioni in maniera significativa.
+
+ Visitare [_URL] per cercare un aggiornamento del driver?
+ <url name="url">
+ http://support.amd.com/it/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Driver grafica obsoleto" name="okcancelignore" notext="No" yestext="Sì"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ È probabile che ci sia un driver aggiornato per il processore grafico. L&apos;aggiornamento dei driver della grafica può migliorare le prestazioni in maniera significativa.
+
+ Visitare [_URL] per cercare un aggiornamento del driver?
+ <url name="url">
+ http://www.nvidia.it/Download/index.aspx?lang=it
+ </url>
+ <usetemplate ignoretext="Driver grafica obsoleto" name="okcancelignore" notext="No" yestext="Sì"/>
+ </notification>
<notification name="UnknownGPU">
Il tuo sistema utilizza una scheda grafica che [APP_NAME] non riconosce.
Questo succede spesso con un nuovo hardware che non è stato ancora testato con [APP_NAME]. Probabilmente tutto andrà bene, ma devi riconfigurare le tue impostazioni grafiche.
@@ -1548,10 +1566,13 @@ Vuoi cancellare quell&apos;elemento?
Impossibile offrire l&apos;amicizia in questo momento. Riprova fra poco.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- È stata impostata la modalità Non disponibile.
-La chat e gli IM verranno nascosti. Gli IM riceveranno la tua risposta di Non disponibile. Tutte le offerte di teleport verranno rifiutate. Tutte le offerte di Inventario andranno nel Cestino.
- <usetemplate ignoretext="Cambio il mio stato sulla modalità Non disponibile" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Non disturbare è attivo. Non riceverai la notifica delle comunicazioni in arrivo.
+
+- Gli altri residenti riceveranno la tua risposta Non disturbare (impostata in Preferenze &gt; Generali).
+- Le offerte di teleport verranno rifiutate.
+- Le chiamate voce verranno rifiutate.
+ <usetemplate ignoretext="Io cambio il mio stato alla modalità Non disturbare." name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Hai raggiunto il numero massimo di gruppi. Per favore abbandona almeno un gruppo prima di aderire a questo, oppure declina l&apos;offerta.
@@ -2039,6 +2060,10 @@ Trasferisci gli elementi nell&apos;inventario?
Vai al [http://secondlife.com/account/ Dashboard] per vedere la cronologia del tuo account?
<usetemplate ignoretext="Lancia il browser per vedere la cronologia del mio account" name="okcancelignore" notext="Annulla" yestext="Vai alla pagina"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Quando aggiungi una persona a una conversazione esistente, viene creata una nuova conversazione. Tutti i partecipanti riceveranno notifiche per la nuova conversazione.
+ <usetemplate ignoretext="Conferma l&apos;aggiunta dei partecipanti alla chat" name="okcancelignore" notext="Annulla" yestext="Ok"/>
+ </notification>
<notification name="ConfirmQuit">
Confermi di voler uscire?
<usetemplate ignoretext="Conferma prima di uscire" name="okcancelignore" notext="Non uscire" yestext="Esci"/>
@@ -2113,14 +2138,14 @@ Vuoi sostituirlo con l&apos;oggetto selezionato?
<button ignore="Never Replace" name="No" text="Annulla"/>
</form>
</notification>
- <notification label="Avviso di &apos;Occupato&apos;" name="BusyModePay">
- Sei in modalità &apos;Occupato&apos;, ciò significa che non riceverai ciò che attendi per questo pagamento.
+ <notification label="Avviso modalità Non disturbare" name="DoNotDisturbModePay">
+ Hai attivato la modalità Non disturbare. Non riceverai alcun oggetto offerto in cambio di questo pagamento.
-Desideri abbandonare la modalità &apos;Occupato&apos; prima di completare questa transazione?
+Vuoi disattivare la modalità Non disturbare prima di completare questa transazione?
<form name="form">
- <ignore name="ignore" save_option="true" text="Sto per pagare una persona o un oggetto mentro sono in modalià Non disponibile"/>
- <button ignore="Always leave Busy Mode" name="Yes" text="OK"/>
- <button ignore="Never leave Busy Mode" name="No" text="Abbandona"/>
+ <ignore name="ignore" text="Sto per pagare una persona o un oggetto mentre sono in modalità Non disturbare"/>
+ <button ignore="Lascia sempre la modalità Non disturbare" name="Yes" text="OK"/>
+ <button ignore="Non lasciare mai la modalità Non disturbare" name="No" text="Annulla"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2255,11 +2280,8 @@ Inseriscilo in una pagina web per dare ad altri un accesso facile a questa ubica
<notification name="GroupNotice">
Oggetto: [SUBJECT], Messaggio: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; è online
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; è offline
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; è [STATUS]
</notification>
<notification name="AddSelfFriend">
Anche se sei molto simpatico, non puoi aggiungere te stesso all&apos;elenco degli amici.
@@ -2487,13 +2509,6 @@ Qui non puoi volare.
<notification name="DynamicPathfindingDisabled">
Il pathfinding dinamico non è attivato in questa regione. Gli oggetti scriptati che usano chiamate LSL di pathfinding potrebbero non funzionare come previsto in questa regione.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- Se modifichi alcuni oggetti in questa regione, ciò potrebbe causare il comportamento errato di altri oggetti in movimento. Per fare in modo che gli oggetti in movimento si comportino correttamente, fai clic sul pulsante &quot;Rebake regione&quot;. Per maggiori informazioni, seleziona la guida
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Guida" ignoretext="Se modifichi alcuni oggetti in questa regione, ciò potrebbe causare il comportamento errato di altri oggetti in movimento." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Si è verificato un errore. Potrebbe trattarsi di un problema di rete o del server, oppure potresti non avere le autorizzazioni necessarie per la costruzione. A volte il problema viene risolto uscendo ed eseguendo nuovamente l&apos;accesso.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2754,9 +2769,9 @@ OK?
</form>
</notification>
<notification name="ScriptQuestionCaution">
- Attenzione: L&apos;oggetto &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; ha richiesto accesso completo al tuo account in Dollari Linden. Se consenti l&apos;accesso, potrà rimuovere fondi dal tuo account in qalunque momento e anche svuotare completamente l&apos;account, per un periodo illimitato e senza ulteriori avvisi.
+ Avviso: L&apos;oggetto &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; ha richiesto accesso completo al tuo account in Dollari Linden. Se consenti l&apos;accesso, potrà rimuovere fondi dal tuo account in qualunque momento e anche svuotare completamente l&apos;account, per un periodo illimitato e senza ulteriori avvisi.
-Raramente questo tipo di richiesta è legittima. Non consentire l&apos;accesso se non comprendi perfettamente il motivo per cui desidera accedere al tuo account.
+Non consentire l&apos;accesso se non comprendi perfettamente il motivo per cui desidera accedere al tuo account.
<form name="form">
<button name="Grant" text="Consenti accesso totale"/>
<button name="Deny" text="Nega"/>
@@ -3338,4 +3353,633 @@ Tentativo annullato.
Stai per cancellare [NUM_ITEMS] elementi. Vuoi continuare?
<usetemplate ignoretext="Sei sicuro di volere eliminare più oggetti?" name="okcancelignore" notext="No" yestext="Sì"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] ti ha congelato. Non ti puoi muovere o interagire con il mondo.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] ti ha congelato per [AV_FREEZE_TIME] secondi. Non ti puoi muovere o interagire con il mondo.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar congelato.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] ti ha scongelato.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar scongelato.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ La congelazione non ha avuto successo perché non hai le autorizzazioni dell&apos;amministratore per quel lotto.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Non sei più congelato, puoi continuare.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Non puoi congelare quell&apos;utente.
+ </notification>
+ <notification name="NowOwnObject">
+ Sei ora il proprietario dell&apos;oggetto [OBJECT_NAME]
+ </notification>
+ <notification name="CantRezOnLand">
+ Non puoi rezzare l&apos;oggetto a [OBJECT_POS] perché non è consentito dal proprietario del terreno. Usa lo strumento terreno per visualizzare a chi appartiene il terreno.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ Oggetto non razzato perché ci sono troppe richieste.
+ </notification>
+ <notification name="SitFailCantMove">
+ Non puoi sederti perché al momento non puoi muoverti.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Non puoi sederti perché non ti è consentito entrare in quel terreno.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Proba ad avvicinarti. Non puoi sederti su un oggetto perché
+non è nella stessa regione in cui ti trovi.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Impossibile creare il nuovo oggetto. La regione è piena.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Il posizionamento dell&apos;oggetto nella posizione specificata non è riuscito. Riprova.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Non puoi creare alberi ed erba su terreni che non sono di tua proprietà.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ Copia non riuscita perché non hai l&apos;autorizzazione necessaria per copiare l&apos;oggetto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ La copia non è riuscita perché &apos;[OBJ_NAME]&apos; non può essere trasferito a te.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ La copia non è riuscita perché &apos;[OBJ_NAME]&apos; contribuisce al navmesh.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Duplicato senza oggetto principale selezionato.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Impossibile duplicare gli oggetti perché la regione è piena.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Impossibile duplicare gli oggetti - Impossibile trovare i lotti in cui si trovano.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Impossibile creare l&apos;oggetto perché
+il lotto è pieno.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Tentativo di rezzare un oggetto non riuscito.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Impossibile creare un oggetto che ha causato problemi in questa regione.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ L&apos;oggetto dell&apos;inventario è stato aggiunto alla blacklist.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Al momento non ti è consentito creare oggetti.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Ricerca terreno bloccata.
+Hai eseguito troppe ricerche terreno in un breve tempo.
+Riprova tra un minuto.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Risorse di script non sufficienti per collegare l&apos;oggetto.
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Sei deceduto e sei stato teleportato alla tua posizione iniziale
+ </notification>
+ <notification name="EjectComingSoon">
+ Non sei più benvenuto qui e hai [EJECT_TIME] secondi per andartene.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Non puoi entrare in questa regione perché
+il server è pieno.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Opzione Salva nell&apos;inventario disattivata
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ Impossibile salvare &apos;[OBJ_NAME]&apos; nei contenuti dell&apos;oggetto perché l&apos;oggetto da cui è stato razzato non esiste più.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ Impossibile salvare &apos;[OBJ_NAME]&apos; nei contenuti dell&apos;oggetto perché non hai l&apos;autorizzazione necessaria per modificare l&apos;oggetto &apos;[DEST_NAME]&apos;.
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ Impossibile riportare &apos;[OBJ_NAME]&apos; nell&apos;inventario -- questa operazione è stata disattivata.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ Non puoi copiare l&apos;elemento selezionato perché non hai l&apos;autorizzazione necessaria per copiare l&apos;oggetto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ Non puoi copiare la selezione perché l&apos;oggetto &apos;[OBJ_NAME]&apos; non può essere trasferito.
+ </notification>
+ <notification name="NoTransNoCopy">
+ Non puoi copiare la selezione perché l&apos;oggetto &apos;[OBJ_NAME]&apos; non può essere trasferito.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ La rimozione dell&apos;oggetto &apos;[OBJ_NAME]&apos; dal simulatore non è consentita dal sistema delle autorizzazioni.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ Non puoi salvare l&apos;elemento selezionato perché non hai l&apos;autorizzazione necessaria per modificare l&apos;oggetto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ Non puoi salvare la selezione perché l&apos;oggetto &apos;[OBJ_NAME]&apos; non può essere copiato.
+ </notification>
+ <notification name="NoModNoTaking">
+ Non puoi prendere l&apos;elemento selezionato perché non hai l&apos;autorizzazione necessaria per modificare l&apos;oggetto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="RezDestInternalError">
+ Errore interno: Tipo di destinazione sconosciuto.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Cancellazione non riuscita perché l&apos;oggetto non è stato trovato.
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Non puoi espellere quell&apos;utente.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Questa regione non ti consente di impostare qui la tua posizione iniziale.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Puoi impostare la tua posizione iniziale nel tuo terreno o in un Infohub sulla terraferma.
+ </notification>
+ <notification name="HomePositionSet">
+ Posizione di base impostata.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar espulso.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ L&apos;espulsione non ha avuto successo perché non hai l&apos;autorizzazione dell&apos;amministratore del lotto.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] perché il lotto è pieno.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] perché i tuoi oggetti non sono ammessi su questo lotto.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] perché non ci sono risorse sufficienti per l&apos;oggetto su questo lotto.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] perché nell&apos;altra regione è in esecuzione una versione precedente che non consente la ricezione di questo oggetto attraverso i confini tra regioni.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] perché non puoi modificare il navmesh attraverso il confine tra regioni.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Impossibile muovere l&apos;oggetto &apos;[OBJECT_NAME]&apos; a
+[OBJ_POSITION] nella regione [REGION_NAME] per un motivo sconosciuto. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ Non hai l&apos;autorizzazione necessaria per modificare questa immagine
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Non è possibile attivare la fisica per un oggetto che contribuisce al navmesh.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Impossibile attivare la fisica per oggetti keyframe.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Impossibile attivare la fisica per l&apos;oggetto -- risorse di terreno insufficienti.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Impossibile attivare la fisica per un oggetto con un costo delle risorse della fisica maggiore di [MAX_OBJECTS]
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Questo oggetto non può avere un pezzo concavo perché è un oggetto fantasma e contribuisce al navmesh.
+ </notification>
+ <notification name="UnableAddItem">
+ Aggiunta elemento non riuscita
+ </notification>
+ <notification name="UnableEditItem">
+ Impossibile modificare questo elemento.
+ </notification>
+ <notification name="NoPermToEdit">
+ Non sei autorizzato a modificare questo elemento.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Non ti è permesso copiare quell&apos;inventario.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Impossibile salvare i contenuti dell&apos;oggetto: L&apos;elemento non esiste più.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Impossibile salvare i contenuti dell&apos;oggetto: Nell&apos;inventario esiste già un elemento con quel nome.
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Impossibile salvare i contenuti dell&apos;oggetto: Verrebbero modificate le autorizzazioni per il collegamento.
+ </notification>
+ <notification name="TooManyScripts">
+ Troppi script.
+ </notification>
+ <notification name="UnableAddScript">
+ Aggiunta script non riuscita.
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Il server degli asset non ha inviato una risposta entro il tempo massimo. Oggetto restituito al sim.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ In questa regione non sono attivate le forme per la fisica.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Non puoi modificare il navmesh attraverso il confine tra le regioni.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Impossibile impostare le proprietà della fisica per quel tipo di oggetto.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ impossibile impostare un prim principale senza forma.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ In questa regione non sono attivati i materiali per la fisica.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ I materiali per la fisica possono essere modificati solo i prim principali.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ L&apos;impostazione dei materiali per la fisica nei caratteri non è ancora supportata.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Almeno una delle proprietà dei materiali per la fisica non è valida.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Non puoi alterare il tipo di punto di un oggetto con reticolo
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Non puoi alterare la forma di un oggetto con reticolo
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Non puoi entrare in questa regione perché è piena.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Collegamento non riuscito -- i proprietari non corrispondono
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Collegamento non riuscito -- non puoi modificare il navmesh attraverso il confine tra le regioni.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Collegamento non riuscito perché non hai le autorizzazioni necessarie per la modifica.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Collegamento non riuscito -- troppe primitive.
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Collegamento non riuscito -- impossibile collegare elementi senza copia ed elementi senza trasferimento
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Collegamento non riuscito -- niente di collegabile.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Collegamento non riuscito -- troppi personaggi con pathfinding
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Collegamento non riuscito -- risorse terreno non sufficienti
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ L&apos;oggetto usa troppe risorse per la fisica -- le sue dinamiche sono state disattivate.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Sei stato teleportato nella posizione iniziale dall&apos;oggetto &apos;[OBJECT_NAME]&apos; del lotto &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Sei stato teleportato nella tua posizione iniziale dall&apos;oggetto &apos;[OBJECT_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Sei stato teletrasportato da un elemento collegato a [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Sei stato teleportato dall&apos;oggetto &apos;[OBJECT_NAME]&apos; sul lotto &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Sei stato teleportato dall&apos;oggetto &apos;[OBJECT_NAME]&apos; di proprietà di [OWNER_ID]
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Sei stato teleportato dall&apos;oggetto &apos;[OBJECT_NAME]&apos; di proprietà di un utente sconosciuto.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Impossibile creare l&apos;oggetto richiesto. La regione è piena.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Non puoi collegare più oggetti a un singolo luogo.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Non puoi creare oggetti multipli in questa posizione.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Impossibile creare l&apos;oggetto richiesto. L&apos;oggetto non è presente nel database.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Impossibile creare l&apos;oggetto richiesto. Tempo scaduto per la richiesta. Riprova.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Impossibile creare l&apos;oggetto richiesto. Riprova.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Rezzing non riuscito. Il caricamento dell&apos;oggetto richiesto è durato troppo a lungo.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Il posizionamento dell&apos;oggetto nella posizione specificata non è riuscito. Riprova.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Non puoi creare piante su questo terreno.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Impossibile ripristinare l&apos;oggetto. Nessuna posizione trovata nel mondo virtuale.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Impossibile rezzare l&apos;oggetto perché i dati del reticolo non sono validi.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Impossibile rezzare l&apos;oggetto perché ci sono già troppi script in questa regione.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Le tue autorizzazioni di accesso non ti permettono di creare oggetti in quella posizione.
+ </notification>
+ <notification name="CantCreateObject">
+ Al momento non ti è consentito creare oggetti.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Parametri oggetto non validi
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Le tue autorizzazioni di accesso non ti permettono di duplicare oggetti in questa posizione.
+ </notification>
+ <notification name="CantChangeShape">
+ Non ti è consentito modificare questa forma.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Le tue autorizzazioni di accesso non ti permettono di richiedere oggetti in questa posizione.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Assegnazione non riuscita perché non hai l&apos;autorizzazione necessaria per assegnare oggetti per il tuo gruppo.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Le tue autorizzazioni di accesso non ti permettono di acquistare oggetti in questa posizione.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Impossibile collegare l&apos;oggetto perché un avatar è seduto sopra.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Alberi ed erba non possono essere indossati come collegati.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Impossibile collegare oggetti di proprietà di un gruppo.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Non puoi collegare oggetti che non sono di tua proprietà.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Impossibile collegare oggetti che contribuiscono a navmesh.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ L&apos;oggetto non può essere collegato perché non sei autorizzato a muoverlo.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Risorse di script non sufficienti per collegare l&apos;oggetto.
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Non puoi lasciare oggetti qui, prova la zona Prova gratuita.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Non puoi lasciare elementi collegati con reticolo. Separa nell&apos;inventario e quindi rezza nel mondo virtuale.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Impossibile rimuovere l&apos;elemento collegato: non hai l&apos;autorizzazione necessaria per rimuoverlo qui.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Impossibile rimuovere l&apos;elemento collegato: risorse terreno disponibili non sufficienti.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Impossibile rimuovere gli elementi collegati: risorse disponibili non sufficienti.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Non puoi lasciare l&apos;oggetto qui. Il lotto è pieno.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Non puoi toccare/afferrare questo oggetto perché sei stato bandito dal lotto di terreno.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Limita i parametri per la cancellazione.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Impossibile caricare l&apos;asset.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Utente da teleportare alla posizione iniziale non trovato
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ richiesta superpoteri non riuscita
+ </notification>
+ <notification name="GenericRequestFailed">
+ richiesta generica non riuscita
+ </notification>
+ <notification name="CantUploadPostcard">
+ Impossibile caricare la cartolina. Riprova più tardi.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ I dettagli dell&apos;inventario per la notifica di gruppo non sono stati trovati.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Impossibile inviare la notifica di gruppo -- non consentita.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Impossibile inviare la notifica di gruppo -- impossibile costruire l&apos;inventario.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Impossibile analizzare l&apos;inventario nella notifica.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Caricamento terreno non riuscito.
+ </notification>
+ <notification name="TerrainFileWritten">
+ File terreno scritto.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ File terreno generato, avvio del download...
+ </notification>
+ <notification name="TerrainBaked">
+ Baking terreno completata.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Sono stati disattivati solo i primi 10 oggetti. Se necessario, aggiorna e seleziona nuovamente.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Devi aggiornare il Viewer per poter acquistare questo lotto.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Impossibile acquistare, questo lotto non è in vendita.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Impossibile acquistare. Il prezzo o l&apos;area del terreno sono stati cambiati.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Non sei l&apos;acquirente autorizzato di questo lotto.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Non puoi acquistare questo lotto perché è in attesa di autorizzazione all&apos;acquisto
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Non puoi costruire oggetti qui perché si supererebbe il limite per il lotto.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ hai selezionato terreni con proprietari diversi. Seleziona un&apos;area più piccola e riprova.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Non sono stati selezionati abbastanza lotti affittati da collegare.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Terreno non divisibile.\nHai selezionato più di un lotto.\nProva a selezionare una quantità di terreno più piccola.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ impossibile suddividere il terreno.\nimpossibile trovare il lotto.\nInvia una segnalazione con Aiuto -&gt; Segnala bug...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Impossibile suddividere il terreno. È stato selezionato l&apos;intero lotto.\nProva a selezionare un pezzo di terreno più piccolo.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ Il terreno è stato diviso.
+ </notification>
+ <notification name="PassPurchased">
+ Hai acquistato un pass.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ Nella regione non sono permessi gli annunci pubblicitari.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Il tuo pass per questo terreno è quasi scaduto.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Nessuna superficie adatta a sedersi, prova un altro luogo.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Non c&apos;è posto per sedersi, prova un altro luogo.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ La richiesta dell&apos;oggetto non ha avuto successo perché non hai l&apos;autorizzazione necessaria.
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ La richiesta dell&apos;oggetto non ha avuto successo perché non hai L$ sufficienti.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Non puoi assegnare terreno di proprietà di un gruppo.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ L&apos;acquisto dell&apos;oggetto non ha avuto successo perché non hai L$ sufficienti.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ L&apos;acquisto dell&apos;inventario non ha avuto successo perché non hai L$ sufficienti.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ Non hai abbastanza L$ per acquistare un pass per questo terreno.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Al momento non puoi acquistare un pass. Riprova più tardi.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Impossibile creare l&apos;oggetto perché il lotto è pieno.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Il posizionamento dell&apos;oggetto nella posizione specificata non è riuscito. Riprova.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Impossibile creare il punto di riferimento per l&apos;evento.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ I tuoi superpoteri hanno interrotto la congelazione.
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Richiesta di poteri speciali non riuscita. La richiesta è stata registrata.
+ </notification>
+ <notification name="ExpireExplanation">
+ Al momento il sistema non è in grado di elaborare la tua richiesta. Tempo scaduto per la richiesta.
+ </notification>
+ <notification name="DieExplanation">
+ Il sistema non è in grado di elaborare la tua richiesta.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Denaro insufficiente per creare una primitiva.
+ </notification>
+ <notification name="RezObjectFailure">
+ Denaro insufficiente per creare un oggetto.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Posizione iniziale ripristinata perché non era valida.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Al momento non puoi invitare nessuno alla tua posizione perché la regione è piena. Riprova più tardi.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Questa regione non ti consente di impostare qui la tua posizione iniziale.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Puoi impostare la tua posizione iniziale nel tuo terreno o in un Infohub sulla terraferma.
+ </notification>
+ <notification name="SetHomePosition">
+ Posizione di base impostata.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Impossibile derazzare l&apos;oggetto a causa di un errore nell&apos;inventario.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Impossibile creare l&apos;inventario richiesto.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Impossibile creare la cartella dell&apos;inventario richiesta.
+ </notification>
+ <notification name="CantCreateInventory">
+ Impossibile creare quell&apos;inventario.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Impossibile creare il punto di riferimento.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Il vestiario non può essere creato in questo momento. Riprova tra un minuto.
+ </notification>
+ <notification name="InventoryNotForSale">
+ L&apos;inventario non è in vendita.
+ </notification>
+ <notification name="CantFindInvItem">
+ Impossibile trovare l&apos;elemento nell&apos;inventario.
+ </notification>
+ <notification name="CantFindObject">
+ Impossibile trovare l&apos;oggetto.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Il trasferimento di denaro agli oggetti è attualmente disattivato in questa regione.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Non si capisce chi deve essere pagato.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Non puoi dare L$ a oggetti pubblici.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Creazione inventario non riuscito per un oggetto nel mondo virtuale.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Un errore interno ha impedito l&apos;aggiornamento del Viewer. Il saldo in L$ o i lotti posseduti mostrati nel Viewer potrebbero non corrispondere ai valori correnti sui server.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Non puoi creare prim grandi che intersecano altri giocatori. Riprova quando gli altri giocatori si sono spostati.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Verranno cancellati i registri delle conversazioni precedenti e tutti gli eventuali backup di quel file.
+ <usetemplate ignoretext="Conferma prima di cancellare il registro delle conversazioni precedenti." name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Verranno cancellate le trascrizioni di tutte le conversazioni precedenti. L&apos;elenco delle conversazioni passate non cambierà. Tutti i file con i suffissi .txt e txt.backup nella cartella [FOLDER] verranno cancellati.
+ <usetemplate ignoretext="Conferma prima di cancellare le trascrizioni." name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Impossibile spostare i file. Il percorso precedente è stato ripristinato.
+ <usetemplate ignoretext="Impossibile spostare i file. Il percorso precedente è stato ripristinato." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/it/panel_active_object_row.xml b/indra/newview/skins/default/xui/it/panel_active_object_row.xml
index b8cca6f01a..b8cca6f01a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/it/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml
index be001d09f8..be001d09f8 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/it/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/it/panel_avatar_list_item.xml
index ede19b9e5a..cfceb5b982 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_avatar_list_item.xml
@@ -26,5 +26,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Questo amico può modificare, cancellare o prendere i tuoi oggetti"/>
<icon name="permission_map_icon" tool_tip="Questo amico può identificarti sulla mappa"/>
<icon name="permission_online_icon" tool_tip="Questo amico può vedere se sei online"/>
+ <button name="info_btn" tool_tip="Maggiori informazioni"/>
<button name="profile_btn" tool_tip="Vedi profilo"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml
index 610f561a65..7ca2d3b57b 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Blocca lista
- </text>
- <scroll_list name="blocked" tool_tip="Lista degli attuali residenti bloccati"/>
- <button label="Blocca il residente..." label_selected="Blocca il residente..." name="Block resident..." tool_tip="Scegli un residente da bloccare"/>
- <button label="Blocca l&apos;oggetto per nome..." label_selected="Blocca l&apos;oggetto per nome..." name="Block object by name..."/>
- <button label="Sblocca" label_selected="Sblocca" name="Unblock" tool_tip="Rimuovi un residente o un oggetto dalla lista bloccati"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtro" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Azioni sulla persona o oggetto selezionato"/>
+ <menu_button name="view_btn" tool_tip="Opzioni Ordina"/>
+ <menu_button name="plus_btn" tool_tip="Seleziona un residente o un oggetto da bloccare"/>
+ <button name="unblock_btn" tool_tip="Rimuovi un residente o un oggetto dalla lista bloccati"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Lista degli attuali residenti bloccati"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml
index b44c4c29e6..b44c4c29e6 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/it/panel_bodyparts_list_button_bar.xml
index 8fc23d34f1..8fc23d34f1 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/it/panel_bottomtray_lite.xml
index ff576c7dd2..ff576c7dd2 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/it/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml
index 66bf3f140f..66bf3f140f 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_classified_info.xml b/indra/newview/skins/default/xui/it/panel_classified_info.xml
index a7cf51c4b9..a7cf51c4b9 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/it/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/it/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/it/panel_clothing_list_button_bar.xml
index e9d9795b3a..e9d9795b3a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml
index 7667e95663..7667e95663 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_cof_wearables.xml b/indra/newview/skins/default/xui/it/panel_cof_wearables.xml
index d914a5740f..d914a5740f 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/it/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/it/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/it/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..ca6b65300a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(caricamento in corso)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/it/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..624eaa639c
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="La conversazione includeva la voce"/>
+ <icon name="unread_ims_icon" tool_tip="Sono arrivati dei messaggi mentre eri via"/>
+ <button name="delete_btn" tool_tip="Elimina questo elemento"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml
index cbcaa0689a..cbcaa0689a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml
index eb3af5f2a5..eb3af5f2a5 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_alpha.xml b/indra/newview/skins/default/xui/it/panel_edit_alpha.xml
index 6daa0cf8fd..6daa0cf8fd 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_classified.xml b/indra/newview/skins/default/xui/it/panel_edit_classified.xml
index ad827696ff..ad827696ff 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_eyes.xml b/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
index 9f31bb7dc7..9f31bb7dc7 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_gloves.xml b/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
index 366a82f7aa..366a82f7aa 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_hair.xml b/indra/newview/skins/default/xui/it/panel_edit_hair.xml
index 50e2e7e4b3..50e2e7e4b3 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_jacket.xml b/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
index 337720d068..337720d068 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_pants.xml b/indra/newview/skins/default/xui/it/panel_edit_pants.xml
index 21b5b7c026..21b5b7c026 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_physics.xml b/indra/newview/skins/default/xui/it/panel_edit_physics.xml
index 669a2c0eab..669a2c0eab 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_pick.xml b/indra/newview/skins/default/xui/it/panel_edit_pick.xml
index 145b8cf4e3..145b8cf4e3 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_profile.xml b/indra/newview/skins/default/xui/it/panel_edit_profile.xml
index 545e96a8f1..545e96a8f1 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shape.xml b/indra/newview/skins/default/xui/it/panel_edit_shape.xml
index fd6a7af69c..fd6a7af69c 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shirt.xml b/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
index 1777c0147f..1777c0147f 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shoes.xml b/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
index c79408b94a..c79408b94a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_skin.xml b/indra/newview/skins/default/xui/it/panel_edit_skin.xml
index 466eff2708..466eff2708 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_skirt.xml b/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
index 87cdd16676..87cdd16676 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_socks.xml b/indra/newview/skins/default/xui/it/panel_edit_socks.xml
index f61a72ed76..f61a72ed76 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/it/panel_edit_tattoo.xml
index d76fb62c53..d76fb62c53 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_underpants.xml b/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
index 924344e3c0..924344e3c0 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
index 2f22c03294..2f22c03294 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/it/panel_edit_wearable.xml b/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
index e54dc26d05..e54dc26d05 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_control_panel.xml b/indra/newview/skins/default/xui/it/panel_group_control_panel.xml
index 2d17e4a0cd..2d17e4a0cd 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml
index 49baa73811..49baa73811 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
index 34ee3c2dca..34ee3c2dca 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_invite.xml b/indra/newview/skins/default/xui/it/panel_group_invite.xml
index 1b57eba3f0..1b57eba3f0 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_land_money.xml b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
index 27675a18f5..27675a18f5 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_list_item.xml b/indra/newview/skins/default/xui/it/panel_group_list_item.xml
index 7cdc4c7ff6..72e644008c 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Sconosciuto"/>
+ <button name="info_btn" tool_tip="Maggiori informazioni"/>
<button name="profile_btn" tool_tip="Vedi profilo"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_notices.xml b/indra/newview/skins/default/xui/it/panel_group_notices.xml
index 524f7d2822..524f7d2822 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_notify.xml b/indra/newview/skins/default/xui/it/panel_group_notify.xml
index 91a41353a5..91a41353a5 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/it/panel_group_roles.xml b/indra/newview/skins/default/xui/it/panel_group_roles.xml
index 478b35e628..478b35e628 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml b/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
index 76b28eab24..76b28eab24 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/it/panel_inventory_item.xml b/indra/newview/skins/default/xui/it/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_landmark_info.xml b/indra/newview/skins/default/xui/it/panel_landmark_info.xml
index b4c5ab01bc..b4c5ab01bc 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/it/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/it/panel_landmarks.xml b/indra/newview/skins/default/xui/it/panel_landmarks.xml
index 5617105c31..5617105c31 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/it/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml
index 2afde40940..2afde40940 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_login.xml
+++ b/indra/newview/skins/default/xui/it/panel_login.xml
diff --git a/indra/newview/skins/default/xui/it/panel_main_inventory.xml b/indra/newview/skins/default/xui/it/panel_main_inventory.xml
index 446b51ffa3..446b51ffa3 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/panel_me.xml b/indra/newview/skins/default/xui/it/panel_me.xml
index a134f6f1de..a134f6f1de 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_me.xml
+++ b/indra/newview/skins/default/xui/it/panel_me.xml
diff --git a/indra/newview/skins/default/xui/it/panel_media_settings_general.xml b/indra/newview/skins/default/xui/it/panel_media_settings_general.xml
index f11b2415ee..f11b2415ee 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
index 0f0f1c9fe4..0f0f1c9fe4 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/it/panel_media_settings_security.xml b/indra/newview/skins/default/xui/it/panel_media_settings_security.xml
index 785cd048a1..785cd048a1 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/it/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/it/panel_navigation_bar.xml b/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
index 0299e2a532..0299e2a532 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_chat.xml b/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
index d46a15c735..d46a15c735 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
index 1fef88870a..1fef88870a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_media.xml b/indra/newview/skins/default/xui/it/panel_nearby_media.xml
index 03421456f9..03421456f9 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/it/panel_notify_textbox.xml b/indra/newview/skins/default/xui/it/panel_notify_textbox.xml
index ef27262010..ef27262010 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/it/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/it/panel_online_status_toast.xml b/indra/newview/skins/default/xui/it/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/it/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/it/panel_outbox_inventory.xml
index af5e05336e..af5e05336e 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outfit_edit.xml b/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
index 446c211b1c..446c211b1c 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
index c7821bc363..c7821bc363 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/it/panel_outfits_inventory_gear_default.xml
index 9e1a45b129..9e1a45b129 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_list.xml b/indra/newview/skins/default/xui/it/panel_outfits_list.xml
index d0c275e29f..d0c275e29f 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml
index 3bbf2446f5..3bbf2446f5 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/it/panel_people.xml b/indra/newview/skins/default/xui/it/panel_people.xml
index f903ae6e2c..e1468db76e 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_people.xml
+++ b/indra/newview/skins/default/xui/it/panel_people.xml
@@ -14,81 +14,53 @@ Stai cercando persone da frequentare? Prova la [secondlife:///app/worldmap Mappa
<string name="no_filtered_friends_msg">
Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people/[SEARCH_TERM] Cerca].
</string>
- <string name="people_filter_label" value="Filtro persone"/>
- <string name="groups_filter_label" value="Filtro gruppi"/>
<string name="no_filtered_groups_msg" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/groups/[SEARCH_TERM] Cerca]."/>
<string name="no_groups_msg" value="Stai cercando gruppi di cui far parte? Prova [secondlife:///app/search/groups Cerca]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Fai doppio clic per aprire la Mappa, premi il tasto Maiusc e trascina per la panoramica)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Fai doppio clic per teleportarti, premi il tasto Maiusc e trascina per la panoramica)"/>
- <filter_editor label="Filtro" name="filter_input"/>
<tab_container name="tabs">
<panel label="NELLE VICINANZE" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Opzioni"/>
- <button name="add_friend_btn" tool_tip="Aggiungi il residente selezionato alla tua lista degli amici"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Filtro persone" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Azioni per la persona selezionata:"/>
+ <menu_button name="nearby_view_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <button name="add_friend_btn" tool_tip="Offri amicizia a un residente"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Rimuovi la persona selezionata dagli amici"/>
</panel>
</panel>
- <panel label="I MIEI AMICI" name="friends_panel">
+ <panel label="AMICI" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Filtro persone" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Azioni per la persona selezionata:"/>
+ <menu_button name="friends_view_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <button name="friends_add_btn" tool_tip="Offri amicizia a un residente"/>
+ <dnd_button name="friends_del_btn" tool_tip="Rimuovi la persona selezionata dagli amici"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Online"/>
<accordion_tab name="tab_all" title="Tutto"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Mostra ulteriori opzioni"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Offri amicizia a un residente"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Rimuovi la persona selezionata dalla lista degli amici"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="I MIEI GRUPPI" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Opzioni"/>
- <button name="plus_btn" tool_tip="Aderisci al gruppo/Crea nuovo gruppo"/>
- <button name="activate_btn" tool_tip="Attiva il gruppo selezionato"/>
+ <panel label="GRUPPI" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Filtro gruppi" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Azioni per il gruppo selezionato:"/>
+ <menu_button name="groups_view_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <menu_button name="plus_btn" tool_tip="Aderisci al gruppo/Crea nuovo gruppo"/>
+ <dnd_button name="minus_btn" tool_tip="Lascia il gruppo selezionato"/>
</panel>
</panel>
<panel label="RECENTE" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Opzioni"/>
- <button name="add_friend_btn" tool_tip="Aggiungi il residente selezionato alla tua lista degli amici"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Filtro persone" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Azioni per la persona selezionata:"/>
+ <menu_button name="recent_view_btn" tool_tip="Opzioni Mostra/Ordina"/>
+ <button name="add_friend_btn" tool_tip="Offri amicizia a un residente"/>
+ <dnd_button name="recent_del_btn" tool_tip="Rimuovi la persona selezionata dagli amici"/>
</panel>
</panel>
+ <panel label="BLOCCATO" name="blocked_panel">
+ <panel label="Residenti e oggetti bloccati" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Profilo" name="view_profile_btn" tool_tip="Mostra immagine, gruppi e altre informazioni del residente"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="Apri una sessione messaggio istantaneo"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Chiama" name="call_btn" tool_tip="Chiama questo residente"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Condividi" name="share_btn" tool_tip="Condividi un oggetto dell&apos;inventario"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Teleport" name="teleport_btn" tool_tip="Offri teleport"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Profilo del gruppo" name="group_info_btn" tool_tip="Mostra informazioni gruppo"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Chat di gruppo" name="chat_btn" tool_tip="Apri sessione chat"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Chiamata al gruppo" name="group_call_btn" tool_tip="Chiama questo gruppo"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_pick_info.xml b/indra/newview/skins/default/xui/it/panel_pick_info.xml
index ca9959a581..ca9959a581 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/it/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/it/panel_picks.xml b/indra/newview/skins/default/xui/it/panel_picks.xml
index 3faf28a948..3faf28a948 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_picks.xml
+++ b/indra/newview/skins/default/xui/it/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/it/panel_place_profile.xml b/indra/newview/skins/default/xui/it/panel_place_profile.xml
index 890dfc2458..890dfc2458 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/it/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/it/panel_places.xml b/indra/newview/skins/default/xui/it/panel_places.xml
index 69995fb5de..69995fb5de 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_places.xml
+++ b/indra/newview/skins/default/xui/it/panel_places.xml
diff --git a/indra/newview/skins/default/xui/it/panel_postcard_message.xml b/indra/newview/skins/default/xui/it/panel_postcard_message.xml
index c720f4822d..c720f4822d 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/it/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/it/panel_postcard_settings.xml b/indra/newview/skins/default/xui/it/panel_postcard_settings.xml
index 6a586c4415..6a586c4415 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/it/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
index 224780f234..224780f234 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml
index fd1fd57761..fd1fd57761 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
index 0c9c4027e5..c2ac6e97a9 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Text Chat" name="chat">
- <text name="font_size">
- Dimensioni caratteri:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Piccola" name="radio" value="0"/>
- <radio_item label="Media" name="radio2" value="1"/>
- <radio_item label="Grande" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Simula la battitura tasti quando scrivi" name="play_typing_animation"/>
- <check_box label="Quando sono OFF-LINE, spediscimi gli IM in una e-mail" name="send_im_to_email"/>
- <check_box label="Attiva IM in testo semplice e cronologia chat" name="plain_text_chat_history"/>
- <check_box label="Chat a vignetta" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Mostra gli IM in:
- </text>
- <text name="requires_restart_label">
- (richiede il riavvio)
- </text>
- <radio_group name="chat_window" tool_tip="Mostra i tuoi messaggi istantanei in diverse finestre, o in una finestra con più schede (richiede il riavvio)">
- <radio_item label="Finestre separate" name="radio" value="0"/>
- <radio_item label="Schede" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Attiva popup per chat in arrivo:
- </text>
- <check_box label="Chat di gruppo" name="EnableGroupChatPopups" tool_tip="Seleziona per vedere una finestra popup quando arriva una chat di gruppo"/>
- <check_box label="Chat IM" name="EnableIMChatPopups" tool_tip="Seleziona per vedere una finestra popup quando arriva un messaggio IM"/>
- <spinner label="Durata chat vicine:" name="nearby_toasts_lifetime"/>
- <spinner label="Durata dissolvenza chat vicine:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Simula la battitura tasti quando scrivi" name="play_typing_animation"/>
+ <check_box label="Quando sono OFF-LINE, spediscimi gli IM in una e-mail" name="send_im_to_email"/>
+ <check_box label="Solo amici e gruppi possono chiamarmi o mandarmi IM" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Dimensioni caratteri:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Piccolo" name="Small" value="0"/>
+ <item label="Medio" name="Medium" value="1"/>
+ <item label="Grande" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Chat a vignetta" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Notifiche
+ </text>
+ <text name="friend_ims">
+ IM degli amici:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Apri finestra Conversazioni" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mostra il messaggio in una finestra pop-up" name="PopUpMessage" value="toast"/>
+ <item label="Pulsante barra strumenti Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Nessuno" name="None" value="none"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ IM non di amici:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Apri finestra Conversazioni" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mostra il messaggio in una finestra pop-up" name="PopUpMessage" value="toast"/>
+ <item label="Pulsante barra strumenti Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Nessuno" name="None" value="none"/>
+ </combo_box>
+ <text name="conference_ims">
+ IM conferenza:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Apri finestra Conversazioni" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mostra il messaggio in una finestra pop-up" name="PopUpMessage" value="toast"/>
+ <item label="Pulsante barra strumenti Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Nessuno" name="None" value="none"/>
+ </combo_box>
+ <text name="group_chat">
+ Chat di gruppo:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Apri finestra Conversazioni" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mostra il messaggio in una finestra pop-up" name="PopUpMessage" value="toast"/>
+ <item label="Pulsante barra strumenti Flash" name="FlashToolbarButton" value="flash"/>
+ <item label="Nessuno" name="None" value="none"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Chat nei dintorni:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Apri finestra Conversazioni" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mostra il messaggio in una finestra pop-up" name="PopUpMessage" value="toast"/>
+ <item label="Pulsante barra strumenti Flash" name="FlashToolBarButton" value="flash"/>
+ <item label="Nessuno" name="None" value="none"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Per interrompere temporaneamente le notifiche, usa Comunica &gt; Non disturbare.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Riproduci suono:
+ </text>
+ <check_box label="Nuova conversazione" name="new_conversation"/>
+ <check_box label="Chiamata voce in arrivo" name="incoming_voice_call"/>
+ <check_box label="Offerta di Teleport" name="teleport_offer"/>
+ <check_box label="Offerta inventario" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Cancella registro..." name="clear_log"/>
+ <button label="Cancella trascrizioni..." name="delete_transcripts"/>
+ <button label="Sfoglia..." label_selected="Sfoglia" name="log_path_button"/>
+ </panel>
<button label="Traduzione..." name="ok_btn"/>
<button label="Sostituzione automatica..." name="autoreplace_showgui"/>
<button label="Correzione ortografica..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_colors.xml b/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
index 016970d9a3..016970d9a3 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index 90a833471c..45cc06c2ea 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -69,6 +69,9 @@
<combo_box.item label="mai" name="item4"/>
</combo_box>
<text name="text_box3">
- Risposta in modalità occupato:
+ Risposta Non disturbare:
</text>
+ <text_editor name="do_not_disturb_response">
+ log_in_to_change
+ </text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
index 1f2b97af45..1f2b97af45 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_move.xml b/indra/newview/skins/default/xui/it/panel_preferences_move.xml
index 8d172bb8bb..8d172bb8bb 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/it/panel_preferences_privacy.xml
index 41e7a59139..41e7a59139 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
index 0189d47f45..0189d47f45 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_sound.xml b/indra/newview/skins/default/xui/it/panel_preferences_sound.xml
index d00512aaf7..d00512aaf7 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml
index 4620d72977..4620d72977 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_covenant.xml b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
index 0d3117ca7a..0d3117ca7a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_debug.xml b/indra/newview/skins/default/xui/it/panel_region_debug.xml
index aba60d03aa..aba60d03aa 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_environment.xml b/indra/newview/skins/default/xui/it/panel_region_environment.xml
index 81bc8253f4..81bc8253f4 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml
index 98d9b86cfc..98d9b86cfc 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_general.xml b/indra/newview/skins/default/xui/it/panel_region_general.xml
index c550e005ae..c550e005ae 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/it/panel_region_terrain.xml b/indra/newview/skins/default/xui/it/panel_region_terrain.xml
index c61ac3ecce..c61ac3ecce 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/it/panel_script_ed.xml b/indra/newview/skins/default/xui/it/panel_script_ed.xml
index d7ee8230b3..d7ee8230b3 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/it/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/it/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/it/panel_script_limits_my_avatar.xml
index 98096a391a..98096a391a 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/it/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/it/panel_script_limits_region_memory.xml
index df7b0eae1c..df7b0eae1c 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/it/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/it/panel_script_question_toast.xml b/indra/newview/skins/default/xui/it/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/it/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/it/panel_scrolling_param.xml b/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
index b5f8c8d6f0..b5f8c8d6f0 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/it/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/it/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/it/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml
index 3c7874e093..3c7874e093 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/it/panel_snapshot_inventory.xml
index c9245029b7..c9245029b7 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_local.xml b/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
index 4b725b68f9..4b725b68f9 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_options.xml b/indra/newview/skins/default/xui/it/panel_snapshot_options.xml
index f2d42c5197..f2d42c5197 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/it/panel_snapshot_postcard.xml
index 3703b97e6c..3703b97e6c 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/it/panel_snapshot_profile.xml
index 2cdbf97049..2cdbf97049 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/it/panel_sound_devices.xml b/indra/newview/skins/default/xui/it/panel_sound_devices.xml
index b1934fd515..b1934fd515 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/it/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/it/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/it/panel_stand_stop_flying.xml
index e4ff7019ec..e4ff7019ec 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/it/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/it/panel_status_bar.xml b/indra/newview/skins/default/xui/it/panel_status_bar.xml
index 0aaf89d8c8..0aaf89d8c8 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/it/panel_teleport_history.xml b/indra/newview/skins/default/xui/it/panel_teleport_history.xml
index f4fa59babe..f4fa59babe 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/it/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/it/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/it/panel_teleport_history_item.xml
index 2ba4baacaf..2ba4baacaf 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/it/panel_voice_effect.xml b/indra/newview/skins/default/xui/it/panel_voice_effect.xml
index b43f766e5e..b43f766e5e 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/it/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
index bc17fc0c89..bc17fc0c89 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/it/panel_world_map.xml b/indra/newview/skins/default/xui/it/panel_world_map.xml
index 642af75028..642af75028 100644..100755
--- a/indra/newview/skins/default/xui/it/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/it/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/it/role_actions.xml b/indra/newview/skins/default/xui/it/role_actions.xml
index 300e6cf721..300e6cf721 100644..100755
--- a/indra/newview/skins/default/xui/it/role_actions.xml
+++ b/indra/newview/skins/default/xui/it/role_actions.xml
diff --git a/indra/newview/skins/default/xui/it/sidepanel_appearance.xml b/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
index 220a6f84af..220a6f84af 100644..100755
--- a/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
index 5ac0961bd7..5ac0961bd7 100644..100755
--- a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml
index 2b3ea0fb83..2b3ea0fb83 100644..100755
--- a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml
index 8a0f93e650..5f912dd126 100644..100755
--- a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Acquista oggetto" name="Buyobject"/>
<combo_box.item label="Paga oggetto" name="Payobject"/>
<combo_box.item label="Apri" name="Open"/>
+ <combo_box.item label="Ingrandisci" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index fb1e387468..f95318542b 100644..100755
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -134,7 +134,7 @@
Esci
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=it-IT&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
Il viewer utilizzato non è più in grado di accedere a Second Life. Visita la parina seguente per scaricare un nuovo viewer:
@@ -616,8 +616,8 @@ Prova ad accedere nuovamente tra un minuto.
<string name="AvatarAway">
Assente
</string>
- <string name="AvatarBusy">
- Occupato
+ <string name="AvatarDoNotDisturb">
+ Non disturbare
</string>
<string name="AvatarMuted">
Mutato
@@ -853,6 +853,12 @@ Prova ad accedere nuovamente tra un minuto.
<string name="ST_NO_JOINT">
Impossibile trovare ROOT o JOINT.
</string>
+ <string name="NearbyChatTitle">
+ Chat nei dintorni
+ </string>
+ <string name="NearbyChatLabel">
+ (Chat nei dintorni)
+ </string>
<string name="whisper">
sussurra:
</string>
@@ -916,6 +922,9 @@ Prova ad accedere nuovamente tra un minuto.
<string name="ControlYourCamera">
Controllare la tua fotocamera
</string>
+ <string name="AgentNameSubst">
+ (Tu)
+ </string>
<string name="TeleportYourAgent">
Teleportarti
</string>
@@ -1000,18 +1009,6 @@ Prova ad accedere nuovamente tra un minuto.
<string name="dictionary_files">
Dizionari
</string>
- <string name="AvatarSetNotAway">
- Imposta come non assente
- </string>
- <string name="AvatarSetAway">
- Imposta come assente
- </string>
- <string name="AvatarSetNotBusy">
- Imposta come non occupato
- </string>
- <string name="AvatarSetBusy">
- Imposta come occupato
- </string>
<string name="shape">
Figura corporea
</string>
@@ -1968,8 +1965,8 @@ Prova ad accedere nuovamente tra un minuto.
<string name="PanelContentsNewScript">
Nuovo script
</string>
- <string name="BusyModeResponseDefault">
- Il residente al quale hai inviato un messaggio è in modalità &apos;occupato&apos;, ovvero ha chiesto di non essere disturbato. Il tuo messaggio comparirà nel suo pannello IM, dove potrà essere letto in un secondo momento.
+ <string name="DoNotDisturbModeResponseDefault">
+ Questo residente ha attivato la modalità &apos;Non disturbare&apos; e vedrà il tuo messaggio più tardi.
</string>
<string name="MuteByName">
(In base al nome)
@@ -2082,9 +2079,6 @@ Prova ad accedere nuovamente tra un minuto.
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Contenuto
- </string>
<string name="AcquiredItems">
Oggetti acquisiti
</string>
@@ -3799,7 +3793,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
Regione generale
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Avatar visibili e chat consentita fuori di questo lotto
+ Gli avatar in questo lotto non possono essere visti o sentiti da avatar all&apos;esterno del lotto
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Gli oggetti che si muovono potrebbero non comportarsi correttamente in questa regione fino a quando non viene eseguito il rebake della regione.
@@ -3876,6 +3870,12 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="IM_unblock_only_groups_friends">
Per vedere questo messaggio, devi deselezionare &apos;Solo amici e gruppi possono chiamarmi o mandarmi IM&apos; in Preferenze/Privacy.
</string>
+ <string name="OnlineStatus">
+ Online
+ </string>
+ <string name="OfflineStatus">
+ Offline
+ </string>
<string name="answered_call">
Risposto alla chiamata
</string>
@@ -3885,6 +3885,9 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="you_joined_call">
Ti sei collegato alla chiamata in voce
</string>
+ <string name="you_auto_rejected_call-im">
+ Hai rifiutato automaticamente la chiamata voce mentre era attivata la modalità &apos;Non disturbare&apos;.
+ </string>
<string name="name_started_call">
[NAME] ha iniziato una chiamata vocale
</string>
@@ -3897,6 +3900,9 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="hang_up-im">
Chiusa la chiamata
</string>
+ <string name="conference-title">
+ Chat con più persone
+ </string>
<string name="conference-title-incoming">
Chiamata in conferenza con [AGENT_NAME]
</string>
@@ -4769,6 +4775,9 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="Command_Chat_Label">
Chat
</string>
+ <string name="Command_Conversations_Label">
+ Conversazioni
+ </string>
<string name="Command_Compass_Label">
Bussola
</string>
@@ -4844,6 +4853,9 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="Command_Chat_Tooltip">
Chatta con persone vicine usando il testo
</string>
+ <string name="Command_Conversations_Tooltip">
+ Conversa con chiunque
+ </string>
<string name="Command_Compass_Tooltip">
Bussola
</string>
@@ -4973,4 +4985,13 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="UserDictionary">
[User]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ Le conversazioni non vengono registrate. Per iniziare a registrare, seleziona &quot;Salva: Solo registro&quot; oppure &quot;Salva: Registri e trascrizioni&quot; in Preferenze &gt; Chat.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Non verranno registrate più le conversazioni. Per riprendere a registrare, seleziona &quot;Salva: Solo registro&quot; oppure &quot;Salva: Registri e trascrizioni&quot; in Preferenze &gt; Chat.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Nessuna conversazione in registro. Dopo che hai contattato qualcuno o se qualcuno ti contatta, una voce del registro verrà mostrata qui.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/it/teleport_strings.xml b/indra/newview/skins/default/xui/it/teleport_strings.xml
index bd967ebcc4..bd967ebcc4 100644..100755
--- a/indra/newview/skins/default/xui/it/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/it/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index 6d5df75645..6d5df75645 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index 3b4b5ed070..3b4b5ed070 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_activeim.xml b/indra/newview/skins/default/xui/ja/floater_activeim.xml
index 1c743e1fd2..1c743e1fd2 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/ja/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_anim_preview.xml
index 2bada303ae..2bada303ae 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_bvh_preview.xml
index f74bab3598..f74bab3598 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_auction.xml b/indra/newview/skins/default/xui/ja/floater_auction.xml
index e9aa287f2c..e9aa287f2c 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_auction.xml
+++ b/indra/newview/skins/default/xui/ja/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_autoreplace.xml b/indra/newview/skins/default/xui/ja/floater_autoreplace.xml
index 21abf59160..21abf59160 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/ja/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar.xml b/indra/newview/skins/default/xui/ja/floater_avatar.xml
index d289580506..d289580506 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
index 4bd6b4e053..4bd6b4e053 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
index 5c23b77498..5c23b77498 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_beacons.xml b/indra/newview/skins/default/xui/ja/floater_beacons.xml
index a55698e3d0..a55698e3d0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/ja/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_build_options.xml b/indra/newview/skins/default/xui/ja/floater_build_options.xml
index 6865409e7a..6865409e7a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/ja/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
index d8d0164618..d8d0164618 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_bumps.xml b/indra/newview/skins/default/xui/ja/floater_bumps.xml
index fd12a9e69a..fd12a9e69a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/ja/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
index 7e4932c78f..7e4932c78f 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
index a472f163e3..a472f163e3 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency_html.xml
index 37fd6826e5..37fd6826e5 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_land.xml b/indra/newview/skins/default/xui/ja/floater_buy_land.xml
index 34f9d38de1..34f9d38de1 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_object.xml b/indra/newview/skins/default/xui/ja/floater_buy_object.xml
index ce269df6da..ce269df6da 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml
index 982e5ce42b..982e5ce42b 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ja/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml
index 9f5df6fb85..9f5df6fb85 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_choose_group.xml b/indra/newview/skins/default/xui/ja/floater_choose_group.xml
index 7d91cb69ed..7d91cb69ed 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/ja/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_color_picker.xml b/indra/newview/skins/default/xui/ja/floater_color_picker.xml
index dc87d27a15..dc87d27a15 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/ja/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_conversation_log.xml b/indra/newview/skins/default/xui/ja/floater_conversation_log.xml
new file mode 100644
index 0000000000..98b1a59a0d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="会話ログ">
+ <panel name="buttons_panel">
+ <filter_editor label="人をフィルター" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <menu_button name="conversations_gear_btn" tool_tip="選択した住人・グループに対するアクション"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_conversation_preview.xml b/indra/newview/skins/default/xui/ja/floater_conversation_preview.xml
new file mode 100644
index 0000000000..ea0b23de48
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="会話:">
+ <floater.string name="Title">
+ 会話:[NAME]
+ </floater.string>
+ <text name="page_label" value="ページ"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_critical.xml b/indra/newview/skins/default/xui/ja/floater_critical.xml
index f69c24622a..f69c24622a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_critical.xml
+++ b/indra/newview/skins/default/xui/ja/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/ja/floater_delete_env_preset.xml
index eb39d1b336..eb39d1b336 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/ja/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_destinations.xml b/indra/newview/skins/default/xui/ja/floater_destinations.xml
index b7f6ad4d4e..b7f6ad4d4e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/ja/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_display_name.xml b/indra/newview/skins/default/xui/ja/floater_display_name.xml
index cc71b1cd9f..cc71b1cd9f 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/ja/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml
index fd601672b6..fd601672b6 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml
index 68d0c70baa..68d0c70baa 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml
index eddfbd4298..eddfbd4298 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_environment_settings.xml b/indra/newview/skins/default/xui/ja/floater_environment_settings.xml
index 0e3803119f..0e3803119f 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_event.xml b/indra/newview/skins/default/xui/ja/floater_event.xml
index ca50ba8ef8..ca50ba8ef8 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_event.xml
+++ b/indra/newview/skins/default/xui/ja/floater_event.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_fast_timers.xml b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml
index 5f538ecdb0..5f538ecdb0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_font_test.xml b/indra/newview/skins/default/xui/ja/floater_font_test.xml
index b853f395dd..b853f395dd 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/ja/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_gesture.xml b/indra/newview/skins/default/xui/ja/floater_gesture.xml
index 1ed5ad31db..1ed5ad31db 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
index 9e5d473db7..9e5d473db7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
index c8b8e918e0..c8b8e918e0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_help_browser.xml b/indra/newview/skins/default/xui/ja/floater_help_browser.xml
index 15200d7ef7..15200d7ef7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/ja/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_how_to.xml b/indra/newview/skins/default/xui/ja/floater_how_to.xml
index 4cebe27226..4cebe27226 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/ja/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_hud.xml b/indra/newview/skins/default/xui/ja/floater_hud.xml
index e3841c2cd9..e3841c2cd9 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_hud.xml
+++ b/indra/newview/skins/default/xui/ja/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_im_container.xml b/indra/newview/skins/default/xui/ja/floater_im_container.xml
index 06b65e27f0..a155efdc1e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="会話"/>
+<multi_floater name="floater_im_box" title="会話">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="オプションの表示 / 並べ替え"/>
+ <button name="add_btn" tool_tip="新しい会話を開始"/>
+ <button name="speak_btn" tool_tip="マイクを使って人と話す"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="このリストを閉じる / 開く"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="このペインを閉じる"/>
+ <text name="stub_textbox">
+ この会話は、別のウィンドウに表示されます。[secondlife:/// 戻る.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_im_session.xml b/indra/newview/skins/default/xui/ja/floater_im_session.xml
index dfa1c85ca2..a44c843df7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="宛先" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] は会話に招待されました。"/>
+ <floater.string name="multiple_participants_added" value="[NAME] は会話に招待されました。"/>
+ <floater.string name="tooltip_to_separate_window" value="この会話を別のウィンドウへ移動する"/>
+ <floater.string name="tooltip_to_main_window" value="この会話をメインウィンドウへ戻す"/>
+ <floater.string name="start_call_button_tooltip" value="会話の接続を開く"/>
+ <floater.string name="end_call_button_tooltip" value="会話の接続を閉じる"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="このペインを閉じる"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="参加者リストを閉じる"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="参加者リストを開く"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <menu_button name="gear_btn" tool_tip="選択した人に対するアクション"/>
+ <button name="add_btn" tool_tip="この会話に他の人を追加する"/>
+ <button name="voice_call_btn" tool_tip="会話の接続を開く"/>
+ <button name="close_btn" tool_tip="この会話を終了する"/>
+ <button name="expand_collapse_btn" tool_tip="このペインを閉じる / 開く"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="チャットを翻訳" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="宛先" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="メッセージパネルの表示 / 非表示"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_image_preview.xml b/indra/newview/skins/default/xui/ja/floater_image_preview.xml
index 1ffc27fd70..1ffc27fd70 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_import_collada.xml b/indra/newview/skins/default/xui/ja/floater_import_collada.xml
index 65edafb169..65edafb169 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/ja/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
index f152fcd738..308f6f9a3d 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
@@ -10,7 +10,7 @@
匿名ユーザー
</floater.string>
<floater.string name="VoiceInviteP2P">
- がコールしています。
+ からコールを受けています。
</floater.string>
<floater.string name="VoiceInviteAdHoc">
がコンファレンスチャットで、ボイスチャットに参加しました。
@@ -25,9 +25,9 @@
[CURRENT_CHAT]を退席して、このボイスチャットに参加しますか?
</floater.string>
<text name="question">
- [CURRENT_CHAT] を退席して、このボイスチャットに参加しますか?
+ コールに応答すると、現在のボイスチャットから切断されます。
</text>
- <button label="はい" label_selected="はい" name="Accept"/>
- <button label="いいえ" label_selected="いいえ" name="Reject"/>
- <button label="IM" name="Start IM"/>
+ <button label="取る" label_selected="取る" name="Accept"/>
+ <button label="無視" label_selected="無視" name="Reject"/>
+ <button label="代わりに IM を開く" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_inspect.xml b/indra/newview/skins/default/xui/ja/floater_inspect.xml
index b3825c0b7f..b3825c0b7f 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
index c01c46211e..c01c46211e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
index af96edda79..af96edda79 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_joystick.xml b/indra/newview/skins/default/xui/ja/floater_joystick.xml
index daa480ef5a..daa480ef5a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/ja/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
index e3546cd837..e3546cd837 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
index aca916f22f..aca916f22f 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
index 5a155c9f12..5a155c9f12 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
index 5773752788..5773752788 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml
index 1122203446..1122203446 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_map.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml
index c4731b73a3..c4731b73a3 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_media_settings.xml b/indra/newview/skins/default/xui/ja/floater_media_settings.xml
index 46ac1a8dfd..46ac1a8dfd 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
index f48bb94e32..f48bb94e32 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/ja/floater_merchant_outbox.xml
index c59a3dc0ab..c59a3dc0ab 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/ja/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_model_preview.xml b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
index 942cc91317..942cc91317 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_moveview.xml b/indra/newview/skins/default/xui/ja/floater_moveview.xml
index aed3b78a14..aed3b78a14 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_mute_object.xml b/indra/newview/skins/default/xui/ja/floater_mute_object.xml
index 04ffd5254d..04ffd5254d 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/ja/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_my_appearance.xml b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml
index c9a0ecefd7..c9a0ecefd7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_my_inventory.xml b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml
index d708fc3dec..d708fc3dec 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_notification.xml b/indra/newview/skins/default/xui/ja/floater_notification.xml
index 0f37b30f52..0f37b30f52 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_notification.xml
+++ b/indra/newview/skins/default/xui/ja/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_notifications_console.xml b/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
index c9d9ea7acb..c9d9ea7acb 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_object_weights.xml b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
index d727a268fb..d727a268fb 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_openobject.xml b/indra/newview/skins/default/xui/ja/floater_openobject.xml
index af02ffedda..af02ffedda 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/ja/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
index 70555e6ded..70555e6ded 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
index f1a05e0eec..f1a05e0eec 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
index ada96b5b62..ada96b5b62 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
index ec107f3e6b..9733c61918 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
表示:
</text>
- <check_box label="世界" name="show_world"/>
+ <check_box label="テスト" name="show_world"/>
<check_box label="可動物のみ" name="show_world_movables_only"/>
<check_box label="ナビメッシュ" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
index 4441d5e738..4441d5e738 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_pay.xml b/indra/newview/skins/default/xui/ja/floater_pay.xml
index 17965fb60a..17965fb60a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_pay.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_pay_object.xml b/indra/newview/skins/default/xui/ja/floater_pay_object.xml
index 637ad496ef..637ad496ef 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_people.xml b/indra/newview/skins/default/xui/ja/floater_people.xml
index b180658ab7..b180658ab7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_people.xml
+++ b/indra/newview/skins/default/xui/ja/floater_people.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
index 98cda25a81..98cda25a81 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_picks.xml b/indra/newview/skins/default/xui/ja/floater_picks.xml
index 359585eb86..359585eb86 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_picks.xml
+++ b/indra/newview/skins/default/xui/ja/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_places.xml b/indra/newview/skins/default/xui/ja/floater_places.xml
index 0d167444db..0d167444db 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_places.xml
+++ b/indra/newview/skins/default/xui/ja/floater_places.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_post_process.xml b/indra/newview/skins/default/xui/ja/floater_post_process.xml
index 7c4d9c78ee..7c4d9c78ee 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/ja/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml
index d48a8241ec..d48a8241ec 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/ja/floater_preferences_proxy.xml
index 4638fd002e..4638fd002e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml
index a3042f66ea..a3042f66ea 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
index 59ce36b022..59ce36b022 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
index ae8ae9f7b5..ae8ae9f7b5 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml
index 5c0f05cec6..5c0f05cec6 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
index 4617fd1d92..4617fd1d92 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_price_for_listing.xml b/indra/newview/skins/default/xui/ja/floater_price_for_listing.xml
index 10a46247a7..10a46247a7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/ja/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_publish_classified.xml b/indra/newview/skins/default/xui/ja/floater_publish_classified.xml
index f33406da51..f33406da51 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/ja/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_region_debug_console.xml b/indra/newview/skins/default/xui/ja/floater_region_debug_console.xml
index 4edb4972e4..4edb4972e4 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/ja/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_region_info.xml b/indra/newview/skins/default/xui/ja/floater_region_info.xml
index d08c51c61e..d08c51c61e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/ja/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index dc34441535..dc34441535 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_debug.xml b/indra/newview/skins/default/xui/ja/floater_script_debug.xml
index 0ac7a988e0..0ac7a988e0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/ja/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_limits.xml b/indra/newview/skins/default/xui/ja/floater_script_limits.xml
index 7ccd858af7..7ccd858af7 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_preview.xml b/indra/newview/skins/default/xui/ja/floater_script_preview.xml
index 656357aa17..656357aa17 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_queue.xml b/indra/newview/skins/default/xui/ja/floater_script_queue.xml
index 97e79fb483..97e79fb483 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_script_search.xml b/indra/newview/skins/default/xui/ja/floater_script_search.xml
index bc4f48c995..bc4f48c995 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/ja/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_search.xml b/indra/newview/skins/default/xui/ja/floater_search.xml
index 0723be0068..0723be0068 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_search.xml
+++ b/indra/newview/skins/default/xui/ja/floater_search.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_select_key.xml b/indra/newview/skins/default/xui/ja/floater_select_key.xml
index d41be86873..d41be86873 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/ja/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index aa368eef11..aa368eef11 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_settings_debug.xml b/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
index cb7950bf53..cb7950bf53 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index f145a2e8b8..f145a2e8b8 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_sound_devices.xml b/indra/newview/skins/default/xui/ja/floater_sound_devices.xml
index 28d2388bed..28d2388bed 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
index 7d83309c46..7d83309c46 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_spellcheck.xml b/indra/newview/skins/default/xui/ja/floater_spellcheck.xml
index 31fbef9bcf..31fbef9bcf 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/ja/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/ja/floater_spellcheck_import.xml
index febe153d25..febe153d25 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/ja/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_stats.xml b/indra/newview/skins/default/xui/ja/floater_stats.xml
index 1922e4841a..1922e4841a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ja/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_sys_well.xml b/indra/newview/skins/default/xui/ja/floater_sys_well.xml
index 45e97bdf5d..45e97bdf5d 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml
index 7318083771..7318083771 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/ja/floater_test_layout_stacks.xml
index 31b5bbd3bf..31b5bbd3bf 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/ja/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/ja/floater_test_text_vertical_aligment.xml
index 40fd8e9f93..40fd8e9f93 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/ja/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
index 3773812bb6..37233d3e68 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
@@ -20,7 +20,7 @@
<button label="ブランク" label_selected="ブランク" name="Blank"/>
<button label="なし" label_selected="なし" name="None"/>
<button label="" label_selected="" name="Pipette"/>
- <check_box initial_value="true" label="ライブプレビュー" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="今すぐ適用" name="apply_immediate_check"/>
<text name="preview_disabled" value="プレビュー無効"/>
<filter_editor label="テクスチャをフィルター" name="inventory search editor"/>
<check_box initial_value="false" label="フォルダを表示" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
index adc35137b5..adc35137b5 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index 4bd6439ad2..4bd6439ad2 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index c44f409d4e..c44f409d4e 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index ae064724c0..ae064724c0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_toybox.xml b/indra/newview/skins/default/xui/ja/floater_toybox.xml
index 682352ec82..682352ec82 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/ja/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_translation_settings.xml b/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
index 27143086ac..27143086ac 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_url_entry.xml b/indra/newview/skins/default/xui/ja/floater_url_entry.xml
index 8e09e4748a..8e09e4748a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/ja/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/ja/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..44e96c35ad
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="ボイスチャットの音量">
+ <slider label="ボイスチャット" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
index f7d3fd11e0..f7d3fd11e0 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_voice_effect.xml b/indra/newview/skins/default/xui/ja/floater_voice_effect.xml
index ee675e143b..b38ea9331a 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/ja/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="場所" name="voice_effects" title="ボイスモーフィング">
+<floater label="場所" name="voice_effects" title="ボイスモーフィングのプレビュー">
<string name="no_voice_effect">
(ボイスモーフィングなし)
</string>
diff --git a/indra/newview/skins/default/xui/ja/floater_voice_volume.xml b/indra/newview/skins/default/xui/ja/floater_voice_volume.xml
new file mode 100644
index 0000000000..a380615d5a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="ボイス音量">
+ <slider name="volume_slider" tool_tip="ボイス音量" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_web_content.xml b/indra/newview/skins/default/xui/ja/floater_web_content.xml
index 48fe8aee78..48fe8aee78 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/ja/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
index 34aba9d485..34aba9d485 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_window_size.xml b/indra/newview/skins/default/xui/ja/floater_window_size.xml
index 416813d6cc..416813d6cc 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/ja/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml
index cc07596adc..cc07596adc 100644..100755
--- a/indra/newview/skins/default/xui/ja/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/ja/inspect_avatar.xml b/indra/newview/skins/default/xui/ja/inspect_avatar.xml
index 42b67cd333..42b67cd333 100644..100755
--- a/indra/newview/skins/default/xui/ja/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/ja/inspect_group.xml b/indra/newview/skins/default/xui/ja/inspect_group.xml
index be628befdf..be628befdf 100644..100755
--- a/indra/newview/skins/default/xui/ja/inspect_group.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/ja/inspect_object.xml b/indra/newview/skins/default/xui/ja/inspect_object.xml
index e6999ac9b1..e6999ac9b1 100644..100755
--- a/indra/newview/skins/default/xui/ja/inspect_object.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/ja/inspect_remote_object.xml b/indra/newview/skins/default/xui/ja/inspect_remote_object.xml
index 483d3fec52..483d3fec52 100644..100755
--- a/indra/newview/skins/default/xui/ja/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/ja/language_settings.xml b/indra/newview/skins/default/xui/ja/language_settings.xml
index 91e8f4be7c..91e8f4be7c 100644..100755
--- a/indra/newview/skins/default/xui/ja/language_settings.xml
+++ b/indra/newview/skins/default/xui/ja/language_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/ja/menu_add_wearable_gear.xml
index 982a03c6a8..982a03c6a8 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
index 5adf0b3745..5adf0b3745 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
index 6036e1075e..6036e1075e 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
index b04f602134..b04f602134 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
index 54dd96f5ef..54dd96f5ef 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
index 4709522665..4709522665 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_cof_attachment.xml b/indra/newview/skins/default/xui/ja/menu_cof_attachment.xml
index e786d02e40..e786d02e40 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/ja/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_cof_body_part.xml b/indra/newview/skins/default/xui/ja/menu_cof_body_part.xml
index eb5faa2545..eb5faa2545 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/ja/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml b/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml
index d984342896..d984342896 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_cof_gear.xml b/indra/newview/skins/default/xui/ja/menu_cof_gear.xml
index a071abbd2e..07bcefd9b3 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="衣類" name="COF.Gear.New_Clothes"/>
- <menu label="新しい身体部位" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="新しい身体部位" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation.xml b/indra/newview/skins/default/xui/ja/menu_conversation.xml
new file mode 100644
index 0000000000..c7df20d252
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="会話を終える" name="close_conversation"/>
+ <menu_item_call label="ボイスチャットを始める" name="open_voice_conversation"/>
+ <menu_item_call label="ボイスチャットを切断する" name="disconnect_from_voice"/>
+ <menu_item_call label="プロフィールを表示" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="テレポートを送る" name="offer_teleport"/>
+ <menu_item_call label="ボイスコール" name="voice_call"/>
+ <menu_item_call label="チャットの履歴..." name="chat_history"/>
+ <menu_item_call label="フレンドを追加" name="add_friend"/>
+ <menu_item_call label="フレンドを削除" name="remove_friend"/>
+ <menu_item_call label="フレンドを削除" name="remove_friends"/>
+ <menu_item_call label="グループに招待..." name="invite_to_group"/>
+ <menu_item_call label="ズームイン" name="zoom_in"/>
+ <menu_item_call label="地図" name="map"/>
+ <menu_item_call label="共有" name="share"/>
+ <menu_item_call label="支払い" name="pay"/>
+ <menu_item_check label="ボイスをブロック" name="block_unblock"/>
+ <menu_item_check label="文字をブロックする" name="MuteText"/>
+ <menu_item_call label="グループ情報" name="group_profile"/>
+ <menu_item_call label="グループをアクティブにする" name="activate_group"/>
+ <menu_item_call label="グループから脱退する" name="leave_group"/>
+ <context_menu label="モデレーターのオプション" name="Moderator Options">
+ <menu_item_check label="文字チャットを許可" name="AllowTextChat"/>
+ <menu_item_call label="この参加者をミュートする" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="この参加者のミュートを解除する" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="全員の音声をミュートする" name="ModerateVoiceMute"/>
+ <menu_item_call label="全員のミュートを解除する" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..c9d4f947a4
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM..." name="IM"/>
+ <menu_item_call label="ボイスコール..." name="Call"/>
+ <menu_item_call label="チャットの履歴を開く..." name="Chat history"/>
+ <menu_item_call label="プロフィールを表示" name="View Profile"/>
+ <menu_item_call label="テレポートを送る" name="teleport"/>
+ <menu_item_call label="フレンド登録" name="add_friend"/>
+ <menu_item_call label="フレンドを削除" name="remove_friend"/>
+ <menu_item_call label="グループに招待..." name="Invite"/>
+ <menu_item_call label="地図" name="Map"/>
+ <menu_item_call label="共有" name="Share"/>
+ <menu_item_call label="支払い" name="Pay"/>
+ <menu_item_check label="ブロック・ブロック解除" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..bd4812603f
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="名前で並べ替え" name="sort_by_name"/>
+ <menu_item_check label="日付で並べ替え" name="sort_by_date"/>
+ <menu_item_check label="上位のフレンドを並べ替え" name="sort_by_friends"/>
+ <menu_item_call label="近くのチャットの履歴を表示..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_edit.xml b/indra/newview/skins/default/xui/ja/menu_edit.xml
index c2ef0179b2..c2ef0179b2 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_edit.xml
+++ b/indra/newview/skins/default/xui/ja/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_favorites.xml b/indra/newview/skins/default/xui/ja/menu_favorites.xml
index 4708b1446c..4708b1446c 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/ja/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml b/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
index abf490a247..abf490a247 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_group_plus.xml b/indra/newview/skins/default/xui/ja/menu_group_plus.xml
index 3787f7d645..3787f7d645 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/ja/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
index 2e633ae1b2..2e633ae1b2 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_im_conversation.xml b/indra/newview/skins/default/xui/ja/menu_im_conversation.xml
new file mode 100644
index 0000000000..55cd6610f7
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="プロフィールを表示" name="View Profile"/>
+ <menu_item_call label="フレンド登録" name="Add Friend"/>
+ <menu_item_call label="フレンドを削除" name="remove_friend"/>
+ <menu_item_call label="テレポートを送る" name="offer_teleport"/>
+ <menu_item_call label="グループに招待..." name="invite_to_group"/>
+ <menu_item_call label="チャットの履歴..." name="chat_history"/>
+ <menu_item_call label="ズームイン" name="zoom_in"/>
+ <menu_item_call label="地図" name="map"/>
+ <menu_item_call label="共有" name="Share"/>
+ <menu_item_call label="支払い" name="Pay"/>
+ <menu_item_check label="ボイスをブロック" name="Block/Unblock"/>
+ <menu_item_check label="文字をブロックする" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/ja/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..222a741718
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="簡略表示" name="compact_view"/>
+ <menu_item_check label="詳細表示" name="expanded_view"/>
+ <menu_item_check label="時間を表示" name="IMShowTime"/>
+ <menu_item_check label="1対1の会話で名前を表示" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml
index 8cd6fa4a27..8cd6fa4a27 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_group.xml
index 5bcb96f083..5bcb96f083 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
index 5453f998fa..5453f998fa 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
index 9d0d0f10a6..9d0d0f10a6 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_object_gear.xml
index 5a0519ba19..5a0519ba19 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
index e3e206f3aa..e3e206f3aa 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml
index 9a4a8138f5..9a4a8138f5 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 106b09453a..106b09453a 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
index ae5ddbb78f..ae5ddbb78f 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
index f38dbc71a8..f38dbc71a8 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_land.xml b/indra/newview/skins/default/xui/ja/menu_land.xml
index 89c122f14f..89c122f14f 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_land.xml
+++ b/indra/newview/skins/default/xui/ja/menu_land.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_landmark.xml b/indra/newview/skins/default/xui/ja/menu_landmark.xml
index c134422955..c134422955 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/ja/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index ab6d9e3546..ab6d9e3546 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_media_ctrl.xml b/indra/newview/skins/default/xui/ja/menu_media_ctrl.xml
index faae4ef717..faae4ef717 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/ja/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_mini_map.xml b/indra/newview/skins/default/xui/ja/menu_mini_map.xml
index 2e733ee24b..2e733ee24b 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/ja/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/ja/menu_model_import_gear_default.xml
index 43f86e84bf..43f86e84bf 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_navbar.xml b/indra/newview/skins/default/xui/ja/menu_navbar.xml
index 9ae2e58198..9ae2e58198 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/ja/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_nearby_chat.xml b/indra/newview/skins/default/xui/ja/menu_nearby_chat.xml
index c2e4a27686..c2e4a27686 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/ja/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml
index 913bae8958..913bae8958 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml
index 01436ad12b..01436ad12b 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_object.xml
+++ b/indra/newview/skins/default/xui/ja/menu_object.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_object_icon.xml b/indra/newview/skins/default/xui/ja/menu_object_icon.xml
index 8c4f328661..6448e9244e 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/ja/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="オブジェクトのプロフィール..." name="Object Profile"/>
<menu_item_call label="ブロック..." name="Block"/>
+ <menu_item_call label="地図に表示" name="show_on_map"/>
+ <menu_item_call label="オブジェクトの場所にテレポート" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml b/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml
index 2bcbe1915b..1969ae2a10 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="髪" name="New Hair"/>
<menu_item_call label="目" name="New Eyes"/>
</menu>
+ <menu_item_call label="フォルダをすべて開く" name="expand"/>
+ <menu_item_call label="フォルダをすべて閉じる" name="collapse"/>
<menu_item_call label="アウトフィットの名前を変更する" name="rename"/>
<menu_item_call label="アウトフィットを削除する" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml b/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml
index 9491c22f31..9491c22f31 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_participant_list.xml b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
index 64d8ded722..64d8ded722 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_participant_view.xml b/indra/newview/skins/default/xui/ja/menu_participant_view.xml
new file mode 100644
index 0000000000..5816351d9d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="会話をタイプで並べ替え" name="sort_sessions_by_type"/>
+ <menu_item_check label="会話を名前で並べ替え" name="sort_sessions_by_name"/>
+ <menu_item_check label="会話を最新アクティビティで並べ替え" name="sort_sessions_by_recent"/>
+ <menu_item_check label="参加者を名前で並べ替え" name="sort_participants_by_name"/>
+ <menu_item_check label="参加者を最新アクティビティで並べ替え" name="sort_participants_by_recent"/>
+ <menu_item_call label="チャットの環境設定..." name="chat_preferences"/>
+ <menu_item_call label="プライバシーの環境設定..." name="privacy_preferences"/>
+ <menu_item_check label="会話ログ..." name="Conversation"/>
+ <menu_item_check label="近くのチャットを翻訳" name="Translate_chat"/>
+ <menu_item_check label="翻訳の設定..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/ja/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..b5c9d11e02
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="ブロック解除" name="unblock"/>
+ <menu_item_call label="プロフィール..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/ja/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..3e74b2ddff
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="名前で住人をブロック..." name="block_resident_by_name"/>
+ <menu_item_call label="名前でオブジェクトをブロック..." name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/ja/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..4b86a353f4
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="名前で並べ替え" name="sort_by_name"/>
+ <menu_item_check label="タイプによる並べ替え" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_friends_view.xml b/indra/newview/skins/default/xui/ja/menu_people_friends_view.xml
new file mode 100644
index 0000000000..b95d11fdbd
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="名前で並べ替え" name="sort_name"/>
+ <menu_item_check label="オンライン状況で並べ替え" name="sort_status"/>
+ <menu_item_check label="人のアイコン表示" name="view_icons"/>
+ <menu_item_check label="与えられた権限を表示" name="view_permissions"/>
+ <menu_item_check label="会話ログを表示..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml
index 76340e4d76..76340e4d76 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups.xml b/indra/newview/skins/default/xui/ja/menu_people_groups.xml
index 842d79dc4b..2c0c85ba28 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="情報を表示" name="View Info"/>
<menu_item_call label="チャット" name="Chat"/>
- <menu_item_call label="コール" name="Call"/>
+ <menu_item_call label="ボイスコール" name="Call"/>
<menu_item_call label="アクティブ" name="Activate"/>
<menu_item_call label="脱退" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups_view.xml b/indra/newview/skins/default/xui/ja/menu_people_groups_view.xml
new file mode 100644
index 0000000000..4a9e402fa4
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="グループアイコンを表示" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml
index bfc7d15017..bfc7d15017 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
index 8d84b0e521..972ab767bf 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="プロフィールの表示" name="View Profile"/>
- <menu_item_call label="フレンド登録" name="Add Friend"/>
- <menu_item_call label="フレンドを削除" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="コール" name="Call"/>
- <menu_item_call label="地図" name="Map"/>
- <menu_item_call label="共有" name="Share"/>
- <menu_item_call label="支払う" name="Pay"/>
- <menu_item_check label="ブロック・ブロック解除" name="Block/Unblock"/>
- <menu_item_call label="テレポートを送る" name="teleport"/>
+ <menu_item_call label="プロフィールを表示" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="テレポートを送る" name="offer_teleport"/>
+ <menu_item_call label="ボイスコール" name="voice_call"/>
+ <menu_item_call label="チャットの履歴を表示..." name="chat_history"/>
+ <menu_item_call label="フレンド登録" name="add_friend"/>
+ <menu_item_call label="フレンドを削除" name="remove_friend"/>
+ <menu_item_call label="グループに招待..." name="invite_to_group"/>
+ <menu_item_call label="ズームイン" name="zoom_in"/>
+ <menu_item_call label="地図" name="map"/>
+ <menu_item_call label="共有" name="share"/>
+ <menu_item_call label="支払い" name="pay"/>
+ <menu_item_check label="ブロック・ブロック解除" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
index 3f20e5d3ab..fe85e278cf 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="フレンド登録" name="Add Friends"/>
- <menu_item_call label="フレンドを削除" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="コール" name="Call"/>
- <menu_item_call label="共有" name="Share"/>
- <menu_item_call label="支払う" name="Pay"/>
- <menu_item_call label="テレポートを送る" name="teleport"/>
+ <menu_item_call label="フレンド登録" name="add_friends"/>
+ <menu_item_call label="フレンドを削除" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="コール" name="call"/>
+ <menu_item_call label="共有" name="share"/>
+ <menu_item_call label="支払い" name="pay"/>
+ <menu_item_call label="テレポートを送る" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..b7cccc4396
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="最近の発言者で並べ替え" name="sort_by_recent_speakers"/>
+ <menu_item_check label="名前で並べ替え" name="sort_name"/>
+ <menu_item_check label="距離で並べ替え" name="sort_distance"/>
+ <menu_item_check label="人のアイコン表示" name="view_icons"/>
+ <menu_item_check label="地図を表示" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml
index 44c5438509..44c5438509 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_people_recent_view.xml b/indra/newview/skins/default/xui/ja/menu_people_recent_view.xml
new file mode 100644
index 0000000000..feaeba4398
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="新しい順に並べ替え" name="sort_most"/>
+ <menu_item_check label="名前で並べ替え" name="sort_name"/>
+ <menu_item_check label="人のアイコン表示" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml
index b4f177a068..b4f177a068 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_picks.xml b/indra/newview/skins/default/xui/ja/menu_picks.xml
index 011d3d2526..011d3d2526 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_picks.xml
+++ b/indra/newview/skins/default/xui/ja/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_picks_plus.xml b/indra/newview/skins/default/xui/ja/menu_picks_plus.xml
index 84bf90fea0..84bf90fea0 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/ja/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_place.xml b/indra/newview/skins/default/xui/ja/menu_place.xml
index a9f05e126d..a9f05e126d 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_place.xml
+++ b/indra/newview/skins/default/xui/ja/menu_place.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_place_add_button.xml b/indra/newview/skins/default/xui/ja/menu_place_add_button.xml
index d5ce88b055..d5ce88b055 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/ja/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/ja/menu_places_gear_folder.xml
index c455204722..c455204722 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/ja/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/ja/menu_places_gear_landmark.xml
index 579f2c2cbd..579f2c2cbd 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/ja/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
index 9d3a5dda1c..9d3a5dda1c 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_save_outfit.xml b/indra/newview/skins/default/xui/ja/menu_save_outfit.xml
index 6513d9264a..6513d9264a 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/ja/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml b/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml
index a89dd0bcbe..a89dd0bcbe 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_slurl.xml b/indra/newview/skins/default/xui/ja/menu_slurl.xml
index 61ba3085d9..61ba3085d9 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/ja/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/ja/menu_teleport_history_gear.xml
index 901eab9166..901eab9166 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
index 66bc32214f..66bc32214f 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/ja/menu_teleport_history_tab.xml
index 4dd44d2ec8..4dd44d2ec8 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/ja/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_text_editor.xml b/indra/newview/skins/default/xui/ja/menu_text_editor.xml
index eda973c888..eda973c888 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/ja/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_toolbars.xml b/indra/newview/skins/default/xui/ja/menu_toolbars.xml
index d5363a5131..d5363a5131 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/ja/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_topinfobar.xml b/indra/newview/skins/default/xui/ja/menu_topinfobar.xml
index 1a67a2a8f7..1a67a2a8f7 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/ja/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_agent.xml b/indra/newview/skins/default/xui/ja/menu_url_agent.xml
index 92d118a5ae..72722db7cc 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="住人のプロフィールを表示" name="show_agent"/>
+ <menu_item_call label="プロフィールを表示" name="show_agent"/>
+ <menu_item_call label="IM を送信..." name="send_im"/>
+ <menu_item_call label="フレンドを追加..." name="add_friend"/>
<menu_item_call label="名前をクリップボードにコピー" name="url_copy_label"/>
<menu_item_call label="SLurl をクリップボードにコピー" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_url_group.xml b/indra/newview/skins/default/xui/ja/menu_url_group.xml
index 1dd3d79438..1dd3d79438 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_http.xml b/indra/newview/skins/default/xui/ja/menu_url_http.xml
index c3da8a8686..c3da8a8686 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_inventory.xml b/indra/newview/skins/default/xui/ja/menu_url_inventory.xml
index 147ab44a1b..147ab44a1b 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_map.xml b/indra/newview/skins/default/xui/ja/menu_url_map.xml
index 8d41e1a571..8d41e1a571 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_objectim.xml b/indra/newview/skins/default/xui/ja/menu_url_objectim.xml
index d6a048dcfc..9e340e3239 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="オブジェクトの情報を表示" name="show_object"/>
+ <menu_item_call label="オブジェクトのプロフィール..." name="show_object"/>
<menu_item_call label="地図に表示" name="show_on_map"/>
<menu_item_call label="オブジェクトの場所にテレポート" name="teleport_to_object"/>
<menu_item_call label="オブジェクト名をクリップボードにコピー" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_url_parcel.xml b/indra/newview/skins/default/xui/ja/menu_url_parcel.xml
index 8d264059d3..8d264059d3 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_slapp.xml b/indra/newview/skins/default/xui/ja/menu_url_slapp.xml
index a516c5a075..a516c5a075 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_slurl.xml b/indra/newview/skins/default/xui/ja/menu_url_slurl.xml
index 2c857ec915..2c857ec915 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_url_teleport.xml b/indra/newview/skins/default/xui/ja/menu_url_teleport.xml
index c3507a9a33..c3507a9a33 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index e60e6781c6..6f650242b4 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="私のアニメーションを停止する" name="Stop Animating My Avatar"/>
<menu_item_call label="歩行/走行/飛行..." name="Walk / run / fly"/>
</menu>
- <menu label="ログイン" name="Status">
- <menu_item_call label="一時退席中" name="Set Away"/>
- <menu_item_call label="取り込み中" name="Set Busy"/>
- </menu>
+ <menu label="ログイン" name="Status"/>
<menu_item_call label="L$ の購入..." name="Buy and Sell L$"/>
<menu_item_call label="マーチャントアウトボックス..." name="MerchantOutbox"/>
<menu_item_call label="マイアカウント..." name="Manage My Account">
@@ -32,14 +29,18 @@
<menu_item_call label="[APP_NAME] を終了" name="Quit"/>
</menu>
<menu label="コミュニケーション" name="Communicate">
- <menu_item_check label="チャット..." name="Nearby Chat"/>
+ <menu_item_check label="会話..." name="Conversations"/>
+ <menu_item_check label="近くのチャット..." name="Nearby Chat"/>
<menu_item_check label="話す" name="Speak"/>
- <menu_item_check label="ボイス設定..." name="Nearby Voice"/>
- <menu_item_check label="ボイスモーフィング..." name="ShowVoice"/>
+ <menu label="ボイスモーフィング" name="VoiceMorphing">
+ <menu_item_check label="ボイスモーフィングなし" name="NoVoiceMorphing"/>
+ <menu_item_check label="プレビュー..." name="Preview"/>
+ <menu_item_call label="申し込む..." name="Subscribe"/>
+ </menu>
<menu_item_check label="ジェスチャー..." name="Gestures"/>
- <menu_item_call label="フレンド" name="My Friends"/>
- <menu_item_call label="グループ" name="My Groups"/>
- <menu_item_call label="近くにいる人" name="Active Speakers"/>
+ <menu_item_check label="フレンド" name="My Friends"/>
+ <menu_item_check label="グループ" name="My Groups"/>
+ <menu_item_check label="近くにいる人" name="Active Speakers"/>
<menu_item_call label="リストをブロック" name="Block List"/>
</menu>
<menu label="世界" name="World">
@@ -115,7 +116,6 @@
<menu_item_call label="買う" name="Menu Object Buy"/>
<menu_item_call label="取る" name="Menu Object Take"/>
<menu_item_call label="コピーを取る" name="Take Copy"/>
- <menu_item_call label="マイインベントリに保存" name="Save Object Back to My Inventory"/>
<menu_item_call label="オブジェクトの中身に保存" name="Save Object Back to Object Contents"/>
<menu_item_call label="オブジェクトを返却する" name="Return Object back to Owner"/>
</menu>
@@ -130,6 +130,7 @@
<menu_item_call label="リンクセット..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="キャラクター..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="表示/テスト..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="地域の再構築" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="オプション" name="Options">
<menu_item_check label="権限の詳細を表示する" name="DebugPermissions"/>
@@ -159,6 +160,13 @@
<menu label="ヘルプ" name="Help">
<menu_item_call label="ハウツー..." name="How To"/>
<menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
+ <menu_item_call label="ユーザーガイド" name="User’s guide"/>
+ <menu_item_call label="ナレッジベース" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="コミュニティフォーラム" name="Community Forums"/>
+ <menu_item_call label="日本語サポートページ" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] ニュース" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] ブログ" name="Second Life Blogs"/>
<menu_item_call label="嫌がらせを報告する" name="Report Abuse"/>
<menu_item_call label="バグを報告する" name="Report Bug"/>
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
@@ -385,9 +393,14 @@
<menu_item_call label="女性アバターのテスト" name="Test Female"/>
<menu_item_check label="選択アバター許可" name="Allow Select Avatar"/>
</menu>
+ <menu label="アニメーションのスピード" name="Animation Speed">
+ <menu_item_call label="すべてのアニメーションのスピードを 10% アップ" name="All Animations 10 Faster"/>
+ <menu_item_call label="すべてのアニメーションのスピードを 10% ダウン" name="All Animations 10 Slower"/>
+ <menu_item_call label="すべてのアニメーションのスピードをリセット" name="Reset All Animation Speed"/>
+ <menu_item_check label="アニメーションをスローモーション" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="パラメータを強制的にデフォルトにする" name="Force Params to Default"/>
<menu_item_check label="アニメーション情報" name="Animation Info"/>
- <menu_item_check label="スローモーションのアニメーション" name="Slow Motion Animations"/>
<menu_item_check label="見ているものを表示する" name="Show Look At"/>
<menu_item_check label="クリックした場所を表示する" name="Show Point At"/>
<menu_item_check label="結合部のアップデートのデバッグ" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
index c402fa0b6d..c402fa0b6d 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml b/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml
index 5334042dc9..5334042dc9 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml b/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml
index 9effed1f42..9effed1f42 100644..100755
--- a/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml
index 54663a0367..54663a0367 100644..100755
--- a/indra/newview/skins/default/xui/ja/mime_types.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types.xml
diff --git a/indra/newview/skins/default/xui/ja/mime_types_linux.xml b/indra/newview/skins/default/xui/ja/mime_types_linux.xml
index 0ec1030113..0ec1030113 100644..100755
--- a/indra/newview/skins/default/xui/ja/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/ja/mime_types_mac.xml b/indra/newview/skins/default/xui/ja/mime_types_mac.xml
index 0ec1030113..0ec1030113 100644..100755
--- a/indra/newview/skins/default/xui/ja/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index d5cff18a24..356506f191 100644..100755
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -538,6 +538,24 @@ L$ が不足しているのでこのグループに参加することができ
</url>
<usetemplate ignoretext="使用しているグラフィックドライバが古い場合" name="okcancelignore" notext="いいえ" yestext="はい"/>
</notification>
+ <notification name="AMDOldDriver">
+ お使いのグラフィックチップには最新のドライバが存在するようです。グラフィックドライバを更新すると、パフォーマンスが大幅に改善されます。
+
+[_URL] へアクセスして、ドライバーを更新しますか。
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="自分のグラフィックドライバが旧くなりました。" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ お使いのグラフィックチップには最新のドライバが存在するようです。グラフィックドライバを更新すると、パフォーマンスが大幅に改善されます。
+
+[_URL] へアクセスして、ドライバーを更新しますか。
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=en-us
+ </url>
+ <usetemplate ignoretext="自分のグラフィックドライバが旧くなりました。" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
<notification name="UnknownGPU">
お使いのシステムには、[APP_NAME] が認識できないグラフィックカードが搭載されています。
[APP_NAME] でまだテストされていない最新ハードウェアのためだと考えられます。 問題ないとは思いますが、グラフィックの設定を調整する必要があるかもしれません。
@@ -1582,10 +1600,13 @@ http://secondlife.com/download から最新バージョンをダウンロード
現在フレンドシップを送れません。数分後にもう一度お試しください。
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- 取り込み中モードになりました。
-チャットとインスタントメッセージは表示されません。 受信するインスタントメッセージには取り込み中返答メッセージが表示されます。 テレポートのオファーは受け取り拒否となります。 アイテムのオファーはすべてごみ箱に入ります。
- <usetemplate ignoretext="ログイン状態を取り込み中モードに変更するとき" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ 「通知を受けない」がオンになります。着信通信はあなたには通知されません。
+
+- 他の住民は「通知を受けない」の応答(「設定」&gt;「一般」で設定)を受け取ることになります。
+- テレポートのオファーはすべて受け取り拒否となります。
+- ボイスコールは拒否されます。
+ <usetemplate ignoretext="マイ ログイン状態を「通知を受けない」モードに変更しました。" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
加入できるグループの最大限に達しました。 このグループに加入するために他のグループを脱退するか、この申し入れを断ってください。
@@ -2076,6 +2097,10 @@ L$ [AMOUNT] で、このクラシファイド広告を今すぐ公開します
[http://jp.secondlife.com/account/ マイアカウント] ページに移動してアカウント履歴を確認しますか?
<usetemplate ignoretext="ブラウザを起動してアカウント履歴を見るとき" name="okcancelignore" notext="取り消し" yestext="ページに移動"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ 既存の会話に人を加えると、新しい会話が作成されます。参加者全員に新しい会話についての通知が配信されます。
+ <usetemplate ignoretext="チャットの参加者の追加を確認してください" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
<notification name="ConfirmQuit">
終了しようとしています。続けますか?
<usetemplate ignoretext="終了時の確認" name="okcancelignore" notext="終了しない" yestext="終了"/>
@@ -2153,14 +2178,14 @@ Linden Lab
<button ignore="交換しない" name="No" text="キャンセル"/>
</form>
</notification>
- <notification label="取り込み中の警告" name="BusyModePay">
- 現在、「取り込み中」モードのため、支払いと引き換えにアイテムを受け取ることができません。
+ <notification label="「通知を受けない」モードの警告" name="DoNotDisturbModePay">
+ 「通知を受けない」をオンにします。この支払との交換で提供されるアイテムが受信されなくなります。
-この取引を行うために「取り込み中」の設定を解除しますか?
+このトランザクションを完了するために、「通知を受けない」をオフにしてもよろしいですか。
<form name="form">
- <ignore name="ignore" save_option="true" text="取り込み中モード時に支払をするとき"/>
- <button ignore="常に「取り込み中」の設定を解除" name="Yes" text="OK"/>
- <button ignore="常に「取り込み中」の設定を継続" name="No" text="キャンセル"/>
+ <ignore name="ignore" text="「通知を受けない」モード時に、人や物を支払う予定です。"/>
+ <button ignore="「通知を受けない」モードを維持しない" name="Yes" text="OK"/>
+ <button ignore="「通知を受けない」モードを維持する" name="No" text="取り消し"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2296,11 +2321,8 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
<notification name="GroupNotice">
件名: [SUBJECT]、メッセージ: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; はオンラインです
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; はオフラインです
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; は [STATUS] です
</notification>
<notification name="AddSelfFriend">
残念ながら自分自身をフレンド登録することはできません。
@@ -2530,13 +2552,6 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
<notification name="DynamicPathfindingDisabled">
この地域(リージョン)でダイナミックパスファインディングが有効になっていません。パスファインディング LSL 呼び出しを使用するスクリプト化されたオブジェクトがこの地域(リージョン)では動作できません。
</notification>
- <notification name="PathfindingRebakeNavmesh">
- この地域(リージョン)のオブジェクトを変更すると、他の移動オブジェクトが正しく動作しなくなる恐れがあります。移動オブジェクトを正しく動作させるには、「地域の再構築」ボタンをクリックします。詳しい情報は見るには「ヘルプ」を選択してください。
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="ヘルプ" ignoretext="この地域(リージョン)のオブジェクトを変更すると、他の移動オブジェクトが正しく動作しなくなる恐れがあります。" name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
エラーが発生しました。ネットワークまたはサーバーに問題があるか、制作権がない可能性があります。この問題は、一度ログアウトしてから、ログインし直すと解決される場合があります。
<usetemplate name="okbutton" yestext="OK"/>
@@ -2797,9 +2812,9 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
</form>
</notification>
<notification name="ScriptQuestionCaution">
- 警告:オブジェクト &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; はあなたのリンデンドルアカウントへのトータルアクセスを希望しています。アクセスを許可すると、このオブジェクトはいつでもあなたのアカウントから資金を削除したり、今後警告を表示することなく継続的にアカウントを完全に空にできるようになります。
+ 警告:オブジェクト &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; は、あなたのリンデンドルアカウントへのフルアクセスを要求しています。アクセスを許可すると、このオブジェクトは、特に警告を発せずに単発で、随時アカウントから資金を削除するか、アカウントを完全に空にします。
-このようなリクエストが正当であることは稀です。このオブジェクトがあなたのアカウントにアクセスしたい理由を完全に理解している場合を除き、アクセスの許可は避けてください。
+そのオブジェクトがアカウントへのアクセスを要求する理由がよくわからない場合は、アクセスを許可しないでください。
<form name="form">
<button name="Grant" text="トータルアクセスを許可"/>
<button name="Deny" text="拒否"/>
@@ -3378,4 +3393,627 @@ M キーを押して変更します。
[NUM_ITEMS] 個のアイテムを削除中です。続けますか?
<usetemplate ignoretext="複数のアイテムを削除しますか?" name="okcancelignore" notext="いいえ" yestext="はい"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] によってあなたはフリーズされています。世界を動かすことも、世界とインタラクションすることもできません。
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] によって、あなたは [AV_FREEZE_TIME] 秒間フリーズされました。世界を動かすことも、世界とインタラクションすることもできません。
+ </notification>
+ <notification name="YouFrozeAvatar">
+ アバターがフリーズされています。
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] によってフリーズが解除されています。
+ </notification>
+ <notification name="AvatarUnFrozen">
+ アバターのフリーズが解除されました。
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ その区画の管理権限を持っていないため、フリーズに失敗しました。
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ フリーズ期間が切れました。仕事に戻ってください。
+ </notification>
+ <notification name="AvatarCantFreeze">
+ 残念ながら、そのユーザーをフリーズできません。
+ </notification>
+ <notification name="NowOwnObject">
+ これで、オブジェクト [OBJECT_NAME] の所有者になりました
+ </notification>
+ <notification name="CantRezOnLand">
+ この土地の所有者が許可していないため、[OBJECT_POS] でオブジェクトを Rez することができません。土地ツールを使用して、土地の所有を確認してください。
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ リクエストが多すぎて、オブジェクトを Rez することができません。
+ </notification>
+ <notification name="SitFailCantMove">
+ 今回移動できなかったため、座ることができません。
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ その土地に対して許可を受けていないため、座ることができません。
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ 移動して近づけてみてください。オブジェクトが同じリージョンにないため、オブジェクトを配置できません。
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ 新しいオブジェクトを作成できません。リージョンが埋まっています。
+ </notification>
+ <notification name="FailedToPlaceObject">
+ 指定した場所にオブジェクトを配置できませんでした。もう一度お試しください。
+ </notification>
+ <notification name="NoOwnNoGardening">
+ 所有していない土地に木や草を植えることはできません。
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ オブジェクト &apos;[OBJ_NAME]&apos; をコピーする権限がないため、コピーに失敗しました。
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ オブジェクト &apos;[OBJ_NAME]&apos; をあなたに転送できないため、コピーに失敗しました。
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ オブジェクト &apos;[OBJ_NAME]&apos; がナビメッシュに貢献しているため、コピーに失敗しました。
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ ルートオブジェクトを選択せずに複製します。
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ リージョンが埋まっているため、オブジェクトのコピーを作成することができません。
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ オブジェクトのコピーを作成できません。オブジェクトのある区画が見つかりません。
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ 区画がいっぱいのため、
+オブジェクトを作成できません。
+ </notification>
+ <notification name="RezAttemptFailed">
+ オブジェクトへの Rez の試みに失敗しました。
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ このリージョンで問題を引き起こすアイテムは作成できません。
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ その持ち物アイテムはブラックリストに登録されています。
+ </notification>
+ <notification name="NoCanRezObjects">
+ 現在あなたにはオブジェクトを作成するための許可がありません。
+ </notification>
+ <notification name="LandSearchBlocked">
+ 土地の検索がブロックされました。
+短期間に多くの土地を検索したためです。
+しばらくしてから再度お試しください。
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ オブジェクトの着用に使用できるスクリプトリソースが足りません。
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ 死んでしまったので、ホームにテレポートされました。
+ </notification>
+ <notification name="EjectComingSoon">
+ ここへの入場が許可されていないため、[EJECT_TIME] 秒後に追放されます。
+ </notification>
+ <notification name="NoEnterServerFull">
+ サーバーが埋まっているため、
+このリージョンに入場することはできません。
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ 「「持ち物」に保存」が無効になっています。
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ &apos;[OBJ_NAME]&apos; の Rez 元であるオブジェクトが存在しないため、このオブジェクトをオブジェクトコンテンツに保存できません。
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ オブジェクト &apos;[DEST_NAME]&apos; を修正する権限がないため、オブジェクトのコンテンツに &apos;[OBJ_NAME]&apos; を保存できません。
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ インベントリに &apos;[OBJ_NAME]&apos; を保存することはできません - この操作が無効になっています。
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ オブジェクト &apos;[OBJ_NAME]&apos; を変更する権限を持っていないため、選択したものをコピーできません。
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ オブジェクト &apos;[OBJ_NAME]&apos; を転送できないため、選択したものをコピーできません。
+ </notification>
+ <notification name="NoTransNoCopy">
+ オブジェクト &apos;[OBJ_NAME]&apos; を転送できないため、選択したものをコピーできません。
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ シミュレータからのオブジェクト &apos;[OBJ_NAME]&apos; の削除は、権限システムによって無効にされています。
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ オブジェクト &apos;[OBJ_NAME]&apos; を変更する権限を持っていないため、選択したものを保存できません。
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ オブジェクト &apos;[OBJ_NAME]&apos; をコピーできないため、選択したものを保存できません。
+ </notification>
+ <notification name="NoModNoTaking">
+ オブジェクト &apos;[OBJ_NAME]&apos; を変更する権限を持っていないため、選択したものを取得できません。
+ </notification>
+ <notification name="RezDestInternalError">
+ 内部エラー: 不明な宛先タイプ。
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ オブジェクトが見つからないため削除できませんでした。
+ </notification>
+ <notification name="SorryCantEjectUser">
+ 残念ながら、そのユーザーを追放することはできません。
+ </notification>
+ <notification name="RegionSezNotAHome">
+ このリージョンでは、ここにホームの位置を設定できません。
+ </notification>
+ <notification name="HomeLocationLimits">
+ ホームの場所を設定できるのは、自分の土地か、またはメインランドのインフォハブでのみです。
+ </notification>
+ <notification name="HomePositionSet">
+ 家の配置の設定。
+ </notification>
+ <notification name="AvatarEjected">
+ アバターが追放されました。
+ </notification>
+ <notification name="AvatarEjectFailed">
+ その区画の管理権限がないため、追放できませんでした。
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ 区画が埋まっているため、オブジェクト &apos;[OBJECT_NAME]&apos; を、リージョン [REGION_NAME] 内の [OBJ_POSITION] に移動できません。
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ オブジェクト &apos;[OBJECT_NAME]&apos; は、この区画で許可されていないため、リージョン [REGION_NAME] 内の [OBJ_POSITION] に移動できません。
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ この区画でこのオブジェクトのリソースが不足しているため、オブジェクト &apos;[OBJECT_NAME]&apos; をリージョン [REGION_NAME] 内の [OBJ_POSITION] に移動できません。
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ オブジェクト &apos;[OBJECT_NAME]&apos; をリージョン [REGION_NAME] 内の [OBJ_POSITION] に移動することはできません。他のリージョンでは、リージョンの境界をまたいだこのオブジェクトを受信することができない古いバージョンを実行しているためです。
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ リージョン境界をまたぐナビメッシュを変更できないため、オブジェクト &apos;[OBJECT_NAME]&apos; をリージョン [REGION_NAME] 内の [OBJ_POSITION] に移動できません。
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ 不明な理由により、オブジェクト &apos;[OBJECT_NAME]&apos; を、リージョン [REGION_NAME] 内の [OBJ_POSITION] に移動できません。
+([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ そのオブジェクトを変更する権限がありません
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ ナビメッシュに貢献するオブジェクトに対して物理を有効にできません。
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ キーフレームオブジェクトのために物理を有効にできません。
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ 土地のリソースが足りないため、オブジェクトの物理を有効にできません。
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ [MAX_OBJECTS] より大きい物理リソースコストを持つオブジェクトでは、物理を有効にできません。
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ このオブジェクトはファントムで、ナビメッシュに貢献しているため、くぼみを持たせることができません。
+ </notification>
+ <notification name="UnableAddItem">
+ アイテムを追加できません!
+ </notification>
+ <notification name="UnableEditItem">
+ これは編集できません!
+ </notification>
+ <notification name="NoPermToEdit">
+ これを編集する許可がありません。
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ そのインベントリをコピーすることは許可されません。
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ オブジェクトのコンテンツに保存できません。アイテムが存在していません。
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ オブジェクトのコンテンツに保存できません。同じ名前を持つアイテムがすでにインベントリに存在します。
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ オブジェクトのコンテンツに保存できません。このため、アタッチメントの権限が変更されます。
+ </notification>
+ <notification name="TooManyScripts">
+ スクリプトが多すぎます。
+ </notification>
+ <notification name="UnableAddScript">
+ テキストを追加できません!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ 資産サーバーがタイムリーに応答しませんでした。オブジェクトが sim に返されました。
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ このリージョンでは、物理的シェイプが有効にされていません。
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ リージョンの境界をまたぐナビメッシュは変更できません。
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ そのオブジェクトタイプの物理的プロパティを設定できません。
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ ルートプリムを設定できないため、シェイプがありません。
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ このリージョンでは、物理的素材が有効にされていません。
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ 物理的素材を調整できるのは、ルートプリムだけです。
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ キャラクターへの物理的素材の設定はまだサポートされていません。
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ 指定した物理的素材のプロパティが 1 つ以上無効です。
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ メッシュオブジェクトの縫い目のタイプを変更することはできません。
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ メッシュオブジェクトの形状を変更することはできません
+ </notification>
+ <notification name="FullRegionCantEnter">
+ リージョンが埋まっているため、\nこのリージョンに入場できません。
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ リンクエラー -- 所有者が違います
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ リンクエラー -- リージョンの境界をまたぐナビメッシュは変更できません。
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ リンクエラー -- 編集権限がありません。
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ リンクエラー -- プリミティブが多すぎます。
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ リンクエラー -- コピーなしと転送なしをリンクできません。
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ リンクエラー -- リンクできるものがありません。
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ リンクエラー -- パスファインディングの文字数が多すぎます
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ リンクエラー -- 土地のリソースが足りません
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ オブジェクトが使用している物理リソースが多すぎたため、ダイナミックスが無効にされました。
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ 区画 &apos;[PARCEL_NAME]&apos; のオブジェクト &apos;[OBJECT_NAME]&apos; によって、あなたはホームにテレポートされました。
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ ​オブジェクト ​&apos;[OBJECT_NAME]&apos; によって、あなたはホームへテレポートされています。
+ </notification>
+ <notification name="TeleportedByAttachment">
+ [ITEM_ID] へのアタッチメントによって、あなたはテレポートされています。
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ 区画 &apos;[PARCEL_NAME]&apos; のオブジェクト &apos;[OBJECT_NAME]&apos; によって、あなたはテレポートされています。
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ [OWNER_ID] が所有しているオブジェクト &apos;[OBJECT_NAME]&apos; によって、あなたはテレポートされています。
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ 不明なユーザーが所有しているオブジェクト &apos;[OBJECT_NAME]&apos; によって、あなたはテレポートされています。
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ リクエストされたオブジェクトを作成できません。リージョンが埋まっています。
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ 1 つの場所に複数のオブジェクトを着用することはできません。
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ ここでは、複数のオブジェクトを作成することはできません。
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ リクエストされたオブジェクトを作成できません。オブジェクトがデータベースに見つかりません。
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ リクエストされたオブジェクトを作成できません。リクエストがタイムアウトになりました。もう一度お試しください。
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ 要求されたオブジェクトを作成できません。もう一度お試しください。
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ リクエストされたオブジェクトのロードに時間がかかりすぎたため、Rez に失敗しました。
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ 指定した場所にオブジェクトを配置できませんでした。もう一度お試しください。
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ この土地に木を植えることはできません。
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ オブジェクトをリストアできません。ワールドの位置が見つかりません。
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ メッシュデータが無効なため、オブジェクトを Rez することができません。
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ このリージョンに既に多くのスクリプトが存在するため、オブジェクトを Rez することができません。
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ 現在のアクセス権限では、そこにオブジェクトを作成できません。
+ </notification>
+ <notification name="CantCreateObject">
+ 現在あなたにはオブジェクト作成する許可がありません。
+ </notification>
+ <notification name="InvalidObjectParams">
+ 無効なオブジェクトパラメーター
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ 現在のアクセス権限では、ここにオブジェクトのコピーを作成できません。
+ </notification>
+ <notification name="CantChangeShape">
+ あなたにはこのシェイプを変更する許可がありません。
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ 現在のアクセス権限では、ここにオブジェクトを取得できません。
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ あなたのグループにオブジェクトを譲渡する権限がないため、譲渡に失敗しました。
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ 現在のアクセス権限では、ここでオブジェクトを購入できません。
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ アバターがオブジェクトに存在するため、オブジェクトを着用できません。
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ 木や草をアタッチメントとして着用できません。
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ グループが所有しているオブジェクトは着用できません。
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ 所有していないオブジェクトは着用できません。
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ ナビメッシュに貢献しているオブジェクトは着用できません。
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ あなたにはオブジェクトを移動する権限がないため、そのオブジェクト添付できません。
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ オブジェクトの着用に使用できるスクリプトリソースが足りません。
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ オブジェクトをここにドロップできません。フリートライアル領域をお試しください。
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ メッシュアタッチメントをドロップすることはできません。インベントリから切り離して、ワールドで Rez してください。
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ アタッチメントのドロップに失敗しました。そこへドロップする権限がありません。
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ アタッチメントのドロップに失敗しました。利用できる土地リソースの数が足りません。
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ 利用できるリソースが足りないため、アタッチメントのドロップに失敗しました。
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ ここにオブジェクトをドロップできません。区画が埋まっています。
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ 土地区画に入場することを禁止されているため、このオブジェクトを触ったり、つかむことができません。
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ 削除パラメーターを絞ってください。
+ </notification>
+ <notification name="UnableToUploadAsset">
+ 資産をアップロードできません。
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ ホームをテレポートするユーザーが見つかりませんでした。
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ 過剰なリクエストが失敗しました
+ </notification>
+ <notification name="GenericRequestFailed">
+ 一般的なリクエストに失敗しました
+ </notification>
+ <notification name="CantUploadPostcard">
+ ポストカードをアップロードできません。後でもう一度お試しください。
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ グループ通知のインベントリの詳細を取得できません。
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ グループ通知の送信が許可されないため、送信できません。
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ グループ通知を送信できません。持ち物を作成することもできません。
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ 通知内の持ち物を検出できません。
+ </notification>
+ <notification name="TerrainUploadFailed">
+ 地形のアップロードに失敗しました。
+ </notification>
+ <notification name="TerrainFileWritten">
+ 地形ファイルが書き込まれました。
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ 地形ファイルを書き出し、ダウンロードを開始しています...
+ </notification>
+ <notification name="TerrainBaked">
+ 地形がベークされました。
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ 選択された最初の 10 個のオブジェクトのみが無効にされました。必要に応じて、リフレッシュして選択内容を追加してください。
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ この区画を購入するには、ビューワをアップデートする必要があります。
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ 購入することができません。この区画は販売対象ではありません。
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ 販売価格または土地の面積が変わったため、購入できません。
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ あなたはこの区画の委任された買い手ではありません。
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ すでに購入の認証を待機しているため、この区画を購入できません。
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ 区画をオーバーフローするため、ここでオブジェクトを構築することはできません。
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ 所有者の違う土地を選びました。選択する面積を小さくして、もう一度試してください。
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ 選択範囲のリース区画の数が少ないため、参加できません。
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ 土地を分割できません。\n区画が複数選択されています。\nもっと小さい土地を選択してみてください。
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ 土地を分解できません。\n区画が見つかりません。\n「Help」&gt;「Reprt Bug...」でレポートを行ってください。
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ 土地を分割できません。区画全体を選択します。\n小さい土地を選択してみてください。
+ </notification>
+ <notification name="LandHasBeenDivided">
+ 土地が分割されています。
+ </notification>
+ <notification name="PassPurchased">
+ 入場許可を購入しました。
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ リージョンでは、クラシファイド広告を許可しません。
+ </notification>
+ <notification name="LandPassExpireSoon">
+ この土地への入場許可はまもなく期限が切れます。
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ 配置に適した表面がありません。別の場所を試してみたください。
+ </notification>
+ <notification name="CantSitNoRoom">
+ ここには座る余地がありません。他の場所を試してください。
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ 権限がないため、オブジェクトを取得できませんでした。
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ リンデンドルが足りないため、オブジェクトの取得に失敗しました。
+ </notification>
+ <notification name="CantDeedGroupLand">
+ グループ所有の土地は、譲渡できません。
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ リンデンドルが足りないため、オブジェクトの購入に失敗しました。
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ リンデンドルが不足しているため、インベントリを購入できませんでした。
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ リンデンドルが足りないため、この土地への入場許可を購入できません。
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ 今すぐには入場許可を購入できません。後でもう一度お試しください。
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ 区画が埋まっているため、オブジェクトを\n作成することができません。
+ </notification>
+ <notification name="FailedPlacingObject">
+ 指定した場所にオブジェクトを配置できませんでした。もう一度お試しください。
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ イベントのためのランドマークを作成することができません。
+ </notification>
+ <notification name="GodBeatsFreeze">
+ 強力な力でフリーズを解除します。
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ 特殊な権限のリクエストに失敗しました。このリクエストはログに記録されています。
+ </notification>
+ <notification name="ExpireExplanation">
+ システムは、現在あなたのリクエストを処理できません。リクエストがタイムアウトになりました。
+ </notification>
+ <notification name="DieExplanation">
+ システムは、あなたのリクエストを処理できません。
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ プリミティブ広告を出すには、資金が足りません。
+ </notification>
+ <notification name="RezObjectFailure">
+ 資金が足りないため、オブジェクトを作成できません。
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ ホームが不正なため、ホームの位置をリセットします。
+ </notification>
+ <notification name="CantInviteRegionFull">
+ リージョンが埋まっているため、現在の場所に誰かを招待することはできません。後でもう一度お試しください。
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ このリージョンでは、ここにホームの位置を設定できません。
+ </notification>
+ <notification name="ListValidHomeLocations">
+ ホームの場所を設定できるのは、自分の土地か、またはメインランドのインフォハブでのみです。
+ </notification>
+ <notification name="SetHomePosition">
+ 家の配置の設定。
+ </notification>
+ <notification name="CantDerezInventoryError">
+ インベントリエラーのため、オブジェクトの Rez 解除ができません。
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ リクエストされたインベントリを作成できません。
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ リクエストされた持ち物フォルダーを作成できません。
+ </notification>
+ <notification name="CantCreateInventory">
+ そのインベントリを作成できません。
+ </notification>
+ <notification name="CantCreateLandmark">
+ ランドマークを作成できません。
+ </notification>
+ <notification name="CantCreateOutfit">
+ アウトフィットをすぐには作成できません。しばらくしてから再度お試しください。
+ </notification>
+ <notification name="InventoryNotForSale">
+ インベントリは販売対象ではありません。
+ </notification>
+ <notification name="CantFindInvItem">
+ 持ち物アイテムを見つけることができません。
+ </notification>
+ <notification name="CantFindObject">
+ オブジェクトが見つかりません。
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ オブジェクトへの送金は、このリージョンでは現在無効にされています。
+ </notification>
+ <notification name="CantPayNoAgent">
+ 支払いの相手を把握できませんでした。
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ パブリックオブジェクトにリンデンドルを与えることはできません。
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ インワールドオブジェクトでのインベントリ作成に失敗しました。
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ 内部エラーが発生したため、ビューワを正しく更新できませんでした。ビューワに表示されるリンデンドルの残高または区画の所有は、サーバー上の実際の残高を反映していない可能性があります。
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ 他のプレイヤーの関心を引く大きなプリムを作成できません。他のプレイヤーが移動したときに再試行してください。
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ これにより、過去の会話のログ、およびそのファイルのすべてのバックアップが削除されます。
+ <usetemplate ignoretext="以前の会話のログを削除する前に確認してください。" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ これにより、以前のすべての会話のテキストが削除されます。過去の会話のリストには影響しません。.txt および txt.backup の拡張子が付いたすべてのファイルが [FOLDER] フォルダーから削除されます。
+ <usetemplate ignoretext="テキストを削除するまえに確認してください。" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ ファイルを移動できません。以前のパスがリストアされました。
+ <usetemplate ignoretext="ファイルを移動できません。以前のパスがリストアされました。" name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_active_object_row.xml b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml
index 90491e84c5..90491e84c5 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
index 17e1283d24..17e1283d24 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
index 70d37c3bad..3ef8eba19f 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="このフレンドは、あなたのオブジェクトを編集・削除・取得することができます"/>
<icon name="permission_map_icon" tool_tip="このフレンドは地図上であなたの位置を表示できます"/>
<icon name="permission_online_icon" tool_tip="このフレンドはあなたがオンラインにいることを確認できます"/>
+ <button name="info_btn" tool_tip="詳細"/>
<button name="profile_btn" tool_tip="プロフィールの表示"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_avatar_tag.xml b/indra/newview/skins/default/xui/ja/panel_avatar_tag.xml
index fd91ea97d1..fd91ea97d1 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/ja/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
index 5d6a6065ae..9263e5f347 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- ブロックリスト
- </text>
- <scroll_list name="blocked" tool_tip="現在ブロックされている住人一覧"/>
- <button label="アバターをブロック" label_selected="住人をブロック..." name="Block resident..." tool_tip="ブロックしたい住人を選んでください"/>
- <button label="名前でオブジェクトをブロック..." label_selected="名前でオブジェクトをブロック..." name="Block object by name..." tool_tip="名前でブロックしたいオブジェクトを選んでください"/>
- <button label="ブロック解除" label_selected="ブロック解除" name="Unblock" tool_tip="ブロックリストから住人・オブジェクトを削除"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="フィルター" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="選択した住人・オブジェクトに対するアクション"/>
+ <menu_button name="view_btn" tool_tip="オプションを並べ替える"/>
+ <menu_button name="plus_btn" tool_tip="ブロックする住人・オブジェクトを選択"/>
+ <button name="unblock_btn" tool_tip="ブロックリストから住人・オブジェクトを削除"/>
+ </panel>
+ <block_list name="blocked" tool_tip="現在ブロックされている住人一覧"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml
index 95a5a26d4e..95a5a26d4e 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/ja/panel_bodyparts_list_button_bar.xml
index 42d8a21660..42d8a21660 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/ja/panel_bottomtray_lite.xml
index 6eca8adfe5..6eca8adfe5 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/ja/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_chat_header.xml b/indra/newview/skins/default/xui/ja/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/ja/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml
index 6717ba9ba3..6717ba9ba3 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_classified_info.xml b/indra/newview/skins/default/xui/ja/panel_classified_info.xml
index 57a255afde..57a255afde 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
index 2159f17fec..2159f17fec 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml
index 158b2fa6ac..158b2fa6ac 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_cof_wearables.xml b/indra/newview/skins/default/xui/ja/panel_cof_wearables.xml
index b9bc10c220..b9bc10c220 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/ja/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/ja/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..09ffb92d36
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(ローディング)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/ja/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..e05a67e31d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="ボイスチャット"/>
+ <icon name="unread_ims_icon" tool_tip="ログアウト時に表示されるメッセージ"/>
+ <button name="delete_btn" tool_tip="このエントリーを削除"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml
index a1e30283ee..a1e30283ee 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml
index 0395d4edd8..0395d4edd8 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml b/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml
index 7250da69a4..7250da69a4 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
index b556b68e02..b556b68e02 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml b/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
index 94967999a1..94967999a1 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml b/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
index 72eb120c3d..72eb120c3d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_hair.xml b/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
index f73f760192..f73f760192 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml b/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
index ee39e9435c..ee39e9435c 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_pants.xml b/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
index 6a1789c9f4..6a1789c9f4 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_physics.xml b/indra/newview/skins/default/xui/ja/panel_edit_physics.xml
index 6ebf0062dc..6ebf0062dc 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml b/indra/newview/skins/default/xui/ja/panel_edit_pick.xml
index 39ea1df1e3..39ea1df1e3 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
index 4cbd7f793b..4cbd7f793b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shape.xml b/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
index 5a3a949150..5a3a949150 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
index f33daa4eba..f33daa4eba 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml b/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
index c7626189af..c7626189af 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_skin.xml b/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
index 7573132576..7573132576 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
index 6efc4ce99a..6efc4ce99a 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_socks.xml b/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
index 71fc7c5682..71fc7c5682 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml
index f4cfe6d83f..f4cfe6d83f 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml b/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
index f345a81922..f345a81922 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
index 66b2ffa8ba..66b2ffa8ba 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml b/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
index 000dac7b5b..000dac7b5b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
index 49749732c9..49749732c9 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml
index a1bfb67823..a1bfb67823 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
index 7aa1aec6d0..7aa1aec6d0 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
index cc9ebc405b..cc9ebc405b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
index 82be58a0fb..82be58a0fb 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
index 4b548049c8..77d3d8f391 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="不明"/>
+ <button name="info_btn" tool_tip="詳細"/>
<button name="profile_btn" tool_tip="プロフィールの表示"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
index ddad6c1f9b..ddad6c1f9b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notify.xml b/indra/newview/skins/default/xui/ja/panel_group_notify.xml
index 7135ae780d..7135ae780d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_group_roles.xml b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
index d40dedf566..d40dedf566 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
index f2429ac12a..f2429ac12a 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_instant_message.xml b/indra/newview/skins/default/xui/ja/panel_instant_message.xml
index bf4cbcdc46..bf4cbcdc46 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/ja/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_inventory_item.xml b/indra/newview/skins/default/xui/ja/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
index 7fca66f90f..7fca66f90f 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_landmarks.xml b/indra/newview/skins/default/xui/ja/panel_landmarks.xml
index 24d6ff23ae..24d6ff23ae 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/ja/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index 396d9e65b1..396d9e65b1 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
index f908262f4f..f908262f4f 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_me.xml b/indra/newview/skins/default/xui/ja/panel_me.xml
index 3df1ae8048..3df1ae8048 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_me.xml
+++ b/indra/newview/skins/default/xui/ja/panel_me.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
index 6321dbb048..6321dbb048 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
index 11d9ed4c16..11d9ed4c16 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
index ea4fdb9ce5..ea4fdb9ce5 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
index 51402b2e00..51402b2e00 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
index 4048b48d3a..4048b48d3a 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
index 201fb0a376..201fb0a376 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
index c29ec64304..c29ec64304 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml b/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
index aff427ed49..aff427ed49 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_notify_textbox.xml b/indra/newview/skins/default/xui/ja/panel_notify_textbox.xml
index 8e0cf4bc9d..8e0cf4bc9d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_online_status_toast.xml b/indra/newview/skins/default/xui/ja/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/ja/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outbox_inventory.xml
index 1a14283113..1a14283113 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml b/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
index e89ce0c479..e89ce0c479 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
index 93df0ba2bd..93df0ba2bd 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
index e8caab0696..e8caab0696 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_list.xml b/indra/newview/skins/default/xui/ja/panel_outfits_list.xml
index df9ef40113..df9ef40113 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml
index fd03e6b89e..fd03e6b89e 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml
index 88c31451b5..03ce87537a 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_people.xml
+++ b/indra/newview/skins/default/xui/ja/panel_people.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="人" name="people_panel">
<string name="no_recent_people" value="最近交流した人はいません。 一緒に何かする仲間をお探しですか? [secondlife:///app/search/people 検索] か [secondlife:///app/worldmap 世界地図] をお試しください。"/>
@@ -14,81 +14,53 @@
<string name="no_filtered_friends_msg">
お探しのものは見つかりましたか? [secondlife:///app/search/people/[SEARCH_TERM] 検索] をお試しください。
</string>
- <string name="people_filter_label" value="人をフィルター"/>
- <string name="groups_filter_label" value="グループをフィルター"/>
<string name="no_filtered_groups_msg" value="お探しのものは見つかりましたか? [secondlife:///app/search/groups/[SEARCH_TERM] 検索] をお試しください。"/>
<string name="no_groups_msg" value="グループをお探しですか? [secondlife:///app/search/groups 検索] をお試しください。"/>
<string name="MiniMapToolTipMsg" value="[地域](ダブルクリックで地図を開く。Shift‐ドラッグで水平・垂直移動)"/>
<string name="AltMiniMapToolTipMsg" value="[地域](ダブルクリックでテレポート。Shift‐ドラッグで水平・垂直移動)"/>
- <filter_editor label="フィルター" name="filter_input"/>
<tab_container name="tabs">
<panel label="近く" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="オプション"/>
- <button name="add_friend_btn" tool_tip="選択した住人をフレンドリストに登録"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="人をフィルター" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="選択した人に対するアクション"/>
+ <menu_button name="nearby_view_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <button name="add_friend_btn" tool_tip="フレンド登録を申し出ます"/>
+ <dnd_button name="nearby_del_btn" tool_tip="フレンドとして選択されている人を削除"/>
</panel>
</panel>
- <panel label="マイ フレンド" name="friends_panel">
+ <panel label="フレンド" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="人をフィルター" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="選択した人に対するアクション"/>
+ <menu_button name="friends_view_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <button name="friends_add_btn" tool_tip="フレンド登録を申し出ます"/>
+ <dnd_button name="friends_del_btn" tool_tip="フレンドとして選択されている人を削除"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="オンライン"/>
<accordion_tab name="tab_all" title="全員"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="オプションを表示します"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="フレンド登録を申し出る"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="選択した人をフレンドリストから削除"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="マイ グループ" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="オプション"/>
- <button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成します"/>
- <button name="activate_btn" tool_tip="選択したグループをアクティブにします"/>
+ <panel label="グループ" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="フィルターグループ" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="選択したグループに対するアクション"/>
+ <menu_button name="groups_view_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <menu_button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成します"/>
+ <dnd_button name="minus_btn" tool_tip="選択したグループから脱退"/>
</panel>
</panel>
<panel label="最新" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="オプション"/>
- <button name="add_friend_btn" tool_tip="選択した住人をフレンドリストに登録"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="人をフィルター" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="選択した人に対するアクション"/>
+ <menu_button name="recent_view_btn" tool_tip="表示 / 並べ替えのオプション"/>
+ <button name="add_friend_btn" tool_tip="フレンド登録を申し出ます"/>
+ <dnd_button name="recent_del_btn" tool_tip="フレンドとして選択されている人を削除"/>
</panel>
</panel>
+ <panel label="停止" name="blocked_panel">
+ <panel label="ブロックされた住人とオブジェクト" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="インスタントメッセージを開きます"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="コール" name="call_btn" tool_tip="この住人にコールする"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="共有" name="share_btn" tool_tip="インベントリのアイテムを共有する"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="テレポート" name="teleport_btn" tool_tip="テレポートを送ります"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="グループプロフィール" name="group_info_btn" tool_tip="グループプロフィールを表示します"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="グループチャット" name="chat_btn" tool_tip="チャットを開始します"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="グループコール" name="group_call_btn" tool_tip="このグループにコールする"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_pick_info.xml b/indra/newview/skins/default/xui/ja/panel_pick_info.xml
index e7b5d1929d..e7b5d1929d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml
index c6eaaeef41..c6eaaeef41 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_picks.xml
+++ b/indra/newview/skins/default/xui/ja/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
index 7235bc0f18..7235bc0f18 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_places.xml b/indra/newview/skins/default/xui/ja/panel_places.xml
index 9d3925afdc..9d3925afdc 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_places.xml
+++ b/indra/newview/skins/default/xui/ja/panel_places.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_postcard_message.xml b/indra/newview/skins/default/xui/ja/panel_postcard_message.xml
index b7c3f48557..b7c3f48557 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/ja/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml b/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
index 314aaef7fd..314aaef7fd 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
index dcaa23fee5..dcaa23fee5 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
index 7fd2e31698..7fd2e31698 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index b6e344ca48..ae5391c7bd 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="チャット" name="chat">
- <text name="font_size">
- 文字の大きさ:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="小" name="radio" value="0"/>
- <radio_item label="中" name="radio2" value="1"/>
- <radio_item label="大" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/>
- <check_box label="オフライン時に受け取った IM をメールで受信" name="send_im_to_email"/>
- <check_box label="IM とチャット履歴に文字だけ表示する" name="plain_text_chat_history"/>
- <check_box label="吹き出しチャット" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- IM の表示方法:
- </text>
- <text name="requires_restart_label">
- (再起動後に反映)
- </text>
- <radio_group name="chat_window" tool_tip="インスタントメッセージを別フローター、または1つのフローターに複数タブで表示します(要再起動)">
- <radio_item label="別々のウィンドウ" name="radio" value="0"/>
- <radio_item label="タブ" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- 受信チャットのポップアップを有効にする
- </text>
- <check_box label="グループチャット" name="EnableGroupChatPopups" tool_tip="これを選択すると、グループチャットメッセージを受信した際にポップアップが表示されます"/>
- <check_box label="IM チャット" name="EnableIMChatPopups" tool_tip="これを選択すると、インスタントメッセージを受信した際にポップアップが表示されます"/>
- <spinner label="近くのチャットメッセージが表示される長さ:" name="nearby_toasts_lifetime"/>
- <spinner label="近くのチャットメッセージが消えるまでの長さ:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/>
+ <check_box label="オフライン時に受け取った IM をメールで受信" name="send_im_to_email"/>
+ <check_box label="フレンドとグループ以外からはコールと IM を受信しない" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ 文字の大きさ:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="小規模" name="Small" value="0"/>
+ <item label="中" name="Medium" value="1"/>
+ <item label="大規模" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="吹き出しチャット" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ 通知
+ </text>
+ <text name="friend_ims">
+ フレンド IM:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="会話ウィンドウを開く" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="メッセージのポップアップ" name="PopUpMessage" value="toast"/>
+ <item label="Flash ツールバーボタン" name="FlashToolbarButton" value="flash"/>
+ <item label="フィルターなし" name="None" value="none"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ 非フレンド IM:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="会話ウィンドウを開く" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="メッセージのポップアップ" name="PopUpMessage" value="toast"/>
+ <item label="Flash ツールバーボタン" name="FlashToolbarButton" value="flash"/>
+ <item label="フィルターなし" name="None" value="none"/>
+ </combo_box>
+ <text name="conference_ims">
+ コンファレンス IM:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="会話ウィンドウを開く" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="メッセージのポップアップ" name="PopUpMessage" value="toast"/>
+ <item label="Flashツールバーボタン" name="FlashToolbarButton" value="flash"/>
+ <item label="フィルターなし" name="None" value="none"/>
+ </combo_box>
+ <text name="group_chat">
+ グループチャット:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="会話ウィンドウを開く" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="メッセージのポップアップ" name="PopUpMessage" value="toast"/>
+ <item label="Flash ツールバーボタン" name="FlashToolbarButton" value="flash"/>
+ <item label="なし" name="None" value="none"/>
+ </combo_box>
+ <text name="nearby_chat">
+ 近くのチャット:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="会話ウィンドウを開く" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="メッセージのポップアップ" name="PopUpMessage" value="toast"/>
+ <item label="Flash ツールバーボタン" name="FlashToolBarButton" value="flash"/>
+ <item label="フィルターなし" name="None" value="none"/>
+ </combo_box>
+ <text name="notifications_alert">
+ すべての通知を一時的に受け付けないようにするには、「コミュニケート」&gt;「通知を受けない」を使用します。
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ 音の再生:
+ </text>
+ <check_box label="新しい会話" name="new_conversation"/>
+ <check_box label="ボイスコールの着信" name="incoming_voice_call"/>
+ <check_box label="テレポートを渡す" name="teleport_offer"/>
+ <check_box label="アイテムのオファー" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="ログのクリア..." name="clear_log"/>
+ <button label="テキストの削除..." name="delete_transcripts"/>
+ <button label="参照..." label_selected="参照" name="log_path_button"/>
+ </panel>
<button label="他の言語..." name="ok_btn"/>
<button label="自動置換..." name="autoreplace_showgui"/>
<button label="スペルチェック中..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
index 9f6abf8fcb..9f6abf8fcb 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 91e1514e49..d70af7e099 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -69,9 +69,9 @@
<combo_box.item label="一時退席設定なし" name="item4"/>
</combo_box>
<text name="text_box3">
- 取り込み中モード時の返事:
+ 「通知を受けない」応答:
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
index 1786b4befc..1786b4befc 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
index 121bebfd52..121bebfd52 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
index 420bbed572..420bbed572 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
index d90a1632ab..d90a1632ab 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
index 3a4c360ccc..3a4c360ccc 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
index 5506373eb0..5506373eb0 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
index 5214f79141..5214f79141 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
index 169da27ce5..169da27ce5 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_environment.xml b/indra/newview/skins/default/xui/ja/panel_region_environment.xml
index f6ef3f0934..f6ef3f0934 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index b5cc6b9765..b5cc6b9765 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml
index 65148cf1ee..65148cf1ee 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_region_terrain.xml b/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
index fb853c1925..fb853c1925 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_script_ed.xml b/indra/newview/skins/default/xui/ja/panel_script_ed.xml
index 14d55002a3..14d55002a3 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
index 494884c187..494884c187 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
index d91eba9699..d91eba9699 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_script_question_toast.xml b/indra/newview/skins/default/xui/ja/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml b/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml
index b698fa762d..b698fa762d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/ja/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/ja/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/ja/panel_side_tray_tab_caption.xml
index d06db8ccb1..d06db8ccb1 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/ja/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/ja/panel_sidetray_home_tab.xml
index ea17cd6526..ea17cd6526 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/ja/panel_sidetray_home_tab.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_inventory.xml
index e496e6602b..e496e6602b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_local.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_local.xml
index cb658fb6c9..cb658fb6c9 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml
index c3b1cd91e7..c3b1cd91e7 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
index 1ddd723840..1ddd723840 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_profile.xml
index b860a6afe9..b860a6afe9 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_sound_devices.xml b/indra/newview/skins/default/xui/ja/panel_sound_devices.xml
index 0824504235..0824504235 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/ja/panel_stand_stop_flying.xml
index 2308aff19b..2308aff19b 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/ja/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
index f09643d562..f09643d562 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_sys_well_item.xml b/indra/newview/skins/default/xui/ja/panel_sys_well_item.xml
index 81db7c8989..81db7c8989 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_sys_well_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_sys_well_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
index 58e396877c..58e396877c 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
index c570cd5696..c570cd5696 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_voice_effect.xml b/indra/newview/skins/default/xui/ja/panel_voice_effect.xml
index 530f0fb59d..530f0fb59d 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/ja/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml
index 967dedf061..967dedf061 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/ja/panel_world_map.xml b/indra/newview/skins/default/xui/ja/panel_world_map.xml
index 8ff853193a..8ff853193a 100644..100755
--- a/indra/newview/skins/default/xui/ja/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml
index 896ed556ae..896ed556ae 100644..100755
--- a/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/indra/newview/skins/default/xui/ja/role_actions.xml
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
index 30cef9ccc0..30cef9ccc0 100644..100755
--- a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
index 51d6d48f90..51d6d48f90 100644..100755
--- a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
index e70d91d258..e70d91d258 100644..100755
--- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
index c61c73657f..4f65c8477b 100644..100755
--- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="オブジェクトを買う" name="Buyobject"/>
<combo_box.item label="オブジェクトに支払う" name="Payobject"/>
<combo_box.item label="開く" name="Open"/>
+ <combo_box.item label="ズーム" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 50697e5500..b27904c4d7 100644..100755
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -137,7 +137,7 @@
終了
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=ja-JP&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
お使いの古いビューワでは Second Life にアクセスできません。以下のページから新しいビューワをダウンロードしてください:
@@ -622,8 +622,8 @@ support@secondlife.com にお問い合わせください。
<string name="AvatarAway">
一時退席中
</string>
- <string name="AvatarBusy">
- 取り込み中
+ <string name="AvatarDoNotDisturb">
+ 通知を受けない
</string>
<string name="AvatarMuted">
ブロック中
@@ -859,6 +859,12 @@ support@secondlife.com にお問い合わせください。
<string name="ST_NO_JOINT">
ROOT または JOINT が見つかりません
</string>
+ <string name="NearbyChatTitle">
+ 近くのチャット
+ </string>
+ <string name="NearbyChatLabel">
+ (近くのチャット)
+ </string>
<string name="whisper">
のささやき:
</string>
@@ -922,12 +928,15 @@ support@secondlife.com にお問い合わせください。
<string name="ControlYourCamera">
カメラのコントロール
</string>
- <string name="TeleportYourAgent">
- あなたをテレポート
- </string>
<string name="NotConnected">
接続されていません
</string>
+ <string name="AgentNameSubst">
+ (あなた)
+ </string>
+ <string name="TeleportYourAgent">
+ あなたをテレポート
+ </string>
<string name="SIM_ACCESS_PG">
General
</string>
@@ -1009,18 +1018,6 @@ support@secondlife.com にお問い合わせください。
<string name="dictionary_files">
辞書
</string>
- <string name="AvatarSetNotAway">
- 一時退席中解除
- </string>
- <string name="AvatarSetAway">
- 一時退席中
- </string>
- <string name="AvatarSetNotBusy">
- 取り込み中解除
- </string>
- <string name="AvatarSetBusy">
- 取り込み中
- </string>
<string name="shape">
シェイプ
</string>
@@ -1989,8 +1986,8 @@ support@secondlife.com にお問い合わせください。
<string name="PanelContentsNewScript">
新規スクリプト
</string>
- <string name="BusyModeResponseDefault">
- メッセージを送った住人は、誰にも邪魔をされたくないため現在「取り込み中」モードです。 あなたのメッセージは、あとで確認できるように IM パネルに表示されます。
+ <string name="DoNotDisturbModeResponseDefault">
+ この住民が「通知を受けない」をオンにすると、あなたのメッセージが後で表示されるようになります。
</string>
<string name="MuteByName">
(名称別)
@@ -2103,9 +2100,6 @@ support@secondlife.com にお問い合わせください。
<string name="GroupMoneyDate">
[year,datetime,utc]年[mth,datetime,utc]月[day,datetime,utc]日[weekday,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- 内容
- </string>
<string name="AcquiredItems">
取得アイテム
</string>
@@ -3877,7 +3871,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
General リージョン
</string>
<string name="LocationCtrlSeeAVsTooltip">
- この区画外にアバターを見えるようにして、チャットも許可
+ この区画内のアバターは、この区画の外にいるアバターからは見ることも聞くこともできません。
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
地域(リージョン)が再構築されるまで、移動するオブジェクトは正しく動作しない可能性があります。
@@ -3954,6 +3948,12 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="IM_unblock_only_groups_friends">
このメッセージを表示するには、「環境設定」の「プライバシー」で「フレンドとグループ以外からはコールと IM を受信しない」チェックボックスをオフにします。
</string>
+ <string name="OnlineStatus">
+ オンライン
+ </string>
+ <string name="OfflineStatus">
+ オフライン
+ </string>
<string name="answered_call">
相手がコールを受けました
</string>
@@ -3963,6 +3963,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="you_joined_call">
ボイスコールに参加しました
</string>
+ <string name="you_auto_rejected_call-im">
+ 「通知を受けない」がオンのときに、自動的にボイスコールを拒否しました。
+ </string>
<string name="name_started_call">
[NAME] はボイスコールを開始します
</string>
@@ -3979,7 +3982,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
接続中...
</string>
<string name="conference-title">
- アドホックコンファレンス
+ 複数人チャット
</string>
<string name="conference-title-incoming">
[AGENT_NAME] とコンファレンスする
@@ -4859,6 +4862,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="Command_Chat_Label">
チャット
</string>
+ <string name="Command_Conversations_Label">
+ 会話
+ </string>
<string name="Command_Compass_Label">
コンパス
</string>
@@ -4934,6 +4940,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="Command_Chat_Tooltip">
近くの人と文字チャットする
</string>
+ <string name="Command_Conversations_Tooltip">
+ 全員との会話
+ </string>
<string name="Command_Compass_Tooltip">
コンパス
</string>
@@ -5063,4 +5072,13 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="UserDictionary">
[User]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ 会話はログに記録されていません。ログの記録を開始するには、「環境設定」&gt;「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ これ以上の会話は記録されません。ログの記録を再開するには、「環境設定」&gt;「チャット」で「保存: ログのみ」または「保存: ログと会話のテキスト」を選択します。
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ ログイン時の会話はありません。誰かにご連絡した後、または誰かがあなたに連絡した後、ログエントリがここに表示されます。
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/ja/teleport_strings.xml b/indra/newview/skins/default/xui/ja/teleport_strings.xml
index 7868c25807..7868c25807 100644..100755
--- a/indra/newview/skins/default/xui/ja/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/ja/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/ja/xui_version.xml b/indra/newview/skins/default/xui/ja/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/ja/xui_version.xml
+++ b/indra/newview/skins/default/xui/ja/xui_version.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml
index 409429ffaa..409429ffaa 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_about.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml
index badff11a59..badff11a59 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_activeim.xml b/indra/newview/skins/default/xui/pl/floater_activeim.xml
index 2a34409f8b..2a34409f8b 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/pl/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
index 3402d8d31f..3402d8d31f 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_auction.xml b/indra/newview/skins/default/xui/pl/floater_auction.xml
index 9399fa1115..9399fa1115 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_auction.xml
+++ b/indra/newview/skins/default/xui/pl/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
index da0e947683..da0e947683 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
index 45b9e066e9..45b9e066e9 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_beacons.xml b/indra/newview/skins/default/xui/pl/floater_beacons.xml
index e6286a6ac1..e6286a6ac1 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/pl/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_build_options.xml b/indra/newview/skins/default/xui/pl/floater_build_options.xml
index 5d296aa725..5d296aa725 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
index 1c24e0b35e..1c24e0b35e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_bumps.xml b/indra/newview/skins/default/xui/pl/floater_bumps.xml
index c1045ece9a..c1045ece9a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/pl/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_contents.xml b/indra/newview/skins/default/xui/pl/floater_buy_contents.xml
index 94f2b50450..94f2b50450 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
index 3e51761b37..3e51761b37 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml
index 36ac88f7f6..36ac88f7f6 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_land.xml b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
index 7b4f459b4e..7b4f459b4e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_object.xml b/indra/newview/skins/default/xui/pl/floater_buy_object.xml
index 85861d9e76..85861d9e76 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_camera.xml b/indra/newview/skins/default/xui/pl/floater_camera.xml
index 60f3cd0fff..60f3cd0fff 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_camera.xml
+++ b/indra/newview/skins/default/xui/pl/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_choose_group.xml b/indra/newview/skins/default/xui/pl/floater_choose_group.xml
index 877cedc0bc..877cedc0bc 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/pl/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_color_picker.xml b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
index a607ca982f..a607ca982f 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_critical.xml b/indra/newview/skins/default/xui/pl/floater_critical.xml
index 8221a4e1bd..8221a4e1bd 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_critical.xml
+++ b/indra/newview/skins/default/xui/pl/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_display_name.xml b/indra/newview/skins/default/xui/pl/floater_display_name.xml
index ea28e65728..ea28e65728 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/pl/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_event.xml b/indra/newview/skins/default/xui/pl/floater_event.xml
index d278114969..d278114969 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_event.xml
+++ b/indra/newview/skins/default/xui/pl/floater_event.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_font_test.xml b/indra/newview/skins/default/xui/pl/floater_font_test.xml
index 019cee3e1e..019cee3e1e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/pl/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_gesture.xml b/indra/newview/skins/default/xui/pl/floater_gesture.xml
index 0c27e4d0bb..0c27e4d0bb 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_god_tools.xml b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
index 828898de54..828898de54 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
index 471d2c39ba..471d2c39ba 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_help_browser.xml b/indra/newview/skins/default/xui/pl/floater_help_browser.xml
index dfd5f907e5..dfd5f907e5 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/pl/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_hud.xml b/indra/newview/skins/default/xui/pl/floater_hud.xml
index a5d85aca4e..a5d85aca4e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_hud.xml
+++ b/indra/newview/skins/default/xui/pl/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_im_container.xml b/indra/newview/skins/default/xui/pl/floater_im_container.xml
index ddf0790fa8..ddf0790fa8 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/pl/floater_im_container.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_im_session.xml b/indra/newview/skins/default/xui/pl/floater_im_session.xml
index 9041ff7416..9041ff7416 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/pl/floater_im_session.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_image_preview.xml b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
index ba9724ff9a..ba9724ff9a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_incoming_call.xml b/indra/newview/skins/default/xui/pl/floater_incoming_call.xml
index b06b6d713d..b06b6d713d 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/pl/floater_incoming_call.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_inspect.xml b/indra/newview/skins/default/xui/pl/floater_inspect.xml
index 2c66f2851d..2c66f2851d 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_inventory.xml b/indra/newview/skins/default/xui/pl/floater_inventory.xml
index c42f57fb55..c42f57fb55 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
index 054d74b234..054d74b234 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml
index bd7b221c5d..bd7b221c5d 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_joystick.xml b/indra/newview/skins/default/xui/pl/floater_joystick.xml
index 2b1e362b98..2b1e362b98 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/pl/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_lagmeter.xml b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
index 8038550bcb..8038550bcb 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
index 72a078949a..72a078949a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
index e03c5faaeb..e03c5faaeb 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_lsl_guide.xml b/indra/newview/skins/default/xui/pl/floater_lsl_guide.xml
index 7b1b395f87..7b1b395f87 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/pl/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_map.xml b/indra/newview/skins/default/xui/pl/floater_map.xml
index e01c4c8a82..e01c4c8a82 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_map.xml
+++ b/indra/newview/skins/default/xui/pl/floater_map.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_media_browser.xml b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
index 9787736ad8..9787736ad8 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_media_settings.xml b/indra/newview/skins/default/xui/pl/floater_media_settings.xml
index 5a36331c9a..5a36331c9a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_mem_leaking.xml b/indra/newview/skins/default/xui/pl/floater_mem_leaking.xml
index 9ce99692d0..9ce99692d0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/pl/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_moveview.xml b/indra/newview/skins/default/xui/pl/floater_moveview.xml
index 592814dbc0..592814dbc0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_mute_object.xml b/indra/newview/skins/default/xui/pl/floater_mute_object.xml
index 4af5872ef5..4af5872ef5 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_nearby_chat.xml b/indra/newview/skins/default/xui/pl/floater_nearby_chat.xml
index 214d465f1c..214d465f1c 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/pl/floater_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_openobject.xml b/indra/newview/skins/default/xui/pl/floater_openobject.xml
index 8e94ae821c..8e94ae821c 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/pl/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml b/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml
index de0b4d08c0..de0b4d08c0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml
index 38fe5286a4..38fe5286a4 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_pay_object.xml b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
index bf88348c87..bf88348c87 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml
index 2128cfa3c8..2128cfa3c8 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_post_process.xml b/indra/newview/skins/default/xui/pl/floater_post_process.xml
index e3dce84933..e3dce84933 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/pl/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_postcard.xml b/indra/newview/skins/default/xui/pl/floater_postcard.xml
index fe796c6fa0..fe796c6fa0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/pl/floater_postcard.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preferences.xml b/indra/newview/skins/default/xui/pl/floater_preferences.xml
index 930a5c76b0..930a5c76b0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
index d276b1f63a..d276b1f63a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
index 8171225666..8171225666 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
index b3275cb7b5..b3275cb7b5 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_sound.xml b/indra/newview/skins/default/xui/pl/floater_preview_sound.xml
index 3825fe742e..3825fe742e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_texture.xml b/indra/newview/skins/default/xui/pl/floater_preview_texture.xml
index e58acee139..e58acee139 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_publish_classified.xml b/indra/newview/skins/default/xui/pl/floater_publish_classified.xml
index cfdac165cd..cfdac165cd 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/pl/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_region_debug_console.xml b/indra/newview/skins/default/xui/pl/floater_region_debug_console.xml
index ce1f3c0ac7..ce1f3c0ac7 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/pl/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_region_info.xml b/indra/newview/skins/default/xui/pl/floater_region_info.xml
index a1f7785f48..a1f7785f48 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/pl/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
index a5b96601b8..a5b96601b8 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_debug.xml b/indra/newview/skins/default/xui/pl/floater_script_debug.xml
index 714a600262..714a600262 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/pl/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_limits.xml b/indra/newview/skins/default/xui/pl/floater_script_limits.xml
index dd13d641a0..dd13d641a0 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_preview.xml b/indra/newview/skins/default/xui/pl/floater_script_preview.xml
index eb6a1df77b..eb6a1df77b 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_queue.xml b/indra/newview/skins/default/xui/pl/floater_script_queue.xml
index bdfdba569e..bdfdba569e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_script_search.xml b/indra/newview/skins/default/xui/pl/floater_script_search.xml
index 901d61a137..901d61a137 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_search.xml b/indra/newview/skins/default/xui/pl/floater_search.xml
index a0198670e4..a0198670e4 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_search.xml
+++ b/indra/newview/skins/default/xui/pl/floater_search.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_select_key.xml b/indra/newview/skins/default/xui/pl/floater_select_key.xml
index 190ad61352..190ad61352 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/pl/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_sell_land.xml b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
index 2201c4b0ad..2201c4b0ad 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_settings_debug.xml b/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
index 131f92d56f..131f92d56f 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
index be92ef917d..be92ef917d 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_sound_preview.xml b/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
index ac041dff6a..ac041dff6a 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_stats.xml b/indra/newview/skins/default/xui/pl/floater_stats.xml
index 886a30e5d9..886a30e5d9 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_stats.xml
+++ b/indra/newview/skins/default/xui/pl/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_sys_well.xml b/indra/newview/skins/default/xui/pl/floater_sys_well.xml
index e6c73af4f3..e6c73af4f3 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_telehub.xml b/indra/newview/skins/default/xui/pl/floater_telehub.xml
index 32cc08810d..32cc08810d 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/pl/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
index 52c0cb8a93..52c0cb8a93 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index 9e6fed8387..9e6fed8387 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_top_objects.xml b/indra/newview/skins/default/xui/pl/floater_top_objects.xml
index 2b06ae9f78..2b06ae9f78 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/pl/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_tos.xml b/indra/newview/skins/default/xui/pl/floater_tos.xml
index 8cdf267f4b..8cdf267f4b 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_url_entry.xml b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
index fc170d8d1b..fc170d8d1b 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_voice_controls.xml b/indra/newview/skins/default/xui/pl/floater_voice_controls.xml
index 2155d56f27..2155d56f27 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/pl/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_voice_effect.xml b/indra/newview/skins/default/xui/pl/floater_voice_effect.xml
index e2d1fb77e9..e2d1fb77e9 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/pl/floater_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_web_content.xml b/indra/newview/skins/default/xui/pl/floater_web_content.xml
index 4cc8d0b27b..4cc8d0b27b 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/pl/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/pl/floater_whitelist_entry.xml
index 4081b8a37e..4081b8a37e 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/pl/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_window_size.xml b/indra/newview/skins/default/xui/pl/floater_window_size.xml
index 2a6c257e54..2a6c257e54 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/pl/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml
index 4f53337365..4f53337365 100644..100755
--- a/indra/newview/skins/default/xui/pl/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/pl/inspect_avatar.xml b/indra/newview/skins/default/xui/pl/inspect_avatar.xml
index 5e982c0185..5e982c0185 100644..100755
--- a/indra/newview/skins/default/xui/pl/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/pl/inspect_group.xml b/indra/newview/skins/default/xui/pl/inspect_group.xml
index 63c79acc8c..63c79acc8c 100644..100755
--- a/indra/newview/skins/default/xui/pl/inspect_group.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/pl/inspect_object.xml b/indra/newview/skins/default/xui/pl/inspect_object.xml
index 23d8ce7700..23d8ce7700 100644..100755
--- a/indra/newview/skins/default/xui/pl/inspect_object.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/pl/inspect_remote_object.xml b/indra/newview/skins/default/xui/pl/inspect_remote_object.xml
index 0d570940c1..0d570940c1 100644..100755
--- a/indra/newview/skins/default/xui/pl/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/pl/language_settings.xml b/indra/newview/skins/default/xui/pl/language_settings.xml
index 93051d1317..93051d1317 100644..100755
--- a/indra/newview/skins/default/xui/pl/language_settings.xml
+++ b/indra/newview/skins/default/xui/pl/language_settings.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/pl/menu_add_wearable_gear.xml
index 7c572b4fc9..7c572b4fc9 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_attachment_other.xml b/indra/newview/skins/default/xui/pl/menu_attachment_other.xml
index aacdad97e3..aacdad97e3 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/pl/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_attachment_self.xml b/indra/newview/skins/default/xui/pl/menu_attachment_self.xml
index 163b3a231e..163b3a231e 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/pl/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml b/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml
index e8d2b14231..e8d2b14231 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_avatar_other.xml b/indra/newview/skins/default/xui/pl/menu_avatar_other.xml
index dcf7921bad..dcf7921bad 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_avatar_self.xml b/indra/newview/skins/default/xui/pl/menu_avatar_self.xml
index 8eb501c5b8..8eb501c5b8 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_bottomtray.xml b/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
index 1ec5883cfe..1ec5883cfe 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml b/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml
index 4e5407601b..4e5407601b 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_body_part.xml b/indra/newview/skins/default/xui/pl/menu_cof_body_part.xml
index ee60d3feb6..ee60d3feb6 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/pl/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml b/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml
index ad43900137..ad43900137 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_gear.xml b/indra/newview/skins/default/xui/pl/menu_cof_gear.xml
index 9fba39be1a..9fba39be1a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_cof_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_edit.xml b/indra/newview/skins/default/xui/pl/menu_edit.xml
index 578e270fed..578e270fed 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_edit.xml
+++ b/indra/newview/skins/default/xui/pl/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_favorites.xml b/indra/newview/skins/default/xui/pl/menu_favorites.xml
index 7310ff5c27..7310ff5c27 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/pl/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_gesture_gear.xml b/indra/newview/skins/default/xui/pl/menu_gesture_gear.xml
index a72dec22fc..a72dec22fc 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_group_plus.xml b/indra/newview/skins/default/xui/pl/menu_group_plus.xml
index 83be4d38c5..83be4d38c5 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/pl/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml b/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml
index 19d9510cd3..19d9510cd3 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/pl/menu_imchiclet_adhoc.xml
index 4ead44878a..4ead44878a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/pl/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml
index 2b9a362123..2b9a362123 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml
index 8924d6db3e..8924d6db3e 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml
index 59560f236c..59560f236c 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/pl/menu_inspect_object_gear.xml
index c12bd490ff..c12bd490ff 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml
index c4ef9761d9..c4ef9761d9 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml
index 5ef0f2f7a4..5ef0f2f7a4 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inventory.xml b/indra/newview/skins/default/xui/pl/menu_inventory.xml
index 5492f78b26..5492f78b26 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inventory_add.xml b/indra/newview/skins/default/xui/pl/menu_inventory_add.xml
index 04f9b94f7c..04f9b94f7c 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml
index 591c3a81d5..591c3a81d5 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_land.xml b/indra/newview/skins/default/xui/pl/menu_land.xml
index cbfecaee56..cbfecaee56 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_land.xml
+++ b/indra/newview/skins/default/xui/pl/menu_land.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_landmark.xml b/indra/newview/skins/default/xui/pl/menu_landmark.xml
index aa5808390c..aa5808390c 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/pl/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_login.xml b/indra/newview/skins/default/xui/pl/menu_login.xml
index e50b694641..e50b694641 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_login.xml
+++ b/indra/newview/skins/default/xui/pl/menu_login.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_media_ctrl.xml b/indra/newview/skins/default/xui/pl/menu_media_ctrl.xml
index 60dc3673a9..60dc3673a9 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/pl/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_mini_map.xml b/indra/newview/skins/default/xui/pl/menu_mini_map.xml
index 8f86965416..8f86965416 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/pl/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_navbar.xml b/indra/newview/skins/default/xui/pl/menu_navbar.xml
index 1d434670ee..1d434670ee 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/pl/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_nearby_chat.xml b/indra/newview/skins/default/xui/pl/menu_nearby_chat.xml
index fe5bc6ba6f..fe5bc6ba6f 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/pl/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_notification_well_button.xml b/indra/newview/skins/default/xui/pl/menu_notification_well_button.xml
index bd3d42f9b1..bd3d42f9b1 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/pl/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_object.xml b/indra/newview/skins/default/xui/pl/menu_object.xml
index 3da6c5c890..3da6c5c890 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_object.xml
+++ b/indra/newview/skins/default/xui/pl/menu_object.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_object_icon.xml b/indra/newview/skins/default/xui/pl/menu_object_icon.xml
index b499bca2db..b499bca2db 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/pl/menu_object_icon.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml b/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml
index c093557e86..c093557e86 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml b/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml
index 998e25f38e..998e25f38e 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_participant_list.xml b/indra/newview/skins/default/xui/pl/menu_participant_list.xml
index 9e59102788..9e59102788 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/pl/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/pl/menu_people_friends_view_sort.xml
index b62b85d30a..b62b85d30a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_groups.xml b/indra/newview/skins/default/xui/pl/menu_people_groups.xml
index ace5ebf888..ace5ebf888 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_groups.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml
index c70ea2315f..c70ea2315f 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_nearby.xml b/indra/newview/skins/default/xui/pl/menu_people_nearby.xml
index a8cc6b4a60..a8cc6b4a60 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_nearby.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml
index dcfc48fb60..dcfc48fb60 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/pl/menu_people_nearby_view_sort.xml
index 8ec3820f84..8ec3820f84 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/pl/menu_people_recent_view_sort.xml
index b474a556bd..b474a556bd 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_picks.xml b/indra/newview/skins/default/xui/pl/menu_picks.xml
index 6f6e4b7fa8..6f6e4b7fa8 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_picks.xml
+++ b/indra/newview/skins/default/xui/pl/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_picks_plus.xml b/indra/newview/skins/default/xui/pl/menu_picks_plus.xml
index e9c00f51a9..e9c00f51a9 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/pl/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_place.xml b/indra/newview/skins/default/xui/pl/menu_place.xml
index c3b72d6abb..c3b72d6abb 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_place.xml
+++ b/indra/newview/skins/default/xui/pl/menu_place.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_place_add_button.xml b/indra/newview/skins/default/xui/pl/menu_place_add_button.xml
index 3d0c1c87fb..3d0c1c87fb 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/pl/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml
index d1f283b7aa..d1f283b7aa 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml
index 0139d3a987..0139d3a987 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_profile_overflow.xml b/indra/newview/skins/default/xui/pl/menu_profile_overflow.xml
index ef836c8ecf..ef836c8ecf 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/pl/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_save_outfit.xml b/indra/newview/skins/default/xui/pl/menu_save_outfit.xml
index 4bc65eca38..4bc65eca38 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/pl/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml b/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml
index 256500a402..256500a402 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_slurl.xml b/indra/newview/skins/default/xui/pl/menu_slurl.xml
index 862f538aa7..862f538aa7 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/pl/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml
index 0e58592d46..0e58592d46 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml
index cd36c116b0..cd36c116b0 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/pl/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/pl/menu_teleport_history_tab.xml
index b12df08d6a..b12df08d6a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/pl/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_text_editor.xml b/indra/newview/skins/default/xui/pl/menu_text_editor.xml
index 812f87bc1a..812f87bc1a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/pl/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_topinfobar.xml b/indra/newview/skins/default/xui/pl/menu_topinfobar.xml
index 53536c8f1c..53536c8f1c 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/pl/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_agent.xml b/indra/newview/skins/default/xui/pl/menu_url_agent.xml
index db729be725..db729be725 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_agent.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_group.xml b/indra/newview/skins/default/xui/pl/menu_url_group.xml
index f340b3296a..f340b3296a 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_http.xml b/indra/newview/skins/default/xui/pl/menu_url_http.xml
index e73f7b6745..e73f7b6745 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_inventory.xml b/indra/newview/skins/default/xui/pl/menu_url_inventory.xml
index e36fa0dd2b..e36fa0dd2b 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_map.xml b/indra/newview/skins/default/xui/pl/menu_url_map.xml
index 179ab1f676..179ab1f676 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_objectim.xml b/indra/newview/skins/default/xui/pl/menu_url_objectim.xml
index 7576208a9e..7576208a9e 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_objectim.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_parcel.xml b/indra/newview/skins/default/xui/pl/menu_url_parcel.xml
index 1b8dd62137..1b8dd62137 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_slapp.xml b/indra/newview/skins/default/xui/pl/menu_url_slapp.xml
index eb83245c48..eb83245c48 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_slurl.xml b/indra/newview/skins/default/xui/pl/menu_url_slurl.xml
index 4d4a5b4c4d..4d4a5b4c4d 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_url_teleport.xml b/indra/newview/skins/default/xui/pl/menu_url_teleport.xml
index e225546930..e225546930 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml
index 24c961fa26..24c961fa26 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml
index bf85246be8..bf85246be8 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml b/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml
index 47cafdbd99..47cafdbd99 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml b/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml
index 7531437043..7531437043 100644..100755
--- a/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/pl/mime_types.xml b/indra/newview/skins/default/xui/pl/mime_types.xml
index cbf2afa91d..cbf2afa91d 100644..100755
--- a/indra/newview/skins/default/xui/pl/mime_types.xml
+++ b/indra/newview/skins/default/xui/pl/mime_types.xml
diff --git a/indra/newview/skins/default/xui/pl/mime_types_linux.xml b/indra/newview/skins/default/xui/pl/mime_types_linux.xml
index a2b8168b51..a2b8168b51 100644..100755
--- a/indra/newview/skins/default/xui/pl/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/pl/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/pl/mime_types_mac.xml b/indra/newview/skins/default/xui/pl/mime_types_mac.xml
index 7213b26165..7213b26165 100644..100755
--- a/indra/newview/skins/default/xui/pl/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/pl/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index f255b1b8ea..f255b1b8ea 100644..100755
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
diff --git a/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml
index bac885e5d8..bac885e5d8 100644..100755
--- a/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_active_object_row.xml b/indra/newview/skins/default/xui/pl/panel_active_object_row.xml
index ab1d8d7007..ab1d8d7007 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/pl/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml
index ba0c85e4ef..ba0c85e4ef 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/pl/panel_avatar_list_item.xml
index c43a9bed81..c43a9bed81 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_avatar_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml
index 62cb392ba7..62cb392ba7 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml
index cebb6e3cfe..cebb6e3cfe 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml
index 560bfe78f4..560bfe78f4 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_bottomtray.xml b/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
index 8a033fc32f..8a033fc32f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml
index e32c12a8ee..e32c12a8ee 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_classified_info.xml b/indra/newview/skins/default/xui/pl/panel_classified_info.xml
index 52f54fc7cf..52f54fc7cf 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/pl/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml
index 17a6d1eb8b..17a6d1eb8b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml
index 42d1ead400..42d1ead400 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml b/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml
index 970b994c20..970b994c20 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml
index f9fba4d79f..f9fba4d79f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml
index 83210808f1..83210808f1 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml b/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml
index 51ee3af00d..51ee3af00d 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_classified.xml b/indra/newview/skins/default/xui/pl/panel_edit_classified.xml
index 7cfd9c221c..7cfd9c221c 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml b/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml
index 390a5313b5..390a5313b5 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml b/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml
index d32646d1a3..d32646d1a3 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_hair.xml b/indra/newview/skins/default/xui/pl/panel_edit_hair.xml
index cbcba97eb6..cbcba97eb6 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml b/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml
index 7653e84cc0..7653e84cc0 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_pants.xml b/indra/newview/skins/default/xui/pl/panel_edit_pants.xml
index 7975e55746..7975e55746 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_physics.xml b/indra/newview/skins/default/xui/pl/panel_edit_physics.xml
index a773a52a59..a773a52a59 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_pick.xml b/indra/newview/skins/default/xui/pl/panel_edit_pick.xml
index 72c162f63d..72c162f63d 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
index e6fd8b18f8..e6fd8b18f8 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_shape.xml b/indra/newview/skins/default/xui/pl/panel_edit_shape.xml
index 54f9fdc21c..54f9fdc21c 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml b/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml
index 9530c781ab..9530c781ab 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml b/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml
index d90a6d8726..d90a6d8726 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_skin.xml b/indra/newview/skins/default/xui/pl/panel_edit_skin.xml
index 9e0acd3cec..9e0acd3cec 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml b/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml
index f74ad916cd..f74ad916cd 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_socks.xml b/indra/newview/skins/default/xui/pl/panel_edit_socks.xml
index b41069e8d7..b41069e8d7 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml
index 6fd1e2277a..6fd1e2277a 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml b/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml
index f2a9b10f17..f2a9b10f17 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml
index 7da1341e96..7da1341e96 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml b/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml
index 2027b8715b..2027b8715b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml b/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml
index 4e373cdf8f..4e373cdf8f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_general.xml b/indra/newview/skins/default/xui/pl/panel_group_general.xml
index a4d76badf0..a4d76badf0 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml
index 37fb529f2b..37fb529f2b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_invite.xml b/indra/newview/skins/default/xui/pl/panel_group_invite.xml
index 1822551e86..1822551e86 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
index aea4e50fd5..aea4e50fd5 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_list_item.xml b/indra/newview/skins/default/xui/pl/panel_group_list_item.xml
index a8b4056976..a8b4056976 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_list_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_notices.xml b/indra/newview/skins/default/xui/pl/panel_group_notices.xml
index a3b0998de3..a3b0998de3 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_notify.xml b/indra/newview/skins/default/xui/pl/panel_group_notify.xml
index d27a81217a..d27a81217a 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_group_roles.xml b/indra/newview/skins/default/xui/pl/panel_group_roles.xml
index 9e9c79d26a..9e9c79d26a 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml b/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml
index 4aadd3b93b..4aadd3b93b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_inventory_item.xml b/indra/newview/skins/default/xui/pl/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_landmark_info.xml b/indra/newview/skins/default/xui/pl/panel_landmark_info.xml
index 3370f6f58e..3370f6f58e 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/pl/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_landmarks.xml b/indra/newview/skins/default/xui/pl/panel_landmarks.xml
index 039be3b504..039be3b504 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/pl/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml
index c87a3d3bd4..c87a3d3bd4 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_login.xml
+++ b/indra/newview/skins/default/xui/pl/panel_login.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_main_inventory.xml b/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
index 8d6fa1173c..8d6fa1173c 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_me.xml b/indra/newview/skins/default/xui/pl/panel_me.xml
index 72a5f51520..72a5f51520 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_me.xml
+++ b/indra/newview/skins/default/xui/pl/panel_me.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml b/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml
index 914a2aee73..914a2aee73 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml
index a87c29d7b3..a87c29d7b3 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_media_settings_security.xml b/indra/newview/skins/default/xui/pl/panel_media_settings_security.xml
index 7e95c4942f..7e95c4942f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/pl/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_navigation_bar.xml b/indra/newview/skins/default/xui/pl/panel_navigation_bar.xml
index b01e686c41..b01e686c41 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml
index 4ed3ff669b..4ed3ff669b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml
index d77c6d7852..d77c6d7852 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_notify_textbox.xml b/indra/newview/skins/default/xui/pl/panel_notify_textbox.xml
index e1668e1ef1..e1668e1ef1 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/pl/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_online_status_toast.xml b/indra/newview/skins/default/xui/pl/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/pl/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml b/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml
index 50353d4fba..50353d4fba 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml
index bf23ace58f..bf23ace58f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml
index 2f8c008f98..2f8c008f98 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_list.xml b/indra/newview/skins/default/xui/pl/panel_outfits_list.xml
index ed3057399d..ed3057399d 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml
index 5559c151e7..5559c151e7 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_people.xml b/indra/newview/skins/default/xui/pl/panel_people.xml
index ef52e2148b..ef52e2148b 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_people.xml
+++ b/indra/newview/skins/default/xui/pl/panel_people.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_pick_info.xml b/indra/newview/skins/default/xui/pl/panel_pick_info.xml
index 26afded795..26afded795 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/pl/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_picks.xml b/indra/newview/skins/default/xui/pl/panel_picks.xml
index 1ba4e76196..1ba4e76196 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_picks.xml
+++ b/indra/newview/skins/default/xui/pl/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_place_profile.xml b/indra/newview/skins/default/xui/pl/panel_place_profile.xml
index 2a4ffab36c..2a4ffab36c 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_places.xml b/indra/newview/skins/default/xui/pl/panel_places.xml
index d69d137d23..d69d137d23 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_places.xml
+++ b/indra/newview/skins/default/xui/pl/panel_places.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml
index 5e61f62691..5e61f62691 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml
index d53a99e8c1..d53a99e8c1 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
index 7fd1029e6a..7fd1029e6a 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml b/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
index 3affda57bf..3affda57bf 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index fff56eab6e..fff56eab6e 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
index f2beef091a..f2beef091a 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_move.xml b/indra/newview/skins/default/xui/pl/panel_preferences_move.xml
index 4c2df2c1f3..4c2df2c1f3 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml
index 5af2fed142..5af2fed142 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml
index fa0a5981a8..fa0a5981a8 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml b/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml
index 46f5ebb8e2..46f5ebb8e2 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml
index b5763e1291..b5763e1291 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_covenant.xml b/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
index 932e3631ab..932e3631ab 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_debug.xml b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
index c5b08383dc..c5b08383dc 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_estate.xml b/indra/newview/skins/default/xui/pl/panel_region_estate.xml
index 1b64827725..1b64827725 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_general.xml b/indra/newview/skins/default/xui/pl/panel_region_general.xml
index 601571f62e..601571f62e 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_terrain.xml b/indra/newview/skins/default/xui/pl/panel_region_terrain.xml
index f22b4a5989..f22b4a5989 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_region_texture.xml b/indra/newview/skins/default/xui/pl/panel_region_texture.xml
index c6ed2457f1..c6ed2457f1 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_texture.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_script_ed.xml b/indra/newview/skins/default/xui/pl/panel_script_ed.xml
index b05223aa0f..b05223aa0f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/pl/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml
index a52d8aed3d..a52d8aed3d 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml
index 070f025087..070f025087 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml b/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml
index 70a6e39412..70a6e39412 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/pl/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/pl/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_side_tray.xml b/indra/newview/skins/default/xui/pl/panel_side_tray.xml
index ff4ca23a4d..ff4ca23a4d 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_side_tray.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/pl/panel_side_tray_tab_caption.xml
index 95cd7c53dc..95cd7c53dc 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/pl/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml
index 9f7f7f1238..9f7f7f1238 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_status_bar.xml b/indra/newview/skins/default/xui/pl/panel_status_bar.xml
index 6aa0d27bb8..6aa0d27bb8 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_teleport_history.xml b/indra/newview/skins/default/xui/pl/panel_teleport_history.xml
index b43bd96536..b43bd96536 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/pl/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/pl/panel_teleport_history_item.xml
index f0fe28c4ce..f0fe28c4ce 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/pl/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_voice_effect.xml b/indra/newview/skins/default/xui/pl/panel_voice_effect.xml
index f8a076424f..f8a076424f 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/pl/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/pl/panel_volume_pulldown.xml
index 1611900700..1611900700 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/pl/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/pl/panel_world_map.xml b/indra/newview/skins/default/xui/pl/panel_world_map.xml
index 69f18be767..69f18be767 100644..100755
--- a/indra/newview/skins/default/xui/pl/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/pl/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/pl/role_actions.xml b/indra/newview/skins/default/xui/pl/role_actions.xml
index 57df2bc70f..57df2bc70f 100644..100755
--- a/indra/newview/skins/default/xui/pl/role_actions.xml
+++ b/indra/newview/skins/default/xui/pl/role_actions.xml
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml b/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
index cea903769c..cea903769c 100644..100755
--- a/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml b/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
index c2e50473a5..c2e50473a5 100644..100755
--- a/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml
index 9ec3c480b7..9ec3c480b7 100644..100755
--- a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml
index eb8c9cdbbb..eb8c9cdbbb 100644..100755
--- a/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index f6dec8536b..f6dec8536b 100644..100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
diff --git a/indra/newview/skins/default/xui/pl/teleport_strings.xml b/indra/newview/skins/default/xui/pl/teleport_strings.xml
index 0366c3fdbc..0366c3fdbc 100644..100755
--- a/indra/newview/skins/default/xui/pl/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/pl/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/pl/xui_version.xml b/indra/newview/skins/default/xui/pl/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/pl/xui_version.xml
+++ b/indra/newview/skins/default/xui/pl/xui_version.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml
index 299f88b22a..299f88b22a 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_about.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index f48280840c..f48280840c 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_activeim.xml b/indra/newview/skins/default/xui/pt/floater_activeim.xml
index 892ccdf974..892ccdf974 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/pt/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/pt/floater_animation_anim_preview.xml
index 05326d8594..05326d8594 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/pt/floater_animation_bvh_preview.xml
index 5cae581045..5cae581045 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_auction.xml b/indra/newview/skins/default/xui/pt/floater_auction.xml
index 074f7bf001..074f7bf001 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_auction.xml
+++ b/indra/newview/skins/default/xui/pt/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_autoreplace.xml b/indra/newview/skins/default/xui/pt/floater_autoreplace.xml
index ca813a8540..ca813a8540 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/pt/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_avatar.xml b/indra/newview/skins/default/xui/pt/floater_avatar.xml
index 168cdacae1..168cdacae1 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/pt/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
index 2b65952676..2b65952676 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml b/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
index 9473ee7ce9..9473ee7ce9 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_beacons.xml b/indra/newview/skins/default/xui/pt/floater_beacons.xml
index f8ae3cd2d8..f8ae3cd2d8 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/pt/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_build_options.xml b/indra/newview/skins/default/xui/pt/floater_build_options.xml
index acc462ea94..acc462ea94 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/pt/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml b/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml
index 8823d04b62..8823d04b62 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_bumps.xml b/indra/newview/skins/default/xui/pt/floater_bumps.xml
index 475d36c119..475d36c119 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/pt/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_contents.xml b/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
index b9e7a04412..b9e7a04412 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
index 2845a29e1d..2845a29e1d 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/pt/floater_buy_currency_html.xml
index 24e41ac8c8..24e41ac8c8 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index 258c95cc7d..258c95cc7d 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_object.xml b/indra/newview/skins/default/xui/pt/floater_buy_object.xml
index c465197c9a..c465197c9a 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml
index 9cda01c187..9cda01c187 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_camera.xml
+++ b/indra/newview/skins/default/xui/pt/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_chat_bar.xml b/indra/newview/skins/default/xui/pt/floater_chat_bar.xml
index 2eb2c94940..2eb2c94940 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/pt/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_choose_group.xml b/indra/newview/skins/default/xui/pt/floater_choose_group.xml
index 60f01a3733..60f01a3733 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/pt/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_color_picker.xml b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
index 4ea014335f..4ea014335f 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_conversation_log.xml b/indra/newview/skins/default/xui/pt/floater_conversation_log.xml
new file mode 100644
index 0000000000..ae7dd3c441
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="REGISTRO DE CONVERSA">
+ <panel name="buttons_panel">
+ <filter_editor label="Filtrar pessoas" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Opções de exibição/ordenação"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Ações em uma pessoa ou um grupo selecionado"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_conversation_preview.xml b/indra/newview/skins/default/xui/pt/floater_conversation_preview.xml
new file mode 100644
index 0000000000..97a2e8327c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="CONVERSA:">
+ <floater.string name="Title">
+ CONVERSA: [NAME]
+ </floater.string>
+ <text name="page_label" value="Página"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_critical.xml b/indra/newview/skins/default/xui/pt/floater_critical.xml
index 5d7fe0142b..5d7fe0142b 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_critical.xml
+++ b/indra/newview/skins/default/xui/pt/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/pt/floater_delete_env_preset.xml
index a8b5d8f67d..a8b5d8f67d 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/pt/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_destinations.xml b/indra/newview/skins/default/xui/pt/floater_destinations.xml
index df18698d2f..df18698d2f 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/pt/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_display_name.xml b/indra/newview/skins/default/xui/pt/floater_display_name.xml
index 8daa40cc23..8daa40cc23 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/pt/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml
index 9e25938986..9e25938986 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml
index 1f1fbcce7e..1f1fbcce7e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml
index 7bde22851e..7bde22851e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_environment_settings.xml b/indra/newview/skins/default/xui/pt/floater_environment_settings.xml
index 4055ba97ef..4055ba97ef 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_event.xml b/indra/newview/skins/default/xui/pt/floater_event.xml
index a8dc3f96d7..a8dc3f96d7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_event.xml
+++ b/indra/newview/skins/default/xui/pt/floater_event.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_fast_timers.xml b/indra/newview/skins/default/xui/pt/floater_fast_timers.xml
index eeb39583ef..eeb39583ef 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/pt/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_font_test.xml b/indra/newview/skins/default/xui/pt/floater_font_test.xml
index c506cdb12d..c506cdb12d 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/pt/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_gesture.xml b/indra/newview/skins/default/xui/pt/floater_gesture.xml
index 2e5b92aaf7..2e5b92aaf7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/pt/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_god_tools.xml b/indra/newview/skins/default/xui/pt/floater_god_tools.xml
index 8003a35d16..8003a35d16 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
index 1204fb93e2..1204fb93e2 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_help_browser.xml b/indra/newview/skins/default/xui/pt/floater_help_browser.xml
index 9cc8a0a6b2..9cc8a0a6b2 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/pt/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_how_to.xml b/indra/newview/skins/default/xui/pt/floater_how_to.xml
index 15c4946cb0..15c4946cb0 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/pt/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_hud.xml b/indra/newview/skins/default/xui/pt/floater_hud.xml
index e458913452..e458913452 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_hud.xml
+++ b/indra/newview/skins/default/xui/pt/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_im_container.xml b/indra/newview/skins/default/xui/pt/floater_im_container.xml
index 0fbb826a96..a1cea72b1e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/pt/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="CONVERSAS"/>
+<multi_floater name="floater_im_box" title="CONVERSAS">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Opções de exibição/ordenação"/>
+ <button name="add_btn" tool_tip="Iniciar uma nova conversa"/>
+ <button name="speak_btn" tool_tip="Fale com pessoas usando seu microfone"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Recolher/expandir esta lista"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Recolher este painel"/>
+ <text name="stub_textbox">
+ Esta conversa está em uma janela separada. [secondlife:/// Trazer de volta.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_im_session.xml b/indra/newview/skins/default/xui/pt/floater_im_session.xml
index 5543ffa41d..9f6a7a06ad 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/pt/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="Para" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] foi convidado para a conversa."/>
+ <floater.string name="multiple_participants_added" value="[NAME] foram convidados para a conversa."/>
+ <floater.string name="tooltip_to_separate_window" value="Mover esta conversa para uma janela separada"/>
+ <floater.string name="tooltip_to_main_window" value="Mover esta conversa para a janela principal"/>
+ <floater.string name="start_call_button_tooltip" value="Abrir conexão por voz"/>
+ <floater.string name="end_call_button_tooltip" value="Encerrar conexão por voz"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Recolher este painel"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Recolher lista de participantes"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Expandir a lista de participantes"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Opções de exibição/ordenação"/>
+ <menu_button name="gear_btn" tool_tip="Ações nas pessoas selecionadas"/>
+ <button name="add_btn" tool_tip="Adicionar alguém a esta conversa"/>
+ <button name="voice_call_btn" tool_tip="Abrir conexão por voz"/>
+ <button name="close_btn" tool_tip="Encerrar esta conversa"/>
+ <button name="expand_collapse_btn" tool_tip="Recolher/expandir este painel"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Traduzir bate-papo" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="Para" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Mostrar/ocultar painel de mensagens"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index 362a553d64..362a553d64 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_import_collada.xml b/indra/newview/skins/default/xui/pt/floater_import_collada.xml
index ad55d416c3..ad55d416c3 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/pt/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_incoming_call.xml b/indra/newview/skins/default/xui/pt/floater_incoming_call.xml
index 6344258fa0..1e86f847ad 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/pt/floater_incoming_call.xml
@@ -25,9 +25,9 @@
Sair do [CURRENT_CHAT] e entrar neste bate-papo de voz?
</floater.string>
<text name="question">
- Sair do [CURRENT_CHAT] e entrar neste bate-papo?
+ Se você atender, será desconectado de suas conversas de voz atuais.
</text>
- <button label="Aceitar" label_selected="Aceitar" name="Accept"/>
- <button label="Rejeitar" label_selected="Rejeitar" name="Reject"/>
- <button label="Enviar MI" name="Start IM"/>
+ <button label="Atender" label_selected="Atender" name="Accept"/>
+ <button label="Ignorar" label_selected="Ignorar" name="Reject"/>
+ <button label="Iniciar MI em vez disso" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_inspect.xml b/indra/newview/skins/default/xui/pt/floater_inspect.xml
index 6a00b1a628..6a00b1a628 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
index 8a8f1f5b34..8a8f1f5b34 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
index 71759abdc2..71759abdc2 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_joystick.xml b/indra/newview/skins/default/xui/pt/floater_joystick.xml
index 98d8c0e319..98d8c0e319 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/pt/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
index 9932318293..9932318293 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
index 7475bdd5b8..7475bdd5b8 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
index 5ad116ac8a..5ad116ac8a 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml b/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml
index 73f187f0e4..73f187f0e4 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_map.xml b/indra/newview/skins/default/xui/pt/floater_map.xml
index 8233f2a43f..8233f2a43f 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_map.xml
+++ b/indra/newview/skins/default/xui/pt/floater_map.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_media_browser.xml b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
index 7491218067..7491218067 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_media_settings.xml b/indra/newview/skins/default/xui/pt/floater_media_settings.xml
index 5af002c502..5af002c502 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
index efb5da4ace..efb5da4ace 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/pt/floater_merchant_outbox.xml
index bb6113671b..bb6113671b 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/pt/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_model_preview.xml b/indra/newview/skins/default/xui/pt/floater_model_preview.xml
index 8194278b16..8194278b16 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_moveview.xml b/indra/newview/skins/default/xui/pt/floater_moveview.xml
index 728357a400..728357a400 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
index 97fbd35fcc..97fbd35fcc 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_my_appearance.xml b/indra/newview/skins/default/xui/pt/floater_my_appearance.xml
index 38e06d2aed..38e06d2aed 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/pt/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_my_inventory.xml b/indra/newview/skins/default/xui/pt/floater_my_inventory.xml
index 71d8682758..71d8682758 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_object_weights.xml b/indra/newview/skins/default/xui/pt/floater_object_weights.xml
index 45bd1c7127..45bd1c7127 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/pt/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_openobject.xml b/indra/newview/skins/default/xui/pt/floater_openobject.xml
index 0dc2852bac..0dc2852bac 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/pt/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml
index 60d4d3dc5c..60d4d3dc5c 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml b/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
index 35afde7612..35afde7612 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/pt/floater_pathfinding_characters.xml
index 05784115e7..05784115e7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/pt/floater_pathfinding_console.xml
index 182f2513e0..d04cf2a173 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Exibir:
</text>
- <check_box label="Mundo" name="show_world"/>
+ <check_box label="Testar" name="show_world"/>
<check_box label="Apenas móveis" name="show_world_movables_only"/>
<check_box label="Navmesh" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
index e0c60679dd..e0c60679dd 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml
index 8094ad376c..8094ad376c 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
index a5579f03bf..a5579f03bf 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_people.xml b/indra/newview/skins/default/xui/pt/floater_people.xml
index 10a516ee36..10a516ee36 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_people.xml
+++ b/indra/newview/skins/default/xui/pt/floater_people.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml
index 33a0d6a456..33a0d6a456 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_picks.xml b/indra/newview/skins/default/xui/pt/floater_picks.xml
index 9766196319..9766196319 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_picks.xml
+++ b/indra/newview/skins/default/xui/pt/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_places.xml b/indra/newview/skins/default/xui/pt/floater_places.xml
index 12c6548205..12c6548205 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_places.xml
+++ b/indra/newview/skins/default/xui/pt/floater_places.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_post_process.xml b/indra/newview/skins/default/xui/pt/floater_post_process.xml
index d4f2e96539..d4f2e96539 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/pt/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preferences.xml b/indra/newview/skins/default/xui/pt/floater_preferences.xml
index c89a61d9b1..c89a61d9b1 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/pt/floater_preferences_proxy.xml
index 3aaee2d4a7..3aaee2d4a7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
index 19474d8099..19474d8099 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
index 089694608b..089694608b 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml b/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
index d094c1b63a..d094c1b63a 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_sound.xml b/indra/newview/skins/default/xui/pt/floater_preview_sound.xml
index 7c5a1538f2..7c5a1538f2 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_texture.xml b/indra/newview/skins/default/xui/pt/floater_preview_texture.xml
index 6f39635240..6f39635240 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml b/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml
index b078962feb..b078962feb 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_publish_classified.xml b/indra/newview/skins/default/xui/pt/floater_publish_classified.xml
index de3417ea14..de3417ea14 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/pt/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_region_debug_console.xml b/indra/newview/skins/default/xui/pt/floater_region_debug_console.xml
index d3b5df2d74..d3b5df2d74 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/pt/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_region_info.xml b/indra/newview/skins/default/xui/pt/floater_region_info.xml
index cc5e0d59d4..cc5e0d59d4 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/pt/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
index 08413a9231..08413a9231 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_debug.xml b/indra/newview/skins/default/xui/pt/floater_script_debug.xml
index 6d1d981ca7..6d1d981ca7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/pt/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_limits.xml b/indra/newview/skins/default/xui/pt/floater_script_limits.xml
index 64a8a49c85..64a8a49c85 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_preview.xml b/indra/newview/skins/default/xui/pt/floater_script_preview.xml
index 5be866d052..5be866d052 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_queue.xml b/indra/newview/skins/default/xui/pt/floater_script_queue.xml
index 5fb6dd1c35..5fb6dd1c35 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_script_search.xml b/indra/newview/skins/default/xui/pt/floater_script_search.xml
index 8878590a4e..8878590a4e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/pt/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_search.xml b/indra/newview/skins/default/xui/pt/floater_search.xml
index 3509cb786d..3509cb786d 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_search.xml
+++ b/indra/newview/skins/default/xui/pt/floater_search.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_select_key.xml b/indra/newview/skins/default/xui/pt/floater_select_key.xml
index 7264a5a713..7264a5a713 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/pt/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_sell_land.xml b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
index 014ae0845e..014ae0845e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_settings_debug.xml b/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
index 83f7b24572..83f7b24572 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
index 4110e69068..4110e69068 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_sound_devices.xml b/indra/newview/skins/default/xui/pt/floater_sound_devices.xml
index 948d727540..948d727540 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_sound_preview.xml b/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
index e62260c2e3..e62260c2e3 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_spellcheck.xml b/indra/newview/skins/default/xui/pt/floater_spellcheck.xml
index 02bb154d26..02bb154d26 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/pt/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/pt/floater_spellcheck_import.xml
index f4e95bddec..f4e95bddec 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/pt/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_stats.xml b/indra/newview/skins/default/xui/pt/floater_stats.xml
index be53624145..be53624145 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_stats.xml
+++ b/indra/newview/skins/default/xui/pt/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_sys_well.xml b/indra/newview/skins/default/xui/pt/floater_sys_well.xml
index 38beec022c..38beec022c 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_telehub.xml b/indra/newview/skins/default/xui/pt/floater_telehub.xml
index 6b35d3f919..6b35d3f919 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/pt/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/pt/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/pt/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/pt/floater_test_text_vertical_aligment.xml
index dd282bf1fc..dd282bf1fc 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/pt/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
index a75cf34a94..ba4ef0afde 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
@@ -19,7 +19,7 @@
<button label="Padrão" label_selected="Padrão" name="Default"/>
<button label="Branco" label_selected="Branco" name="Blank"/>
<button label="Nenhum" label_selected="Nenhum" name="None"/>
- <check_box initial_value="true" label="Visualização em tempo real" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Inscrever-se agora" name="apply_immediate_check"/>
<text name="preview_disabled" value="Visualização desativada"/>
<filter_editor label="Filtrar texturas" name="inventory search editor"/>
<check_box initial_value="false" label="Exibir pastas" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
index 0e897aea09..0e897aea09 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml
index 8c245c582e..8c245c582e 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_top_objects.xml b/indra/newview/skins/default/xui/pt/floater_top_objects.xml
index ef682714c6..ef682714c6 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/pt/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_tos.xml b/indra/newview/skins/default/xui/pt/floater_tos.xml
index c4954cb61f..c4954cb61f 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_toybox.xml b/indra/newview/skins/default/xui/pt/floater_toybox.xml
index 3677c3b1f5..3677c3b1f5 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/pt/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_translation_settings.xml b/indra/newview/skins/default/xui/pt/floater_translation_settings.xml
index 1955599a81..1955599a81 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_url_entry.xml b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
index 48af8de363..48af8de363 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/pt/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..de7aa2df12
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="VOLUME DO BATE-PAPO DE VOZ">
+ <slider label="Bate-papo de voz" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml
index 745a7d0e00..745a7d0e00 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_voice_effect.xml b/indra/newview/skins/default/xui/pt/floater_voice_effect.xml
index b29ca3d699..71d3c33ae5 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/pt/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Lugares" name="voice_effects" title="EFEITOS DE VOZ">
+<floater label="Lugares" name="voice_effects" title="AMOSTRA DE DISTORÇÃO DE VOZ">
<string name="no_voice_effect">
(Não distorcer voz)
</string>
diff --git a/indra/newview/skins/default/xui/pt/floater_voice_volume.xml b/indra/newview/skins/default/xui/pt/floater_voice_volume.xml
new file mode 100644
index 0000000000..dae47a99ae
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="VOLUME DE VOZ">
+ <slider name="volume_slider" tool_tip="Volume de voz" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_web_content.xml b/indra/newview/skins/default/xui/pt/floater_web_content.xml
index 5101579c6f..5101579c6f 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/pt/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/pt/floater_whitelist_entry.xml
index 865d939d24..865d939d24 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/pt/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_window_size.xml b/indra/newview/skins/default/xui/pt/floater_window_size.xml
index 7deb799bd7..7deb799bd7 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/pt/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml
index 490a975e80..490a975e80 100644..100755
--- a/indra/newview/skins/default/xui/pt/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/pt/inspect_avatar.xml b/indra/newview/skins/default/xui/pt/inspect_avatar.xml
index 19244d9b27..19244d9b27 100644..100755
--- a/indra/newview/skins/default/xui/pt/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/pt/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/pt/inspect_group.xml b/indra/newview/skins/default/xui/pt/inspect_group.xml
index 889d35f269..889d35f269 100644..100755
--- a/indra/newview/skins/default/xui/pt/inspect_group.xml
+++ b/indra/newview/skins/default/xui/pt/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/pt/inspect_object.xml b/indra/newview/skins/default/xui/pt/inspect_object.xml
index b72de7038d..b72de7038d 100644..100755
--- a/indra/newview/skins/default/xui/pt/inspect_object.xml
+++ b/indra/newview/skins/default/xui/pt/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/pt/inspect_remote_object.xml b/indra/newview/skins/default/xui/pt/inspect_remote_object.xml
index 789194bf2e..789194bf2e 100644..100755
--- a/indra/newview/skins/default/xui/pt/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/pt/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/pt/language_settings.xml b/indra/newview/skins/default/xui/pt/language_settings.xml
index 8799475ace..8799475ace 100644..100755
--- a/indra/newview/skins/default/xui/pt/language_settings.xml
+++ b/indra/newview/skins/default/xui/pt/language_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/pt/menu_add_wearable_gear.xml
index 4b81276ab3..4b81276ab3 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
index cfd69158bc..cfd69158bc 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
index 5b32784c32..5b32784c32 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
index beba969b7e..beba969b7e 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
index a4a26144c7..a4a26144c7 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
index e84dcb093d..e84dcb093d 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_cof_attachment.xml b/indra/newview/skins/default/xui/pt/menu_cof_attachment.xml
index 527e3af3c9..527e3af3c9 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/pt/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_cof_body_part.xml b/indra/newview/skins/default/xui/pt/menu_cof_body_part.xml
index 704fd226eb..704fd226eb 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/pt/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml b/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml
index 051323ae6a..051323ae6a 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_cof_gear.xml b/indra/newview/skins/default/xui/pt/menu_cof_gear.xml
index 8716992a5e..b59895573e 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Gear COF">
+<toggleable_menu name="Gear COF">
<menu label="Roupas novas" name="COF.Gear.New_Clothes"/>
- <menu label="Nova parte do corpo" name="COF.Geear.New_Body_Parts"/>
-</menu>
+ <menu label="Novas partes do corpo" name="COF.Gear.New_Body_Parts"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_conversation.xml b/indra/newview/skins/default/xui/pt/menu_conversation.xml
new file mode 100644
index 0000000000..01316b887d
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Encerrar conversa" name="close_conversation"/>
+ <menu_item_call label="Abrir conversa de voz" name="open_voice_conversation"/>
+ <menu_item_call label="Desconectar de voz" name="disconnect_from_voice"/>
+ <menu_item_call label="Exibir perfil" name="view_profile"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Oferecer teletransporte" name="offer_teleport"/>
+ <menu_item_call label="Chamada de voz" name="voice_call"/>
+ <menu_item_call label="Histórico de bate-papo..." name="chat_history"/>
+ <menu_item_call label="Adicionar amigo" name="add_friend"/>
+ <menu_item_call label="Remover amigo" name="remove_friend"/>
+ <menu_item_call label="Remover amigos" name="remove_friends"/>
+ <menu_item_call label="Convidar para entrar no grupo..." name="invite_to_group"/>
+ <menu_item_call label="Mais zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartilhar" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_check label="Bloquear voz" name="block_unblock"/>
+ <menu_item_check label="Bloquear texto" name="MuteText"/>
+ <menu_item_call label="Perfil do grupo" name="group_profile"/>
+ <menu_item_call label="Ativar grupo" name="activate_group"/>
+ <menu_item_call label="Sair do grupo" name="leave_group"/>
+ <context_menu label="Opções do moderador &gt;" name="Moderator Options">
+ <menu_item_check label="Pode bater papo por escrito" name="AllowTextChat"/>
+ <menu_item_call label="Silenciar este participante" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Desfazer silenciar deste participante" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Silenciar todos" name="ModerateVoiceMute"/>
+ <menu_item_call label="Desfazer silenciar para todos" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/pt/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..616e6db46e
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="MI..." name="IM"/>
+ <menu_item_call label="Chamada de voz..." name="Call"/>
+ <menu_item_call label="Abrir histórico de bate-papo..." name="Chat history"/>
+ <menu_item_call label="Exibir perfil" name="View Profile"/>
+ <menu_item_call label="Oferecer teletransporte" name="teleport"/>
+ <menu_item_call label="Adicionar amigo" name="add_friend"/>
+ <menu_item_call label="Remover amigo" name="remove_friend"/>
+ <menu_item_call label="Convidar para entrar no grupo..." name="Invite"/>
+ <menu_item_call label="Mapa" name="Map"/>
+ <menu_item_call label="Compartilhar" name="Share"/>
+ <menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Bloquear/desbloquear" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/pt/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..cab81175a0
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Ordenar por nome" name="sort_by_name"/>
+ <menu_item_check label="Ordenar por data" name="sort_by_date"/>
+ <menu_item_check label="Ordenar com amigos acima" name="sort_by_friends"/>
+ <menu_item_call label="Exibir histórico de Bate-papo local..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_edit.xml b/indra/newview/skins/default/xui/pt/menu_edit.xml
index ff431c9a21..ff431c9a21 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_edit.xml
+++ b/indra/newview/skins/default/xui/pt/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_favorites.xml b/indra/newview/skins/default/xui/pt/menu_favorites.xml
index 062820fbca..062820fbca 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/pt/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_gesture_gear.xml b/indra/newview/skins/default/xui/pt/menu_gesture_gear.xml
index 70d8ae7a8e..70d8ae7a8e 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_group_plus.xml b/indra/newview/skins/default/xui/pt/menu_group_plus.xml
index 1083845d68..1083845d68 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/pt/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_hide_navbar.xml b/indra/newview/skins/default/xui/pt/menu_hide_navbar.xml
index 5f6bd096a8..5f6bd096a8 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/pt/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_im_conversation.xml b/indra/newview/skins/default/xui/pt/menu_im_conversation.xml
new file mode 100644
index 0000000000..a8434dc336
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Exibir perfil" name="View Profile"/>
+ <menu_item_call label="Adicionar amigo" name="Add Friend"/>
+ <menu_item_call label="Remover amigo" name="remove_friend"/>
+ <menu_item_call label="Oferecer teletransporte" name="offer_teleport"/>
+ <menu_item_call label="Convidar para entrar no grupo..." name="invite_to_group"/>
+ <menu_item_call label="Histórico de bate-papo..." name="chat_history"/>
+ <menu_item_call label="Mais zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartilhar" name="Share"/>
+ <menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Bloquear voz" name="Block/Unblock"/>
+ <menu_item_check label="Bloquear texto" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/pt/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..398b890f66
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Exibição compacta" name="compact_view"/>
+ <menu_item_check label="Exibição expandida" name="expanded_view"/>
+ <menu_item_check label="Mostrar hora" name="IMShowTime"/>
+ <menu_item_check label="Mostrar nomes em conversas individuais" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/pt/menu_imchiclet_adhoc.xml
index ead949ba13..ead949ba13 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/pt/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/pt/menu_imchiclet_group.xml
index dd177d1b8d..dd177d1b8d 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/pt/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/pt/menu_imchiclet_p2p.xml
index d821b3ded0..d821b3ded0 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/pt/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
index 2b5aa7508b..2b5aa7508b 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_object_gear.xml
index 7e271904e9..7e271904e9 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
index e8fafa58a9..e8fafa58a9 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml
index c404719c95..c404719c95 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index a3a648eb34..a3a648eb34 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory_add.xml b/indra/newview/skins/default/xui/pt/menu_inventory_add.xml
index 7a7ebc50af..7a7ebc50af 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml
index 6faea517fe..6faea517fe 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_land.xml b/indra/newview/skins/default/xui/pt/menu_land.xml
index 9182ce321a..9182ce321a 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_land.xml
+++ b/indra/newview/skins/default/xui/pt/menu_land.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_landmark.xml b/indra/newview/skins/default/xui/pt/menu_landmark.xml
index 6accfebee7..6accfebee7 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/pt/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml
index be94ad49db..be94ad49db 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_login.xml
+++ b/indra/newview/skins/default/xui/pt/menu_login.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_media_ctrl.xml b/indra/newview/skins/default/xui/pt/menu_media_ctrl.xml
index ac84b02870..ac84b02870 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/pt/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_mini_map.xml b/indra/newview/skins/default/xui/pt/menu_mini_map.xml
index 6a3fe55de5..6a3fe55de5 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/pt/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/pt/menu_model_import_gear_default.xml
index 079f876add..079f876add 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/pt/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_navbar.xml b/indra/newview/skins/default/xui/pt/menu_navbar.xml
index 57c1471de3..57c1471de3 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/pt/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_nearby_chat.xml b/indra/newview/skins/default/xui/pt/menu_nearby_chat.xml
index f1ea83c837..f1ea83c837 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/pt/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_notification_well_button.xml b/indra/newview/skins/default/xui/pt/menu_notification_well_button.xml
index 43ad4134ec..43ad4134ec 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/pt/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_object.xml b/indra/newview/skins/default/xui/pt/menu_object.xml
index 28dd9febe2..28dd9febe2 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_object.xml
+++ b/indra/newview/skins/default/xui/pt/menu_object.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_object_icon.xml b/indra/newview/skins/default/xui/pt/menu_object_icon.xml
index 7af760a6ee..df224a88fa 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/pt/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Perfil do objeto..." name="Object Profile"/>
<menu_item_call label="Bloquear..." name="Block"/>
+ <menu_item_call label="Mostrar no mapa" name="show_on_map"/>
+ <menu_item_call label="Teletransportar para lugar do objeto" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml b/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml
index 894f1d741c..3602bdaac4 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Novo cabelo" name="New Hair"/>
<menu_item_call label="Novos olhos" name="New Eyes"/>
</menu>
+ <menu_item_call label="Expandir todas as pastas" name="expand"/>
+ <menu_item_call label="Recolher todas as pastas" name="collapse"/>
<menu_item_call label="Renomear look" name="rename"/>
<menu_item_call label="Excluir visual" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml b/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml
index 8db5e405b3..8db5e405b3 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_participant_list.xml b/indra/newview/skins/default/xui/pt/menu_participant_list.xml
index 01f1d4ef80..01f1d4ef80 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/pt/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_participant_view.xml b/indra/newview/skins/default/xui/pt/menu_participant_view.xml
new file mode 100644
index 0000000000..b61108cf54
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Ordenar conversas por tipo" name="sort_sessions_by_type"/>
+ <menu_item_check label="Ordenar conversas por nome" name="sort_sessions_by_name"/>
+ <menu_item_check label="Ordenar conversas por atividade recente" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Ordenar participantes por nome" name="sort_participants_by_name"/>
+ <menu_item_check label="Ordenar participantes por atividade recente" name="sort_participants_by_recent"/>
+ <menu_item_call label="Preferências de bate-papo..." name="chat_preferences"/>
+ <menu_item_call label="Preferências de privacidade..." name="privacy_preferences"/>
+ <menu_item_check label="Registro de conversas..." name="Conversation"/>
+ <menu_item_check label="Traduzir Bate-papo local" name="Translate_chat"/>
+ <menu_item_check label="Configurações de tradução..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/pt/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..8bbde9b38c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Desbloquear" name="unblock"/>
+ <menu_item_call label="Perfil..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/pt/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..e69935995c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Bloquear residente por nome..." name="block_resident_by_name"/>
+ <menu_item_call label="Bloquear objeto por nome" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/pt/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..b80d683c7b
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Ordenar por nome" name="sort_by_name"/>
+ <menu_item_check label="Ordenar por tipo" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_friends_view.xml b/indra/newview/skins/default/xui/pt/menu_people_friends_view.xml
new file mode 100644
index 0000000000..46caeae310
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar por nome" name="sort_name"/>
+ <menu_item_check label="Ordenar por status" name="sort_status"/>
+ <menu_item_check label="Exibir ícones de pessoas" name="view_icons"/>
+ <menu_item_check label="Exibir permissões concedidas" name="view_permissions"/>
+ <menu_item_check label="Exibir registro de conversas..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml
index e7c325010f..e7c325010f 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_people_groups.xml b/indra/newview/skins/default/xui/pt/menu_people_groups.xml
index 9a924ad7b9..2ba7af17cd 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Ver dados" name="View Info"/>
<menu_item_call label="Bate-papo" name="Chat"/>
- <menu_item_call label="Ligar" name="Call"/>
+ <menu_item_call label="Chamada de voz" name="Call"/>
<menu_item_call label="Ativar" name="Activate"/>
<menu_item_call label="Sair" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_groups_view.xml b/indra/newview/skins/default/xui/pt/menu_people_groups_view.xml
new file mode 100644
index 0000000000..637e591ae1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Mostrar ícones de grupos" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml
index 86a9d2263f..86a9d2263f 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_people_nearby.xml b/indra/newview/skins/default/xui/pt/menu_people_nearby.xml
index 7c720f262b..51464fed68 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Ver perfil" name="View Profile"/>
- <menu_item_call label="Adicionar amigo..." name="Add Friend"/>
- <menu_item_call label="Remover amigo..." name="Remove Friend"/>
- <menu_item_call label="MI" name="IM"/>
- <menu_item_call label="Ligar" name="Call"/>
- <menu_item_call label="Mapa" name="Map"/>
- <menu_item_call label="Compartilhar" name="Share"/>
- <menu_item_call label="Pagar" name="Pay"/>
- <menu_item_check label="Bloquear/desbloquear" name="Block/Unblock"/>
- <menu_item_call label="Teletransportar?" name="teleport"/>
+ <menu_item_call label="Exibir perfil" name="view_profile"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Oferecer teletransporte" name="offer_teleport"/>
+ <menu_item_call label="Chamada de voz" name="voice_call"/>
+ <menu_item_call label="Exibir histórico de bate-papo..." name="chat_history"/>
+ <menu_item_call label="Adicionar amigo" name="add_friend"/>
+ <menu_item_call label="Remover amigo" name="remove_friend"/>
+ <menu_item_call label="Convidar para entrar no grupo..." name="invite_to_group"/>
+ <menu_item_call label="Mais zoom" name="zoom_in"/>
+ <menu_item_call label="Mapa" name="map"/>
+ <menu_item_call label="Compartilhar" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_check label="Bloquear/desbloquear" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/pt/menu_people_nearby_multiselect.xml
index 79edb96b1c..7f3c6ace27 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Adicionar amigo..." name="Add Friends"/>
- <menu_item_call label="Remover amigo..." name="Remove Friend"/>
- <menu_item_call label="MI" name="IM"/>
- <menu_item_call label="Ligar" name="Call"/>
- <menu_item_call label="Compartilhar" name="Share"/>
- <menu_item_call label="Pagar" name="Pay"/>
- <menu_item_call label="Teletransportar?" name="teleport"/>
+ <menu_item_call label="Adicionar amigo..." name="add_friends"/>
+ <menu_item_call label="Remover amigo..." name="remove_friends"/>
+ <menu_item_call label="MI" name="im"/>
+ <menu_item_call label="Ligar" name="call"/>
+ <menu_item_call label="Compartilhar" name="share"/>
+ <menu_item_call label="Pagar" name="pay"/>
+ <menu_item_call label="Oferecer teletransporte" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/pt/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..bce015e732
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar por conversas mais recentes" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Ordenar por nome" name="sort_name"/>
+ <menu_item_check label="Ordenar por distância" name="sort_distance"/>
+ <menu_item_check label="Exibir ícones de pessoas" name="view_icons"/>
+ <menu_item_check label="Exibir mapa" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml
index 0d32d58de4..0d32d58de4 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_people_recent_view.xml b/indra/newview/skins/default/xui/pt/menu_people_recent_view.xml
new file mode 100644
index 0000000000..e4b368fe14
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ordenar por mais recente" name="sort_most"/>
+ <menu_item_check label="Ordenar por nome" name="sort_name"/>
+ <menu_item_check label="Exibir ícones de pessoas" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml
index f3b89e01cd..f3b89e01cd 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_picks.xml b/indra/newview/skins/default/xui/pt/menu_picks.xml
index 8b9e10fc02..8b9e10fc02 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_picks.xml
+++ b/indra/newview/skins/default/xui/pt/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_picks_plus.xml b/indra/newview/skins/default/xui/pt/menu_picks_plus.xml
index 95a7c05262..95a7c05262 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/pt/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_place.xml b/indra/newview/skins/default/xui/pt/menu_place.xml
index 282ea20a7a..282ea20a7a 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_place.xml
+++ b/indra/newview/skins/default/xui/pt/menu_place.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_place_add_button.xml b/indra/newview/skins/default/xui/pt/menu_place_add_button.xml
index d099d04f8d..d099d04f8d 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/pt/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/pt/menu_places_gear_folder.xml
index 7cba70a110..7cba70a110 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/pt/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/pt/menu_places_gear_landmark.xml
index fec0911fcf..fec0911fcf 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/pt/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_profile_overflow.xml b/indra/newview/skins/default/xui/pt/menu_profile_overflow.xml
index d41ecbd755..d41ecbd755 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/pt/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_save_outfit.xml b/indra/newview/skins/default/xui/pt/menu_save_outfit.xml
index 61c6b9202f..61c6b9202f 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/pt/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml b/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml
index ccf3878e14..ccf3878e14 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_slurl.xml b/indra/newview/skins/default/xui/pt/menu_slurl.xml
index 6d4c84fc3c..6d4c84fc3c 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/pt/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/pt/menu_teleport_history_gear.xml
index f034509be8..f034509be8 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
index ec1e7a0950..ec1e7a0950 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/pt/menu_teleport_history_tab.xml
index 6a633cf74c..6a633cf74c 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/pt/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_text_editor.xml b/indra/newview/skins/default/xui/pt/menu_text_editor.xml
index a26b50e1c2..a26b50e1c2 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/pt/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_toolbars.xml b/indra/newview/skins/default/xui/pt/menu_toolbars.xml
index b58a1a6e4f..b58a1a6e4f 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/pt/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_topinfobar.xml b/indra/newview/skins/default/xui/pt/menu_topinfobar.xml
index d9347950b1..d9347950b1 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/pt/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_agent.xml b/indra/newview/skins/default/xui/pt/menu_url_agent.xml
index ba5e055124..aa0a426405 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostrar perfil de residente" name="show_agent"/>
+ <menu_item_call label="Exibir perfil" name="show_agent"/>
+ <menu_item_call label="Enviar MI..." name="send_im"/>
+ <menu_item_call label="Adicionar amigo..." name="add_friend"/>
<menu_item_call label="Copiar nome para área de transferência" name="url_copy_label"/>
<menu_item_call label="Copiar SLurl para área de transferência" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_url_group.xml b/indra/newview/skins/default/xui/pt/menu_url_group.xml
index 5b67a69c9a..5b67a69c9a 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_http.xml b/indra/newview/skins/default/xui/pt/menu_url_http.xml
index e53a2572b8..e53a2572b8 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_inventory.xml b/indra/newview/skins/default/xui/pt/menu_url_inventory.xml
index 45c14355d0..45c14355d0 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_map.xml b/indra/newview/skins/default/xui/pt/menu_url_map.xml
index ba114cccaa..ba114cccaa 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_objectim.xml b/indra/newview/skins/default/xui/pt/menu_url_objectim.xml
index c197444181..247a92567a 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Mostrar informações sobre o objeto" name="show_object"/>
+ <menu_item_call label="Perfil do objeto..." name="show_object"/>
<menu_item_call label="Mostrar no mapa" name="show_on_map"/>
<menu_item_call label="Teletransportar para lugar do objeto" name="teleport_to_object"/>
<menu_item_call label="Copiar nome do objeto para área de transferência" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_url_parcel.xml b/indra/newview/skins/default/xui/pt/menu_url_parcel.xml
index 6cc668bfd3..6cc668bfd3 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_slapp.xml b/indra/newview/skins/default/xui/pt/menu_url_slapp.xml
index d0784149ac..d0784149ac 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_slurl.xml b/indra/newview/skins/default/xui/pt/menu_url_slurl.xml
index 7216ccf0b3..7216ccf0b3 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_url_teleport.xml b/indra/newview/skins/default/xui/pt/menu_url_teleport.xml
index f007425646..f007425646 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/pt/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml
index ca378c1b58..703df84efb 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Parar minha animação" name="Stop Animating My Avatar"/>
<menu_item_call label="Andar/correr/voar..." name="Walk / run / fly"/>
</menu>
- <menu label="Status" name="Status">
- <menu_item_call label="Ausente" name="Set Away"/>
- <menu_item_call label="Ocupado" name="Set Busy"/>
- </menu>
+ <menu label="Status" name="Status"/>
<menu_item_call label="Comprar L$..." name="Buy and Sell L$"/>
<menu_item_call label="Caixa de saída do lojista..." name="MerchantOutbox"/>
<menu_item_call label="Painel da conta..." name="Manage My Account">
@@ -32,14 +29,18 @@
<menu_item_call label="Sair do [APP_NAME]" name="Quit"/>
</menu>
<menu label="Comunicar" name="Communicate">
- <menu_item_check label="Bate-papo..." name="Nearby Chat"/>
+ <menu_item_check label="Conversas..." name="Conversations"/>
+ <menu_item_check label="Bate-papo local..." name="Nearby Chat"/>
<menu_item_check label="Falar" name="Speak"/>
- <menu_item_check label="Configurações de voz..." name="Nearby Voice"/>
- <menu_item_check label="Distorção de voz..." name="ShowVoice"/>
+ <menu label="Distorção de voz" name="VoiceMorphing">
+ <menu_item_check label="Não distorcer voz" name="NoVoiceMorphing"/>
+ <menu_item_check label="Visualizar..." name="Preview"/>
+ <menu_item_call label="Assinar..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Gestos..." name="Gestures"/>
- <menu_item_call label="Amigos" name="My Friends"/>
- <menu_item_call label="Grupos" name="My Groups"/>
- <menu_item_call label="Pessoas próximas" name="Active Speakers"/>
+ <menu_item_check label="Amigos" name="My Friends"/>
+ <menu_item_check label="Grupos" name="My Groups"/>
+ <menu_item_check label="Pessoas próximas" name="Active Speakers"/>
<menu_item_call label="Lista de bloqueados" name="Block List"/>
</menu>
<menu label="Mundo" name="World">
@@ -115,7 +116,6 @@
<menu_item_call label="Comprar" name="Menu Object Buy"/>
<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="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>
@@ -130,6 +130,7 @@
<menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Personagens..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Visualização/teste..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Recarregar região" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Opções" name="Options">
<menu_item_check label="Mostrar permissões avançadas" name="DebugPermissions"/>
@@ -159,6 +160,13 @@
<menu label="Ajuda" name="Help">
<menu_item_call label="Como..." name="How To"/>
<menu_item_call label="[SECOND_LIFE] Ajuda" name="Second Life Help"/>
+ <menu_item_call label="Guia do usuário" name="User’s guide"/>
+ <menu_item_call label="Base de conhecimento" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Fóruns da comunidade" name="Community Forums"/>
+ <menu_item_call label="Portal de suporte" name="Support portal"/>
+ <menu_item_call label="Notícias do [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs do [SECOND_LIFE]" name="Second Life Blogs"/>
<menu_item_call label="Denunciar abuso" name="Report Abuse"/>
<menu_item_call label="Relatar bug" name="Report Bug"/>
<menu_item_call label="Sobre [APP_NAME]" name="About Second Life"/>
@@ -336,9 +344,14 @@
<menu_item_call label="Toggle Character Geometry" name="Toggle Character Geometry"/>
<menu_item_check label="Allow Select Avatar" name="Allow Select Avatar"/>
</menu>
+ <menu label="Velocidade de animação" name="Animation Speed">
+ <menu_item_call label="Todas as animações 10% mais rápidas" name="All Animations 10 Faster"/>
+ <menu_item_call label="Todas as animações 10% mais lentas" name="All Animations 10 Slower"/>
+ <menu_item_call label="Redefinir todas as velocidades de animação" name="Reset All Animation Speed"/>
+ <menu_item_check label="Animações em câmera lenta" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Force Params to Default" name="Force Params to Default"/>
<menu_item_check label="Dados da animação" name="Animation Info"/>
- <menu_item_check label="Mostrar animação de movimento" name="Slow Motion Animations"/>
<menu_item_check label="Disable Level Of Detail" name="Disable LOD"/>
<menu_item_check label="Show Collision Skeleton" name="Show Collision Skeleton"/>
<menu_item_check label="Display Agent Target" name="Display Agent Target"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml
index 2487f6779f..2487f6779f 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml b/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml
index 75dca703cb..75dca703cb 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml b/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml
index 4e6e52ebc7..4e6e52ebc7 100644..100755
--- a/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/pt/mime_types.xml b/indra/newview/skins/default/xui/pt/mime_types.xml
index f9c0496eea..f9c0496eea 100644..100755
--- a/indra/newview/skins/default/xui/pt/mime_types.xml
+++ b/indra/newview/skins/default/xui/pt/mime_types.xml
diff --git a/indra/newview/skins/default/xui/pt/mime_types_linux.xml b/indra/newview/skins/default/xui/pt/mime_types_linux.xml
index 789843cbba..789843cbba 100644..100755
--- a/indra/newview/skins/default/xui/pt/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/pt/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/pt/mime_types_mac.xml b/indra/newview/skins/default/xui/pt/mime_types_mac.xml
index 34b40e94ab..34b40e94ab 100644..100755
--- a/indra/newview/skins/default/xui/pt/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/pt/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index ff7382bf80..d9f5e48745 100644..100755
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -510,6 +510,24 @@ Consultar [_URL] para mais informações?
</url>
<usetemplate ignoretext="Meu driver gráfico está desatualizado" name="okcancelignore" notext="Não" yestext="Sim"/>
</notification>
+ <notification name="AMDOldDriver">
+ Provavelmente, há um driver mais recente para o seu chip gráfico. A atualização dos drivers gráficos pode melhorar significativamente o desempenho.
+
+ Visitar [_URL] para verificar se há atualizações do driver?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Meu driver gráfico está desatualizado" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Provavelmente, há um driver mais recente para o seu chip gráfico. A atualização dos drivers gráficos pode melhorar significativamente o desempenho.
+
+ Visitar [_URL] para verificar se há atualizações do driver?
+ <url name="url">
+ http://www.nvidia.com.br/Download/index.aspx?lang=br
+ </url>
+ <usetemplate ignoretext="Meu driver gráfico está desatualizado" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
<notification name="UnknownGPU">
A placa de vídeo do seu sistema não é reconhecida pelo [APP_NAME].
Isto acontece quando novos hardwares que ainda não foram testados no [APP_NAME]. Talvez isso não cause problemas, mas pode ser preciso checar as configurações de vídeo.
@@ -1533,10 +1551,13 @@ Para instalar a atualização, será preciso reiniciar o [APP_NAME].
Não é possível oferecer amizade neste momento. Por favor, tente novamente em breve.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- Modo ocupado ativado.
-O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua resposta de modo ocupado. Todas as ofertas de teletransporte serão recusadas. Todas as ofertas de inventário serão colocadas na Lixeira.
- <usetemplate ignoretext="Passar meu status para o modo ocupado" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Não perturbe está ativado. Você não será notificado de comunicações recebidas.
+
+- Outros residentes receberão a sua resposta de Não perturbe (definida em Preferências &gt; Geral).
+- As ofertas de teletransporte serão recusadas.
+- Chamadas de voz serão recusadas.
+ <usetemplate ignoretext="Altero meu status para o modo Não perturbe" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Você atingiu o limite máximo de grupos. Saia de outro grupo para poder entrar nesse ou recuse o convite.
@@ -2022,6 +2043,10 @@ Mover para o inventário o(s) item(s)?
Deseja abrir o [http://secondlife.com/account/ Painel] para ver o histórico da sua conta?
<usetemplate ignoretext="Abrir o navegador para acessar minha conta" name="okcancelignore" notext="Cancelar" yestext="Ir para a página"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Quando você adiciona uma pessoa a uma conversa existente, uma nova conversa é criada. Todos os participantes recebem notificações sobre a nova conversa.
+ <usetemplate ignoretext="Confirme a inclusão de participantes no bate-papo" name="okcancelignore" notext="Cancelar" yestext="Ok"/>
+ </notification>
<notification name="ConfirmQuit">
Tem certeza que deseja sair?
<usetemplate ignoretext="Confirmar antes de sair" name="okcancelignore" notext="Não sair" yestext="Sair"/>
@@ -2096,14 +2121,14 @@ Você deseja substituí-lo pelo objeto selecionado?
<button ignore="Never Replace" name="No" text="Não"/>
</form>
</notification>
- <notification label="Aviso de Modo Ocupado" name="BusyModePay">
- Você está no modo Ocupado, o que significa que você não receberá quaisquer itens oferecidos em troca deste pagamento.
+ <notification label="Aviso de modo Não perturbe" name="DoNotDisturbModePay">
+ Você ativou o Não perturbe. Você não receberá qualquer item oferecido em troca deste pagamento.
-Você gostaria de deixar o modo Ocupado antes de completar esta transação?
+Deseja desativar o Não perturbe antes de concluir esta transação?
<form name="form">
- <ignore name="ignore" save_option="true" text="Estou prestes a pagar alguém ou um objeto no modo ocupado"/>
- <button ignore="Always leave Busy Mode" name="Yes" text="Sim"/>
- <button ignore="Never leave Busy Mode" name="No" text="Não"/>
+ <ignore name="ignore" text="Estou prestes a pagar alguém ou um objeto no modo Não perturbe"/>
+ <button ignore="Sempre manter no modo Não perturbe" name="Yes" text="OK"/>
+ <button ignore="Nunca sair do modo Não perturbe" name="No" text="Cancelar"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2238,11 +2263,8 @@ Inclua um link para facilitar o acesso para visitantes. Teste o link na barra de
<notification name="GroupNotice">
Assunto: [SUBJECT], Mensagem: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; está online
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; está offline
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; está [STATUS]
</notification>
<notification name="AddSelfFriend">
Você é o máximo! Mesmo assim, não dá para adicionar a si mesmo(a) como amigo(a).
@@ -2467,13 +2489,6 @@ Logo, não é possível voar aqui.
<notification name="DynamicPathfindingDisabled">
O pathfinding dinâmico não está habilitado nesta região. Os objetos com script usando chamadas LSL de pathfinding podem não operar como o esperado na região.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- A alteração de determinados objetos nesta região pode resultar no comportamento incorreto de outros objeto em movimento. Para fazer com que os objetos em movimento se comportem corretamente, clique no botão “Recarregar região”. Escolha “Ajuda” para obter mais informações.
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Ajuda" ignoretext="A alteração de determinados objetos nesta região pode resultar no comportamento incorreto de outros objeto em movimento." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Erro. Pode haver um erro de rede ou do servidor, ou você pode não ter direitos de construção. Às vezes, fazer login e logout novamente resolve este problema.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2736,7 +2751,7 @@ OK?
<notification name="ScriptQuestionCaution">
Aviso: O objeto &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; deseja obter acesso total à sua conta de dólares Linden. Se você conceder acesso, ele poderá remover fundos de sua conta a qualquer momento ou esvaziar sua conta completamente, continuamente e sem avisos adicionais.
-Esse tipo de pedido raramente é legítimo. Não conceda acesso se você não entender completamente por que ele deseja acessar sua conta.
+Não conceda acesso se você não entender completamente por que ele deseja acessar sua conta.
<form name="form">
<button name="Grant" text="Permitir acesso total"/>
<button name="Deny" text="Negar"/>
@@ -3310,4 +3325,633 @@ Tentativa cancelada.
Você está excluindo [NUM_ITEMS] itens. Tem certeza de que deseja continuar?
<usetemplate ignoretext="Tem certeza de que deseja excluir múltiplos itens?" name="okcancelignore" notext="Não" yestext="Sim"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] congelou você. Você não pode se mover ou interagir com o mundo.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] congelou você por [AV_FREEZE_TIME] segundos. Você não pode se mover ou interagir com o mundo.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar congelado.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] descongelou você.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar descongelado.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ O congelamento falhou porque você não tem permissão de administrador para esse lote.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Seu congelamento expirou, vá cuidar da sua vida.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Não é possível congelar esse usuário.
+ </notification>
+ <notification name="NowOwnObject">
+ Agora você é o proprietário do objeto [OBJECT_NAME]
+ </notification>
+ <notification name="CantRezOnLand">
+ Não é possível renderizar objeto em [OBJECT_POS] porque o proprietário do terreno não permite. Use a ferramenta de terrenos para ver a propriedade do terreno.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ O objeto não pode ser renderizado porque há muitas solicitações.
+ </notification>
+ <notification name="SitFailCantMove">
+ Você não pode sentar porque não pode se mover no momento.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Você não pode sentar porque não está autorizado a sentar nesse terreno.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Tente chegar mais perto. Não é possível sentar no objeto porque
+ele não está na mesma região que você.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Não foi possível criar um novo objeto. A região está cheia.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Falha ao posicionar objeto em local específico. Tente novamente.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Você não pode criar árvores e grama em terrenos que não são sua propriedade.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ A cópia falhou porque você não está autorizado a copiar o objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ A cópia falhou porque o objeto &apos;[OBJ_NAME]&apos; não pode ser transferido para você.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ A cópia falhou porque o objeto &apos;[OBJ_NAME]&apos; contribui para o navmesh.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Duplicar sem objetos raiz selecionados.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Não é possível duplicar objetos porque a região está cheia.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Não é possível duplicar os objetos - não é possível encontrar o lote em que eles estão.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Não é possível criar objeto porque
+o lote está cheio.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Falha na tentativa de renderizar um objeto.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Não é possível criar um item que causou problemas a essa região.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Esse item do inventário foi incluído na lista.
+ </notification>
+ <notification name="NoCanRezObjects">
+ No momento, você não está autorizado a criar objetos.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Pesquisa de terreno bloqueada.
+Você realizou muitas pesquisas de terreno muito rápido.
+Tente novamente em instantes.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Não há recursos de script disponíveis suficientes para anexar objeto!
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Você morreu e foi teletransportado para seu início
+ </notification>
+ <notification name="EjectComingSoon">
+ Você não tem mais permissão para ficar aqui e tem [EJECT_TIME] segundos para sair.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Você não pode entrar nesta região porque
+o servidor está cheio.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Salvar no inventário foi desativado.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ Não é possível salvar &apos;[OBJ_NAME]&apos; no conteúdo do objeto porque o objeto do qual ele foi renderizado não existe mais.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ Não é possível salvar &apos;[OBJ_NAME]&apos; no conteúdo do objeto porque você não tem permissão para modificar o objeto &apos;[DEST_NAME]&apos;.
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ Não é possível salvar &apos;[OBJ_NAME]&apos; no inventário -- essa operação foi desativada.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ Você não pode copiar sua seleção porque não está autorizado a copiar o objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ Você não pode copiar a seleção porque o objeto &apos;[OBJ_NAME]&apos; não é transferível.
+ </notification>
+ <notification name="NoTransNoCopy">
+ Você não pode copiar a seleção porque o objeto &apos;[OBJ_NAME]&apos; não é transferível.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ A remoção do objeto &apos;[OBJ_NAME]&apos; do simulador é proibida pelo sistema de permissões.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ Você não pode salvar sua seleção porque não está autorizado a modificar o objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ Não é possível salvar sua seleção porque o objeto &apos;[OBJ_NAME]&apos; não é copiável.
+ </notification>
+ <notification name="NoModNoTaking">
+ Você não pode levar sua seleção porque não está autorizado a modificar o objeto &apos;[OBJ_NAME]&apos;.
+ </notification>
+ <notification name="RezDestInternalError">
+ Erro interno: tipo de destino desconhecido.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ A exclusão falhou porque o objeto não foi encontrado
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Não é possível expulsar esse usuário.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Esta região não permite que você a defina como seu início.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Você só pode definir seu &quot;Início&quot; em seu terreno ou em um Infohub do continente.
+ </notification>
+ <notification name="HomePositionSet">
+ Posição de início definida.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar expulso.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ A expulsão falhou porque você não tem permissão de administrador para esse lote.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] porque o lote está cheio.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] porque seus objetos não são permitidos neste lote.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] porque não há recursos suficientes para este objeto neste lote.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] porque outra região está executando uma versão mais antiga, que não dá suporte o recebimento deste objeto por meio de passagem de regiões.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] porque você não está autorizado a modificar o navmesh além dos limites da região.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Não é possível mover &apos;[OBJECT_NAME]&apos; para
+[OBJ_POSITION] na região [REGION_NAME] por uma razão desconhecida. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ Você não está autorizado a modificar este objeto
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Não é possível ativar propriedades físicas para um objeto que contribui para o navmesh.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Não é possível ativar propriedades físicas para objetos keyframe.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Não é possível ativar propriedades físicas para o objeto -- recursos de terreno insuficientes.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Não é possível ativar propriedades físicas para objeto com custo de recursos físicos acima de [MAX_OBJECTS]
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Este objeto não pode ter uma peça côncava porque é phantom e contribui para o navmesh.
+ </notification>
+ <notification name="UnableAddItem">
+ Não é possível adicionar item!
+ </notification>
+ <notification name="UnableEditItem">
+ Não é possível editar isso!
+ </notification>
+ <notification name="NoPermToEdit">
+ Não é permitido editar isso.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Não é permitido copiar esse inventário.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Não é possível salvar no conteúdo do objeto: O item não existe mais.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Não é possível salvar no conteúdo do objeto: já existe um item com esse nome no inventário
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Não é possível salvar no conteúdo do objeto: isso modificaria as permissões de anexo.
+ </notification>
+ <notification name="TooManyScripts">
+ Muitos scripts.
+ </notification>
+ <notification name="UnableAddScript">
+ Não é possível adicionar script!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Servidor de objetos não respondeu a tempo. Objeto retornado a sim.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ Esta região não tem formas físicas ativadas.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Você não pode modificar o navmesh além dos limites da região.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Não é possível definir as propriedades físicas neste tipo de objeto.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ Não é possível definir que um prim raiz não tenha forma.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ Esta região não tem materiais físicos ativados.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Apenas prims raiz podem ter seus materiais físicos ajustados.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ Ainda não há suporte para a configuração dos materiais físicos em personagens.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Uma ou mais das propriedades do material físico são inválidas.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Você não pode alterar o tipo de acabamento de um objeto mesh.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Você não pode alterar a forma de um objeto mesh
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Você não pode entrar nesta região porque \nela está cheia.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Falha na vinculação -- proprietários diferentes
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Falha na vinculação -- não é possível modificar o navmesh além dos limites da região.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Ocorreu uma falha na vinculação porque você não tem permissão de edição.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Falha na vinculação -- muitos prims
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Falha na vinculação -- não é possível vincular itens com cópia proibida a itens com transferência proibida
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Falha na vinculação -- nada é vinculável.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Falha na vinculação -- muitos personagens com pathfinding
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Falha na vinculação -- recursos de terreno insuficientes
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ O objeto usa muitos recursos físicos – sua dinâmica foi desativada.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Você foi teletransportado para seu início pelo objeto &apos;[OBJECT_NAME]&apos; no lote &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Você foi teletransportado para seu início pelo objeto &apos;[OBJECT_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Você foi teletransportado por um anexo em [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Você foi teletransportado pelo objeto &apos;[OBJECT_NAME]&apos; no lote &apos;[PARCEL_NAME]&apos;
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Você foi teletransportado pelo objeto &apos;[OBJECT_NAME]&apos; de propriedade de [OWNER_ID]
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Você foi teletransportado pelo objeto &apos;[OBJECT_NAME]&apos; de propriedade de um usuário desconhecido.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Não foi possível criar o objeto solicitado. A região está cheia.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Não é possível anexar vários objetos a um local.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Você não pode criar vários objetos aqui.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Não foi possível criar o objeto solicitado. Objeto ausente do banco de dados.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Não foi possível criar o objeto solicitado. A solicitação expirou. Tente novamente.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Não foi possível criar o objeto solicitado. Tente novamente.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Falha na renderização, objeto solicitado demorou muito a carregar.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Falha ao posicionar objeto em local específico. Tente novamente.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Você não pode criar plantas neste terreno.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Não é possível restaurar o objeto. Nenhuma posição encontrada no mundo.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Não é possível renderizar o objeto porque os dados de mesh são inválidos.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Não foi possível renderizar objeto porque já há muitos scripts nesta região.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Seus privilégios de acesso não permitem que você crie objetos aqui.
+ </notification>
+ <notification name="CantCreateObject">
+ No momento, você não está autorizado a criar objetos.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Parâmetros de objeto inválidos
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Seus privilégios de acesso não permitem que você duplique objetos aqui.
+ </notification>
+ <notification name="CantChangeShape">
+ Você não está autorizado a alterar essa forma.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Seus privilégios de acesso não permitem que você reivindique objetos aqui.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ A doação falhou porque você não está autorizado a doar objetos ao seu grupo.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Seus privilégios de acesso não permitem que você compre objetos aqui.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Não é possível anexar objeto porque um avatar está sentado nele.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Árvores e grama não podem ser usadas como anexos.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Não é possível anexar objetos de propriedade de um grupo.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Não é possível anexar objetos que não sua propriedade.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Não é possível anexar objetos que contribuem com o navmesh.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ Não é possível vincular objeto porque você não tem permissão para movê-lo.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Não há recursos de script disponíveis suficientes para anexar objeto!
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Não é possível largar objetos aqui. Tente a área de Avaliação grátis.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Você não pode largar anexos mesh. Separe para o inventário e depois renderize no mundo.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Falha ao largar anexo: você não está autorizado a largá-lo aqui.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Falha ao largar anexo: recursos de terreno disponíveis insuficientes.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Falha ao largar anexos: recursos disponíveis insuficientes.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Não é possível largar objeto aqui. O lote está cheio.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Não é possível tocar/pegar este objeto porque você foi banido do lote de terreno.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Detalhe seus parâmetros de exclusão.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Não é possível carregar objeto.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Não foi possível encontrar usuário para teletransportar para início
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ solicitação de poderes de deus falhou
+ </notification>
+ <notification name="GenericRequestFailed">
+ falha em solicitação genérica
+ </notification>
+ <notification name="CantUploadPostcard">
+ Não foi possível carregar cartão postal. Tente novamente mais tarde.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ Não foi possível obter detalhes de inventário para o anúncio de grupo.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Não é possível enviar anúncio de grupo -- não permitido.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Não é possível enviar anúncio de grupo -- não foi possível construir inventário.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Não é possível processar o inventário do anúncio.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Falha no envio de terreno.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Arquivo de terreno gravado.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Arquivo de terreno criado, iniciando o download...
+ </notification>
+ <notification name="TerrainBaked">
+ Terreno confeccionado.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Apenas os 10 primeiros objetos selecionados foram desativados. Atualize e faça novas seleções, se necessário.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Você precisa atualizar seu visualizador para comprar este lote.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Não é possível comprar, este lote não está à venda.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Não é possível comprar, o preço de venda ou a área do terreno foram alterados.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Você não é o comprador autorizado deste lote.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Você não pode comprar este lote porque já está aguardando aut. de compra
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Não é possível criar objeto aqui porque isso sobrecarregaria o lote.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Você selecionou terreno com proprietários diferentes. Selecione uma área menor e tente novamente.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Não há lotes alugados suficientes na seleção para reunir.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Não é possível dividir o terreno.\nHá mais de um lote selecionado.\nTente selecionar um pedaço menor de terreno.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ Não é possível dividir o terreno.\nNão é possível encontrar o lote.\nComunique isso em Ajuda -&gt; Relatar bug...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Não é possível dividir o terreno. O lote inteiro está selecionado.\nTente selecionar um pedaço menor do terreno.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ O terreno foi dividido.
+ </notification>
+ <notification name="PassPurchased">
+ Você comprou um passe.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ A região não permite classificados.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Seu passe para este terreno está prestes a expirar.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Não há uma superfície adequada para sentar, tente outro local.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Não há espaço para sentar aqui, tente outro local.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ A reivindicação do objeto falhou porque você não tem permissão
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ A reivindicação do objeto falhou porque você não tem L$ suficiente.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Não é possível doar terrenos de propriedade de um grupo.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ A compra do objeto falhou porque você não tem L$ suficientes.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ A compra do inventário falhou porque você não tem L$ suficiente
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ Você não tem L $ suficientes para comprar um passe para este terreno.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Não é possível comprar passe no momento. Tente novamente mais tarde.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Não é possível criar objeto porque \no lote está cheio.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Falha ao posicionar objeto em local específico. Tente novamente.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Não é possível criar marco para o evento.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ Seus poderes de deus rompem o congelamento!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Falha na solicitação de poderes especiais. Essa solicitação foi registrada.
+ </notification>
+ <notification name="ExpireExplanation">
+ O sistema não pode processar sua solicitação no momento. A solicitação expirou.
+ </notification>
+ <notification name="DieExplanation">
+ O sistema não pode processar sua solicitação.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Fundos insuficientes para criar prim.
+ </notification>
+ <notification name="RezObjectFailure">
+ Fundos insuficientes para criar objeto.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Redefinir Início pois o Início não era legal.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ No momento, você não pode convidar ninguém para seu local pois a região está cheia. Tente novamente mais tarde.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Esta região não permite que você a defina como seu início.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Você só pode definir seu &quot;Início&quot; em seu terreno ou em um Infohub do continente.
+ </notification>
+ <notification name="SetHomePosition">
+ Posição de início definida.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Não é possível desrenderizar objeto devido a uma falha de inventário.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Não é possível criar o inventário solicitado.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Não é possível criar a pasta de inventário solicitada.
+ </notification>
+ <notification name="CantCreateInventory">
+ Não é possível criar esse inventário.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Não é possível criar marco.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Não é possível criar roupa agora. Tente novamente em instantes.
+ </notification>
+ <notification name="InventoryNotForSale">
+ O inventário não está à venda.
+ </notification>
+ <notification name="CantFindInvItem">
+ Não é possível encontrar item do inventário.
+ </notification>
+ <notification name="CantFindObject">
+ Não foi possível encontrar objeto.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Transferências de dinheiro para objetos estão desativadas para esta região no momento.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Não foi possível descobrir a quem pagar.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Não é possível dar L$ a objetos públicos.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Falha na criação de inventário de objetos do mundo virtual.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Um erro interno impediu que seu visualizador fosse atualizado corretamente. O saldo em L$ ou a propriedade de lotes exibidos em seu visualizador pode não refletir o saldo real nos servidores.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Não é possível criar grandes prims que interceptam outros jogadores. Tente novamente quando os outros jogadores tiverem se movido.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Isso excluirá os registros das conversas anteriores e qualquer backup desse arquivo.
+ <usetemplate ignoretext="Confirmar antes de excluir o registro com conversas anteriores." name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Isso excluirá todas as transcrições de todas as conversas anteriores. A lista de conversas antigas não será afetada. Todos os arquivos com as extensões .txt e txt.backup na pasta [FOLDER] serão excluídos.
+ <usetemplate ignoretext="Confirmar antes de excluir transcrições." name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Não foi possível mover arquivos. Caminho anterior restaurado.
+ <usetemplate ignoretext="Não foi possível mover arquivos. Caminho anterior restaurado." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml
index b1ffa0d2e5..b1ffa0d2e5 100644..100755
--- a/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_active_object_row.xml b/indra/newview/skins/default/xui/pt/panel_active_object_row.xml
index 73f6b2225f..73f6b2225f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/pt/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml
index bd50d4953d..bd50d4953d 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/pt/panel_avatar_list_item.xml
index b444593af8..22eb23ebc5 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_avatar_list_item.xml
@@ -26,5 +26,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Este amigo pode editar, excluir ou pegar seus pertences"/>
<icon name="permission_map_icon" tool_tip="Este amigo pode localizar você no mapa"/>
<icon name="permission_online_icon" tool_tip="Este amigo pode saber quando você estiver online"/>
+ <button name="info_btn" tool_tip="Mais informações"/>
<button name="profile_btn" tool_tip="Ver perfil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/pt/panel_block_list_sidetray.xml
index c5f93d719a..2fcf6b9932 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/pt/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Lista de bloqueados
- </text>
- <scroll_list name="blocked" tool_tip="Lista atual dos residentes bloqueados"/>
- <button label="Bloquear residente..." label_selected="Bloquear residente..." name="Block resident..." tool_tip="Selecione o residente a bloquear"/>
- <button label="Bloquear objeto por nome..." label_selected="Bloquear objeto por nome..." name="Block object by name..."/>
- <button label="Desbloquear" label_selected="Desbloquear" name="Unblock" tool_tip="Remover residente ou objeto da lista dos bloqueados"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtrar" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Ações em uma pessoa ou um objeto selecionado"/>
+ <menu_button name="view_btn" tool_tip="Opções de ordenação"/>
+ <menu_button name="plus_btn" tool_tip="Escolher um residente ou um objeto a ser bloqueado"/>
+ <button name="unblock_btn" tool_tip="Remover residente ou objeto da lista dos bloqueados"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Lista atual dos residentes bloqueados"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml
index 87a2e1674d..87a2e1674d 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/pt/panel_bodyparts_list_button_bar.xml
index 094a03553b..094a03553b 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/pt/panel_bottomtray_lite.xml
index 78d9826099..78d9826099 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/pt/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml
index 0551d9cba6..0551d9cba6 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_classified_info.xml b/indra/newview/skins/default/xui/pt/panel_classified_info.xml
index 73bfe7444e..73bfe7444e 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/pt/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/pt/panel_clothing_list_button_bar.xml
index bfdc7290d2..bfdc7290d2 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml
index 4b45a49f74..4b45a49f74 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_cof_wearables.xml b/indra/newview/skins/default/xui/pt/panel_cof_wearables.xml
index 3e4b12b001..3e4b12b001 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/pt/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/pt/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..f56168c962
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(carregando)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/pt/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..74daded58f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="Uma conversa de voz foi incluída"/>
+ <icon name="unread_ims_icon" tool_tip="Chegaram mensagens enquanto você estava desconectado"/>
+ <button name="delete_btn" tool_tip="Remover esta entrada"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml
index 7ca5e23981..7ca5e23981 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml
index 3dfb5a0a16..3dfb5a0a16 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_alpha.xml b/indra/newview/skins/default/xui/pt/panel_edit_alpha.xml
index b274945dbd..b274945dbd 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml b/indra/newview/skins/default/xui/pt/panel_edit_classified.xml
index 23e00bfc3a..23e00bfc3a 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml b/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
index f21656d526..f21656d526 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml b/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
index 281823d641..281823d641 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_hair.xml b/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
index 13f1f892f9..13f1f892f9 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml b/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
index 5798325bd7..5798325bd7 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_pants.xml b/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
index 18568a81a8..18568a81a8 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_physics.xml b/indra/newview/skins/default/xui/pt/panel_edit_physics.xml
index 967aab8bc3..967aab8bc3 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_pick.xml b/indra/newview/skins/default/xui/pt/panel_edit_pick.xml
index 5eb9987e71..5eb9987e71 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_profile.xml b/indra/newview/skins/default/xui/pt/panel_edit_profile.xml
index 0ba7382845..0ba7382845 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shape.xml b/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
index de41ba3ad2..de41ba3ad2 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
index c7e2b1e64c..c7e2b1e64c 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml b/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
index 08465d09e7..08465d09e7 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_skin.xml b/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
index d00aa2dc66..d00aa2dc66 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
index 275efba6e6..275efba6e6 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_socks.xml b/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
index 6f4779d855..6f4779d855 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/pt/panel_edit_tattoo.xml
index f85bb3c499..f85bb3c499 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml b/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
index c383471851..c383471851 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
index 0bf510c67f..0bf510c67f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml b/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
index 2e3e3d6305..2e3e3d6305 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml
index 502dae8d67..502dae8d67 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml
index b634ec3f64..b634ec3f64 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
index 30c825723b..30c825723b 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_invite.xml b/indra/newview/skins/default/xui/pt/panel_group_invite.xml
index de057481de..de057481de 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index 2346fe7f4f..2346fe7f4f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_list_item.xml b/indra/newview/skins/default/xui/pt/panel_group_list_item.xml
index 19c34d2f10..0490878507 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Desconhecido"/>
+ <button name="info_btn" tool_tip="Mais informações"/>
<button name="profile_btn" tool_tip="Ver perfil"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_notices.xml b/indra/newview/skins/default/xui/pt/panel_group_notices.xml
index 3bff1f8fb3..3bff1f8fb3 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_notify.xml b/indra/newview/skins/default/xui/pt/panel_group_notify.xml
index 5a8ea81074..5a8ea81074 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_group_roles.xml b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
index 11a31570d1..11a31570d1 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
index 91b7d1b7cd..91b7d1b7cd 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_inventory_item.xml b/indra/newview/skins/default/xui/pt/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_landmark_info.xml b/indra/newview/skins/default/xui/pt/panel_landmark_info.xml
index 39c19a22d4..39c19a22d4 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/pt/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_landmarks.xml b/indra/newview/skins/default/xui/pt/panel_landmarks.xml
index 49e1203601..49e1203601 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/pt/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml
index d7e9fa76ea..d7e9fa76ea 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_login.xml
+++ b/indra/newview/skins/default/xui/pt/panel_login.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
index dbf8e4fa52..dbf8e4fa52 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_me.xml b/indra/newview/skins/default/xui/pt/panel_me.xml
index 281c886bd4..281c886bd4 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_me.xml
+++ b/indra/newview/skins/default/xui/pt/panel_me.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_media_settings_general.xml b/indra/newview/skins/default/xui/pt/panel_media_settings_general.xml
index 43c0820036..43c0820036 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
index 55226db274..55226db274 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_media_settings_security.xml b/indra/newview/skins/default/xui/pt/panel_media_settings_security.xml
index e38c44d8fe..e38c44d8fe 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/pt/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_navigation_bar.xml b/indra/newview/skins/default/xui/pt/panel_navigation_bar.xml
index 4fa5436805..4fa5436805 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml b/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml
index 6828d41dee..6828d41dee 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
index 5628a87109..5628a87109 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
index 43bf8f9661..43bf8f9661 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_notify_textbox.xml b/indra/newview/skins/default/xui/pt/panel_notify_textbox.xml
index dcd9ba1815..dcd9ba1815 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/pt/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_online_status_toast.xml b/indra/newview/skins/default/xui/pt/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/pt/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/pt/panel_outbox_inventory.xml
index 442622035a..442622035a 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml b/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
index eb23f5c079..eb23f5c079 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
index 816a9bc46e..816a9bc46e 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/pt/panel_outfits_inventory_gear_default.xml
index 736b8f1fdd..736b8f1fdd 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_list.xml b/indra/newview/skins/default/xui/pt/panel_outfits_list.xml
index 2d74e092a4..2d74e092a4 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml
index 9224ec4742..9224ec4742 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_people.xml b/indra/newview/skins/default/xui/pt/panel_people.xml
index f3af15b991..babb48c208 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_people.xml
+++ b/indra/newview/skins/default/xui/pt/panel_people.xml
@@ -14,81 +14,53 @@ Em busca de alguém para conversar? Procure no [secondlife:///app/worldmap Mapa-
<string name="no_filtered_friends_msg">
Não encontrou o que procura? Tente buscar no [secondlife:///app/search/people/[SEARCH_TERM] Search].
</string>
- <string name="people_filter_label" value="Filtro de pessoas"/>
- <string name="groups_filter_label" value="Filtro de grupos"/>
<string name="no_filtered_groups_msg" value="Não encontrou o que procura? Tente buscar no [secondlife:///app/search/groups/[SEARCH_TERM] Search]."/>
<string name="no_groups_msg" value="À procura de grupos interessantes? Tente fazer uma [secondlife:///app/search/groups Busca]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Clique duas vezes para abrir o mapa, shift+arraste para a visão pan)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Clique duas vezes para teletransportar, shift+arraste para a visão pan)"/>
- <filter_editor label="Filtro" name="filter_input"/>
<tab_container name="tabs">
<panel label="PROXIMIDADE" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Opções"/>
- <button name="add_friend_btn" tool_tip="Adicionar o residente selecionado para sua lista de amigos"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Filtrar pessoas" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Ações nas pessoas selecionadas"/>
+ <menu_button name="nearby_view_btn" tool_tip="Opções de exibição/ordenação"/>
+ <button name="add_friend_btn" tool_tip="Oferecer amizade ao residente"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Remover a pessoa selecionada dos amigos"/>
</panel>
</panel>
- <panel label="MEUS AMIGOS" name="friends_panel">
+ <panel label="AMIGOS" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Filtrar pessoas" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Ações nas pessoas selecionadas"/>
+ <menu_button name="friends_view_btn" tool_tip="Opções de exibição/ordenação"/>
+ <button name="friends_add_btn" tool_tip="Oferecer amizade ao residente"/>
+ <dnd_button name="friends_del_btn" tool_tip="Remover a pessoa selecionada dos amigos"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Online"/>
<accordion_tab name="tab_all" title="Todos"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Mostrar opções adicionais"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Oferecer amizade para um residente"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Remover a pessoa selecionada da sua lista de amigos"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="MEUS GRUPOS" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Opções"/>
- <button name="plus_btn" tool_tip="Ingressar em um grupo/Criar novo grupo"/>
- <button name="activate_btn" tool_tip="Ativar o grupo selecionado"/>
+ <panel label="GRUPOS" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Filtrar grupos" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Ações no grupo selecionado"/>
+ <menu_button name="groups_view_btn" tool_tip="Opções de exibição/ordenação"/>
+ <menu_button name="plus_btn" tool_tip="Entrar em um grupo/Criar novo grupo"/>
+ <dnd_button name="minus_btn" tool_tip="Sair do grupo selecionado"/>
</panel>
</panel>
<panel label="RECENTE" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Opções"/>
- <button name="add_friend_btn" tool_tip="Adicionar o residente selecionado para sua lista de amigos"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Filtrar pessoas" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Ações nas pessoas selecionadas"/>
+ <menu_button name="recent_view_btn" tool_tip="Opções de exibição/ordenação"/>
+ <button name="add_friend_btn" tool_tip="Oferecer amizade ao residente"/>
+ <dnd_button name="recent_del_btn" tool_tip="Remover a pessoa selecionada dos amigos"/>
</panel>
</panel>
+ <panel label="BLOQUEADA" name="blocked_panel">
+ <panel label="Residentes e objetos bloqueados" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Perfil" name="view_profile_btn" tool_tip="Exibir fotografia, grupos e outras informações dos residentes"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="MI" name="im_btn" tool_tip="Abrir sessão de mensagem instantânea"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Ligar" name="call_btn" tool_tip="Ligar para este residente"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Compartilhar" name="share_btn" tool_tip="Compartilhar item de inventário"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Teletransportar" name="teleport_btn" tool_tip="Oferecer teletransporte"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Perfil do grupo" name="group_info_btn" tool_tip="Exibir dados do grupo"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Bate-papo de grupo" name="chat_btn" tool_tip="Nova sessão de bate-papo"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Ligar para o grupo" name="group_call_btn" tool_tip="Ligar para este grupo"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_pick_info.xml b/indra/newview/skins/default/xui/pt/panel_pick_info.xml
index caa140a245..caa140a245 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/pt/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_picks.xml b/indra/newview/skins/default/xui/pt/panel_picks.xml
index 2ff1eed624..2ff1eed624 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_picks.xml
+++ b/indra/newview/skins/default/xui/pt/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_place_profile.xml b/indra/newview/skins/default/xui/pt/panel_place_profile.xml
index 8abe579702..8abe579702 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/pt/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_places.xml b/indra/newview/skins/default/xui/pt/panel_places.xml
index 69f0baf65f..69f0baf65f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_places.xml
+++ b/indra/newview/skins/default/xui/pt/panel_places.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_postcard_message.xml b/indra/newview/skins/default/xui/pt/panel_postcard_message.xml
index 9cde810430..9cde810430 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/pt/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_postcard_settings.xml b/indra/newview/skins/default/xui/pt/panel_postcard_settings.xml
index 3088b9a996..3088b9a996 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/pt/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
index c72928fc35..c72928fc35 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/pt/panel_preferences_alerts.xml
index 2ffe720ccf..2ffe720ccf 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
index 350d53b81c..baf14c2c23 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Chat" name="chat">
- <text name="font_size">
- Tamanho da fonte:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Pequeno" name="radio" value="0"/>
- <radio_item label="Médio" name="radio2" value="1"/>
- <radio_item label="Grande" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Executar animação digitada quando estiver conversando" name="play_typing_animation"/>
- <check_box label="Enviar MIs por email se estiver desconectado" name="send_im_to_email"/>
- <check_box label="Ativar MIs e bate-papos de texto simples" name="plain_text_chat_history"/>
- <check_box label="Balão de bate-papo" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Mostrar MIs em:
- </text>
- <text name="requires_restart_label">
- (Reinicie para ativar)
- </text>
- <radio_group name="chat_window" tool_tip="Exibir cada bate-papo em uma janela separada ou exibir todos em uma única janela com uma aba para cada pessoa (requer reinício)">
- <radio_item label="Janelas separadas" name="radio" value="0"/>
- <radio_item label="Guias" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Ativar pop-ups de novos bate-papos:
- </text>
- <check_box label="Bate-papo de grupo" name="EnableGroupChatPopups" tool_tip="Exibir pop-up de bate-papos novos de grupos"/>
- <check_box label="Bate-papos de MI" name="EnableIMChatPopups" tool_tip="Exibir pop-up de mensagens instantâneas novas"/>
- <spinner label="Transição de avisos de bate-papos por perto:" name="nearby_toasts_lifetime"/>
- <spinner label="Transição de avisos de bate-papos por perto:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Executar animação digitada quando estiver conversando" name="play_typing_animation"/>
+ <check_box label="Enviar MIs por email se estiver desconectado" name="send_im_to_email"/>
+ <check_box label="Apenas amigos e grupos podem me ligar ou enviar MIs" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Tamanho da fonte:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Pequeno" name="Small" value="0"/>
+ <item label="Médio" name="Medium" value="1"/>
+ <item label="Grande" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Balão de bate-papo" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Notificações
+ </text>
+ <text name="friend_ims">
+ MIs de amigos:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Abrir janela Conversas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Abrir pop up com mensagem" name="PopUpMessage" value="toast"/>
+ <item label="Piscar botão da barra de ferramentas" name="FlashToolbarButton" value="flash"/>
+ <item label="Nenhum" name="None" value="none"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ MIs de não amigos:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Abrir janela Conversas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Abrir pop up com mensagem" name="PopUpMessage" value="toast"/>
+ <item label="Piscar botão da barra de ferramentas" name="FlashToolbarButton" value="flash"/>
+ <item label="Nenhum" name="None" value="none"/>
+ </combo_box>
+ <text name="conference_ims">
+ MIs de conferências:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Abrir janela Conversas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Abrir pop up com mensagem" name="PopUpMessage" value="toast"/>
+ <item label="Piscar botão da barra de ferramentas" name="FlashToolbarButton" value="flash"/>
+ <item label="Nenhum" name="None" value="none"/>
+ </combo_box>
+ <text name="group_chat">
+ Bate-papo de grupo:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Abrir janela Conversas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Abrir pop up com mensagem" name="PopUpMessage" value="toast"/>
+ <item label="Piscar botão da barra de ferramentas" name="FlashToolbarButton" value="flash"/>
+ <item label="Nenhum" name="None" value="none"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Bate-papo local:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Abrir janela Conversas" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Abrir pop up com mensagem" name="PopUpMessage" value="toast"/>
+ <item label="Piscar botão da barra de ferramentas" name="FlashToolBarButton" value="flash"/>
+ <item label="Nenhum" name="None" value="none"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Para interromper temporariamente todas as notificações, use Comunicar &gt; Não perturbe.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Executar som:
+ </text>
+ <check_box label="Nova conversa" name="new_conversation"/>
+ <check_box label="Chamada de voz recebida" name="incoming_voice_call"/>
+ <check_box label="Oferta de teletransporte" name="teleport_offer"/>
+ <check_box label="Oferta de inventário" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Limpar registro..." name="clear_log"/>
+ <button label="Excluir transcrições..." name="delete_transcripts"/>
+ <button label="Procurar..." label_selected="Procurar" name="log_path_button"/>
+ </panel>
<button label="Tradução..." name="ok_btn"/>
<button label="Substituição automática..." name="autoreplace_showgui"/>
<button label="Verificando a ortografia..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_colors.xml b/indra/newview/skins/default/xui/pt/panel_preferences_colors.xml
index d6c6f66e37..d6c6f66e37 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index c53aa7d5f7..8a0495f9bb 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -69,6 +69,9 @@
<combo_box.item label="(nunca)" name="item4"/>
</combo_box>
<text name="text_box3">
- Mensagem do modo ocupado:
+ Resposta de Não perturbe:
</text>
+ <text_editor name="do_not_disturb_response">
+ log_in_to_change
+ </text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index 28e7184326..28e7184326 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_move.xml b/indra/newview/skins/default/xui/pt/panel_preferences_move.xml
index fa6f5f5851..fa6f5f5851 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml
index d7fb585e35..d7fb585e35 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
index ebbd63138a..ebbd63138a 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml
index d910a7b812..d910a7b812 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml
index 9e07b6772f..9e07b6772f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
index 65ac89baf8..65ac89baf8 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_debug.xml b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
index be15d40d74..be15d40d74 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_environment.xml b/indra/newview/skins/default/xui/pt/panel_region_environment.xml
index 79eedebe5f..79eedebe5f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
index b1453c9c32..b1453c9c32 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_general.xml b/indra/newview/skins/default/xui/pt/panel_region_general.xml
index 4be1cd11c0..4be1cd11c0 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_region_terrain.xml b/indra/newview/skins/default/xui/pt/panel_region_terrain.xml
index 74330a8946..74330a8946 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_script_ed.xml b/indra/newview/skins/default/xui/pt/panel_script_ed.xml
index de02aafe2f..de02aafe2f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/pt/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/pt/panel_script_limits_my_avatar.xml
index daf87c4dc6..daf87c4dc6 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/pt/panel_script_limits_region_memory.xml
index 94274b2cfe..94274b2cfe 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_script_question_toast.xml b/indra/newview/skins/default/xui/pt/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/pt/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml b/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml
index 87e6d16056..87e6d16056 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/pt/panel_scrolling_param_base.xml
index 0a5a2e2572..0a5a2e2572 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/pt/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/pt/panel_side_tray_tab_caption.xml
index 09444a5535..09444a5535 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/pt/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/pt/panel_snapshot_inventory.xml
index 3c4bb18687..3c4bb18687 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_snapshot_local.xml b/indra/newview/skins/default/xui/pt/panel_snapshot_local.xml
index 36b5b0cbe6..36b5b0cbe6 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/pt/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_snapshot_options.xml b/indra/newview/skins/default/xui/pt/panel_snapshot_options.xml
index 7f1452e992..7f1452e992 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/pt/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/pt/panel_snapshot_postcard.xml
index 12a648f600..12a648f600 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/pt/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/pt/panel_snapshot_profile.xml
index 095b8fc75d..095b8fc75d 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/pt/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_sound_devices.xml b/indra/newview/skins/default/xui/pt/panel_sound_devices.xml
index 66db89f48f..66db89f48f 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/pt/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/pt/panel_stand_stop_flying.xml
index 05869cf67a..05869cf67a 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/pt/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/indra/newview/skins/default/xui/pt/panel_status_bar.xml
index cb9a6eb757..cb9a6eb757 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_teleport_history.xml b/indra/newview/skins/default/xui/pt/panel_teleport_history.xml
index b77064a1ff..b77064a1ff 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/pt/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/pt/panel_teleport_history_item.xml
index 65f80fddd2..65f80fddd2 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_voice_effect.xml b/indra/newview/skins/default/xui/pt/panel_voice_effect.xml
index 1d7878408a..1d7878408a 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/pt/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml
index 1dfd2a69ca..1dfd2a69ca 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/pt/panel_world_map.xml b/indra/newview/skins/default/xui/pt/panel_world_map.xml
index accab068fd..accab068fd 100644..100755
--- a/indra/newview/skins/default/xui/pt/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/pt/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/pt/role_actions.xml b/indra/newview/skins/default/xui/pt/role_actions.xml
index 21b085431e..21b085431e 100644..100755
--- a/indra/newview/skins/default/xui/pt/role_actions.xml
+++ b/indra/newview/skins/default/xui/pt/role_actions.xml
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml b/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
index a5048e63b2..a5048e63b2 100644..100755
--- a/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
index 7908ea5f3a..7908ea5f3a 100644..100755
--- a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml
index d3cb087108..d3cb087108 100644..100755
--- a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml
index 3cfe0fe4f4..f0fd438cef 100644..100755
--- a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Comprar objeto" name="Buyobject"/>
<combo_box.item label="Pagar por objeto" name="Payobject"/>
<combo_box.item label="Abrir" name="Open"/>
+ <combo_box.item label="Zoom" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index bc72b86020..4bf18aab70 100644..100755
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -128,7 +128,7 @@
Sair
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=pt-BR&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
O visualizador utilizado já não é compatível com o Second Life. Visite a página abaixo para baixar uma versão atual: http://secondlife.com/download
@@ -571,8 +571,8 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="AvatarAway">
Distante
</string>
- <string name="AvatarBusy">
- Ocupado
+ <string name="AvatarDoNotDisturb">
+ Não perturbe
</string>
<string name="AvatarMuted">
Mudo
@@ -808,6 +808,12 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="ST_NO_JOINT">
Não é possível encontrar a raiz (ROOT) ou junção (JOINT).
</string>
+ <string name="NearbyChatTitle">
+ Bate-papo local
+ </string>
+ <string name="NearbyChatLabel">
+ (Bate-papo local)
+ </string>
<string name="whisper">
sussurra:
</string>
@@ -871,6 +877,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="ControlYourCamera">
Controle sua camera
</string>
+ <string name="AgentNameSubst">
+ (Você)
+ </string>
<string name="TeleportYourAgent">
Teletransportá-lo
</string>
@@ -955,18 +964,6 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="dictionary_files">
Dicionários
</string>
- <string name="AvatarSetNotAway">
- deixar como ausente
- </string>
- <string name="AvatarSetAway">
- deixar como ausente
- </string>
- <string name="AvatarSetNotBusy">
- deixar como não ocupado
- </string>
- <string name="AvatarSetBusy">
- Deixar como ocupado
- </string>
<string name="shape">
Silhueta
</string>
@@ -1923,8 +1920,8 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="PanelContentsNewScript">
Novo Script
</string>
- <string name="BusyModeResponseDefault">
- O residente para o qual escreveu está no modo &apos;ocupado&apos;, ou seja, ele prefere não receber nada no momento. Sua mensagem será exibida como uma MI mais tarde.
+ <string name="DoNotDisturbModeResponseDefault">
+ Este residente ativou o &quot;Não perturbe&quot; e verá sua mensagem mais tarde.
</string>
<string name="MuteByName">
(por nome)
@@ -2037,9 +2034,6 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Conteúdo
- </string>
<string name="AcquiredItems">
Itens adquiridos
</string>
@@ -3753,7 +3747,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
Região em geral
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Avatar visíveis e bate-papo permitido fora deste terreno
+ Os avatares neste lote não podem ser vistos ou ouvidos por avatares fora dele
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Os objetos que se movem podem não se comportar corretamente nesta região até que ela seja recarregada.
@@ -3830,6 +3824,12 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="IM_unblock_only_groups_friends">
Para visualizar esta mensagem, você deve desmarcar &quot;Apenas amigos e grupos podem me ligar ou enviar MIs&quot; em Preferências/Privacidade.
</string>
+ <string name="OnlineStatus">
+ Conectado
+ </string>
+ <string name="OfflineStatus">
+ Desconectado
+ </string>
<string name="answered_call">
Ligação atendida
</string>
@@ -3839,6 +3839,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="you_joined_call">
Você entrou na ligação
</string>
+ <string name="you_auto_rejected_call-im">
+ Você recusou automaticamente a chamada de voz enquanto &quot;Não perturbe&quot; estava ativado.
+ </string>
<string name="name_started_call">
[NAME] iniciou uma ligação de voz
</string>
@@ -3851,6 +3854,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="hang_up-im">
Saiu da ligação de voz
</string>
+ <string name="conference-title">
+ Bate-papo com várias pessoas
+ </string>
<string name="conference-title-incoming">
Conversa com [AGENT_NAME]
</string>
@@ -4726,6 +4732,9 @@ Tente colocar o caminho do editor entre aspas.
<string name="Command_Chat_Label">
Bate-papo
</string>
+ <string name="Command_Conversations_Label">
+ Conversas
+ </string>
<string name="Command_Compass_Label">
Bússola
</string>
@@ -4801,6 +4810,9 @@ Tente colocar o caminho do editor entre aspas.
<string name="Command_Chat_Tooltip">
Bater papo com pessoas próximas usando texto
</string>
+ <string name="Command_Conversations_Tooltip">
+ Conversar com todos
+ </string>
<string name="Command_Compass_Tooltip">
Bússola
</string>
@@ -4930,4 +4942,13 @@ Tente colocar o caminho do editor entre aspas.
<string name="UserDictionary">
[Usuário]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ As conversas não estão sendo registradas. Para começar a manter um registro, selecione &quot;Salvar: apenas registro&quot; ou &quot;Salvar: registro e transcrições&quot; em Preferências&gt; Bate-papo.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Nenhuma conversa será registrada. Para recomeçar a gravação de registros, selecione &quot;Salvar: apenas registro&quot; ou &quot;Salvar: registro e transcrições&quot; em Preferências&gt; Bate-papo.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Não há conversas registradas. Depois que você entrar em contato com alguém, ou alguém entrar em contato com você, um registro será exibido aqui.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pt/teleport_strings.xml b/indra/newview/skins/default/xui/pt/teleport_strings.xml
index 40fb4caebf..40fb4caebf 100644..100755
--- a/indra/newview/skins/default/xui/pt/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/pt/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/pt/xui_version.xml b/indra/newview/skins/default/xui/pt/xui_version.xml
index 0e777751d3..0e777751d3 100644..100755
--- a/indra/newview/skins/default/xui/pt/xui_version.xml
+++ b/indra/newview/skins/default/xui/pt/xui_version.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_aaa.xml b/indra/newview/skins/default/xui/ru/floater_aaa.xml
index aa18a4a4a3..aa18a4a4a3 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/ru/floater_aaa.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_about.xml b/indra/newview/skins/default/xui/ru/floater_about.xml
index bb6266ac9a..bb6266ac9a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_about.xml
+++ b/indra/newview/skins/default/xui/ru/floater_about.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_about_land.xml b/indra/newview/skins/default/xui/ru/floater_about_land.xml
index 12691df684..12691df684 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ru/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_activeim.xml b/indra/newview/skins/default/xui/ru/floater_activeim.xml
index adfa277822..adfa277822 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/ru/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/ru/floater_animation_anim_preview.xml
index 711afc2717..711afc2717 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/ru/floater_animation_bvh_preview.xml
index 8ad9d8657a..8ad9d8657a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_auction.xml b/indra/newview/skins/default/xui/ru/floater_auction.xml
index d84dc2e941..d84dc2e941 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_auction.xml
+++ b/indra/newview/skins/default/xui/ru/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_autoreplace.xml b/indra/newview/skins/default/xui/ru/floater_autoreplace.xml
index 6827931e5d..6827931e5d 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/ru/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_avatar.xml b/indra/newview/skins/default/xui/ru/floater_avatar.xml
index b480af9345..b480af9345 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/ru/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml b/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml
index edcc35d2b9..edcc35d2b9 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ru/floater_avatar_textures.xml
index cb39f66247..cb39f66247 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/ru/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_beacons.xml b/indra/newview/skins/default/xui/ru/floater_beacons.xml
index 38d257ff81..38d257ff81 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/ru/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_build_options.xml b/indra/newview/skins/default/xui/ru/floater_build_options.xml
index 9dd01dc823..9dd01dc823 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/ru/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml
index ccf13cf02a..ccf13cf02a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_bumps.xml b/indra/newview/skins/default/xui/ru/floater_bumps.xml
index f81f728290..f81f728290 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/ru/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_buy_contents.xml b/indra/newview/skins/default/xui/ru/floater_buy_contents.xml
index b1d66ae14d..b1d66ae14d 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/ru/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_buy_currency.xml b/indra/newview/skins/default/xui/ru/floater_buy_currency.xml
index 87e8bd524e..87e8bd524e 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/ru/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml
index ac8ad469fb..ac8ad469fb 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_buy_land.xml b/indra/newview/skins/default/xui/ru/floater_buy_land.xml
index 907a795393..907a795393 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/ru/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_buy_object.xml b/indra/newview/skins/default/xui/ru/floater_buy_object.xml
index d25f9eccc2..d25f9eccc2 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/ru/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_camera.xml b/indra/newview/skins/default/xui/ru/floater_camera.xml
index 52e7c62e06..52e7c62e06 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ru/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_chat_bar.xml b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml
index f6b2fc81e1..f6b2fc81e1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_choose_group.xml b/indra/newview/skins/default/xui/ru/floater_choose_group.xml
index ab8350f539..ab8350f539 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/ru/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_color_picker.xml b/indra/newview/skins/default/xui/ru/floater_color_picker.xml
index b7034bef0b..b7034bef0b 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/ru/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_conversation_log.xml b/indra/newview/skins/default/xui/ru/floater_conversation_log.xml
new file mode 100644
index 0000000000..090ac7193a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="ЖУРНАЛ РАЗГОВОРА">
+ <panel name="buttons_panel">
+ <filter_editor label="Фильтр для людей" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Действия с выбранным жителем или группой"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_conversation_preview.xml b/indra/newview/skins/default/xui/ru/floater_conversation_preview.xml
new file mode 100644
index 0000000000..23225fcf56
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="РАЗГОВОР:">
+ <floater.string name="Title">
+ РАЗГОВОР: [NAME]
+ </floater.string>
+ <text name="page_label" value="Страница"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_critical.xml b/indra/newview/skins/default/xui/ru/floater_critical.xml
index bc64f3a83e..bc64f3a83e 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_critical.xml
+++ b/indra/newview/skins/default/xui/ru/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml
index 3303a4f4c1..3303a4f4c1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_destinations.xml b/indra/newview/skins/default/xui/ru/floater_destinations.xml
index 5ba0841564..5ba0841564 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/ru/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_display_name.xml b/indra/newview/skins/default/xui/ru/floater_display_name.xml
index feb8a2721f..feb8a2721f 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/ru/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml
index 61d708c567..61d708c567 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml
index 354120ea72..354120ea72 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml
index f6def86380..f6def86380 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_environment_settings.xml b/indra/newview/skins/default/xui/ru/floater_environment_settings.xml
index d752c08cbb..d752c08cbb 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/ru/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_event.xml b/indra/newview/skins/default/xui/ru/floater_event.xml
index 5c5bcc6d09..5c5bcc6d09 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_event.xml
+++ b/indra/newview/skins/default/xui/ru/floater_event.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_fast_timers.xml b/indra/newview/skins/default/xui/ru/floater_fast_timers.xml
index 20936b8494..20936b8494 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/ru/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_font_test.xml b/indra/newview/skins/default/xui/ru/floater_font_test.xml
index b51732d3f1..b51732d3f1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/ru/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_gesture.xml b/indra/newview/skins/default/xui/ru/floater_gesture.xml
index 759d81b2c6..759d81b2c6 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/ru/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_god_tools.xml b/indra/newview/skins/default/xui/ru/floater_god_tools.xml
index 81329475aa..81329475aa 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ru/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml
index 43f8c36473..43f8c36473 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_help_browser.xml b/indra/newview/skins/default/xui/ru/floater_help_browser.xml
index 2f560340ed..2f560340ed 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/ru/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_how_to.xml b/indra/newview/skins/default/xui/ru/floater_how_to.xml
index 52525e5d33..52525e5d33 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/ru/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_hud.xml b/indra/newview/skins/default/xui/ru/floater_hud.xml
index b05113bfe0..b05113bfe0 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_hud.xml
+++ b/indra/newview/skins/default/xui/ru/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_im_container.xml b/indra/newview/skins/default/xui/ru/floater_im_container.xml
index b147cfa2b3..eba7a19cd4 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/ru/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="ОБЩЕНИЕ"/>
+<multi_floater name="floater_im_box" title="ОБЩЕНИЕ">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <button name="add_btn" tool_tip="Начать разговор"/>
+ <button name="speak_btn" tool_tip="Разговаривать через микрофон"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Свернуть/развернуть этот список"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Свернуть эту панель"/>
+ <text name="stub_textbox">
+ Разговор отображается в отдельном окне. [secondlife:/// Вернуть.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_im_session.xml b/indra/newview/skins/default/xui/ru/floater_im_session.xml
index 604d9dc6d3..ea110ffb44 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/ru/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="Кому" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] приглашен(а) на разговор."/>
+ <floater.string name="multiple_participants_added" value="[NAME] приглашены на разговор."/>
+ <floater.string name="tooltip_to_separate_window" value="Перенести этот разговор в отдельное окно"/>
+ <floater.string name="tooltip_to_main_window" value="Вернуть этот разговор в главное окно"/>
+ <floater.string name="start_call_button_tooltip" value="Открыть голосовое подключение"/>
+ <floater.string name="end_call_button_tooltip" value="Закрыть голосовое подключение"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Свернуть эту панель"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Свернуть список участников"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Развернуть список участников"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <menu_button name="gear_btn" tool_tip="Действия с выбранным жителем"/>
+ <button name="add_btn" tool_tip="Добавить участника в этот разговор"/>
+ <button name="voice_call_btn" tool_tip="Открыть голосовое подключение"/>
+ <button name="close_btn" tool_tip="Завершить этот разговор"/>
+ <button name="expand_collapse_btn" tool_tip="Развернуть/свернуть эту панель"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Переводить чат" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="Кому" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Показать/скрыть панель сообщений"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_image_preview.xml b/indra/newview/skins/default/xui/ru/floater_image_preview.xml
index dbc4c32b98..dbc4c32b98 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_import_collada.xml b/indra/newview/skins/default/xui/ru/floater_import_collada.xml
index 122315cb26..122315cb26 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/ru/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_incoming_call.xml b/indra/newview/skins/default/xui/ru/floater_incoming_call.xml
index 072c20147d..3f61421d0c 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/ru/floater_incoming_call.xml
@@ -10,7 +10,7 @@
анонимно
</floater.string>
<floater.string name="VoiceInviteP2P">
- вызывает.
+ вызывает вас.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
теперь участвует в групповом голосовом чате.
@@ -25,9 +25,9 @@
Хотите выйти из чата «[CURRENT_CHAT]» и присоединиться к этому голосовому чату?
</floater.string>
<text name="question">
- Хотите выйти из чата «[CURRENT_CHAT]» и присоединиться к этому голосовому чату?
+ Если вы ответите, вы покинете текущий голосовой чат.
</text>
- <button label="Принять" label_selected="Принять" name="Accept"/>
- <button label="Отклонить" label_selected="Отклонить" name="Reject"/>
- <button label="Начать IM" name="Start IM"/>
+ <button label="Ответить" label_selected="Ответить" name="Accept"/>
+ <button label="Игнорировать" label_selected="Игнорировать" name="Reject"/>
+ <button label="Открыть IM" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_inspect.xml b/indra/newview/skins/default/xui/ru/floater_inspect.xml
index f7bb981575..f7bb981575 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/ru/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml
index 9021b71fe2..9021b71fe2 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml
index 02068c57b8..02068c57b8 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_joystick.xml b/indra/newview/skins/default/xui/ru/floater_joystick.xml
index 66568563da..66568563da 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/ru/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
index c420006a03..c420006a03 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_land_holdings.xml b/indra/newview/skins/default/xui/ru/floater_land_holdings.xml
index 17d347867d..17d347867d 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/ru/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml
index d8047fc045..d8047fc045 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_lsl_guide.xml b/indra/newview/skins/default/xui/ru/floater_lsl_guide.xml
index 95a3b8b2a0..95a3b8b2a0 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/ru/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_map.xml b/indra/newview/skins/default/xui/ru/floater_map.xml
index 59ceb0a773..59ceb0a773 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_map.xml
+++ b/indra/newview/skins/default/xui/ru/floater_map.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_media_browser.xml b/indra/newview/skins/default/xui/ru/floater_media_browser.xml
index d1fc105046..d1fc105046 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/ru/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_media_settings.xml b/indra/newview/skins/default/xui/ru/floater_media_settings.xml
index 1515cbb3b8..1515cbb3b8 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/ru/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ru/floater_mem_leaking.xml
index 7aa5c27cde..7aa5c27cde 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/ru/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/ru/floater_merchant_outbox.xml
index 332fa3b82f..332fa3b82f 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/ru/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_model_preview.xml b/indra/newview/skins/default/xui/ru/floater_model_preview.xml
index 0c6d41b4ef..0c6d41b4ef 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_moveview.xml b/indra/newview/skins/default/xui/ru/floater_moveview.xml
index cb1fda1a1f..cb1fda1a1f 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_mute_object.xml b/indra/newview/skins/default/xui/ru/floater_mute_object.xml
index 44177acb53..44177acb53 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/ru/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_my_appearance.xml b/indra/newview/skins/default/xui/ru/floater_my_appearance.xml
index b90d80f3fd..b90d80f3fd 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/ru/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_my_inventory.xml b/indra/newview/skins/default/xui/ru/floater_my_inventory.xml
index 534d2a5774..534d2a5774 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_notification.xml b/indra/newview/skins/default/xui/ru/floater_notification.xml
index c3e299202c..c3e299202c 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_notification.xml
+++ b/indra/newview/skins/default/xui/ru/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_notifications_console.xml b/indra/newview/skins/default/xui/ru/floater_notifications_console.xml
index bd836590e1..bd836590e1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/ru/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_object_weights.xml b/indra/newview/skins/default/xui/ru/floater_object_weights.xml
index 41e0118732..41e0118732 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/ru/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_openobject.xml b/indra/newview/skins/default/xui/ru/floater_openobject.xml
index 5da308eecb..5da308eecb 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/ru/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
index 301206e473..301206e473 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_outgoing_call.xml b/indra/newview/skins/default/xui/ru/floater_outgoing_call.xml
index 5e50a75b85..5e50a75b85 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/ru/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/ru/floater_pathfinding_characters.xml
index ce7ffc3d20..ce7ffc3d20 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/ru/floater_pathfinding_console.xml
index fa72df04fd..8faddb1805 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Показать:
</text>
- <check_box label="Мир" name="show_world"/>
+ <check_box label="Тест" name="show_world"/>
<check_box label="Только перемещаемые предметы" name="show_world_movables_only"/>
<check_box label="Навигационная сетка" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
index db100fa415..db100fa415 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_pay.xml b/indra/newview/skins/default/xui/ru/floater_pay.xml
index 1471a7e133..1471a7e133 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_pay.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_pay_object.xml b/indra/newview/skins/default/xui/ru/floater_pay_object.xml
index 7d2da44ac1..7d2da44ac1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_people.xml b/indra/newview/skins/default/xui/ru/floater_people.xml
index 7abc34986a..7abc34986a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_people.xml
+++ b/indra/newview/skins/default/xui/ru/floater_people.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml
index a704b87bd1..a704b87bd1 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_picks.xml b/indra/newview/skins/default/xui/ru/floater_picks.xml
index e0ae8d6f03..e0ae8d6f03 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_picks.xml
+++ b/indra/newview/skins/default/xui/ru/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_places.xml b/indra/newview/skins/default/xui/ru/floater_places.xml
index 2a22a855ef..2a22a855ef 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_places.xml
+++ b/indra/newview/skins/default/xui/ru/floater_places.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_post_process.xml b/indra/newview/skins/default/xui/ru/floater_post_process.xml
index ae97670548..ae97670548 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/ru/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preferences.xml b/indra/newview/skins/default/xui/ru/floater_preferences.xml
index fc244b9d8b..fc244b9d8b 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml
index 4eecfedf17..4eecfedf17 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preview_animation.xml b/indra/newview/skins/default/xui/ru/floater_preview_animation.xml
index 22c6bc5901..22c6bc5901 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ru/floater_preview_gesture.xml
index fde2cea00e..fde2cea00e 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preview_notecard.xml b/indra/newview/skins/default/xui/ru/floater_preview_notecard.xml
index 2f39d4a4a4..2f39d4a4a4 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preview_sound.xml b/indra/newview/skins/default/xui/ru/floater_preview_sound.xml
index 691b2f3e82..691b2f3e82 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_preview_texture.xml b/indra/newview/skins/default/xui/ru/floater_preview_texture.xml
index c9cb87282a..c9cb87282a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_price_for_listing.xml b/indra/newview/skins/default/xui/ru/floater_price_for_listing.xml
index fd513c8cdb..fd513c8cdb 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/ru/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_publish_classified.xml b/indra/newview/skins/default/xui/ru/floater_publish_classified.xml
index b9e33d6e22..b9e33d6e22 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/ru/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_region_debug_console.xml b/indra/newview/skins/default/xui/ru/floater_region_debug_console.xml
index d413a0bdcc..d413a0bdcc 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/ru/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_region_info.xml b/indra/newview/skins/default/xui/ru/floater_region_info.xml
index 011b58e385..011b58e385 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/ru/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_report_abuse.xml b/indra/newview/skins/default/xui/ru/floater_report_abuse.xml
index 6fdbdacadc..6fdbdacadc 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ru/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_debug.xml b/indra/newview/skins/default/xui/ru/floater_script_debug.xml
index b91fc4e4ff..b91fc4e4ff 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_limits.xml b/indra/newview/skins/default/xui/ru/floater_script_limits.xml
index 7805eac03b..7805eac03b 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_preview.xml b/indra/newview/skins/default/xui/ru/floater_script_preview.xml
index 78cefb7aa7..78cefb7aa7 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_queue.xml b/indra/newview/skins/default/xui/ru/floater_script_queue.xml
index 4f2e389b19..4f2e389b19 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_script_search.xml b/indra/newview/skins/default/xui/ru/floater_script_search.xml
index fc040f6593..fc040f6593 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/ru/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_search.xml b/indra/newview/skins/default/xui/ru/floater_search.xml
index 405a6598ac..405a6598ac 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_search.xml
+++ b/indra/newview/skins/default/xui/ru/floater_search.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_select_key.xml b/indra/newview/skins/default/xui/ru/floater_select_key.xml
index 99c2b9a2c4..99c2b9a2c4 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/ru/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_sell_land.xml b/indra/newview/skins/default/xui/ru/floater_sell_land.xml
index e15f761101..e15f761101 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ru/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml
index 7db014ef53..7db014ef53 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_snapshot.xml b/indra/newview/skins/default/xui/ru/floater_snapshot.xml
index 7e88630b32..7e88630b32 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ru/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
index fc8de858cd..fc8de858cd 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_sound_preview.xml b/indra/newview/skins/default/xui/ru/floater_sound_preview.xml
index 6fdb12b76b..6fdb12b76b 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/ru/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_spellcheck.xml b/indra/newview/skins/default/xui/ru/floater_spellcheck.xml
index 691b4a89c3..691b4a89c3 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/ru/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/ru/floater_spellcheck_import.xml
index a01866db73..a01866db73 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/ru/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_stats.xml b/indra/newview/skins/default/xui/ru/floater_stats.xml
index 46426495dc..46426495dc 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ru/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_sys_well.xml b/indra/newview/skins/default/xui/ru/floater_sys_well.xml
index b6975ac9ab..b6975ac9ab 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/ru/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_telehub.xml b/indra/newview/skins/default/xui/ru/floater_telehub.xml
index 799fd57b5b..799fd57b5b 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/ru/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/ru/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/ru/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/ru/floater_test_text_vertical_aligment.xml
index d0bd86160e..d0bd86160e 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/ru/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml
index db37089aeb..a9a21e7d4a 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml
@@ -19,7 +19,7 @@
<button label="По умолчанию" label_selected="По умолчанию" name="Default"/>
<button label="Очистить" label_selected="Очистить" name="Blank"/>
<button label="Нет" label_selected="Нет" name="None"/>
- <check_box initial_value="истина" label="Просмотр вживую" name="apply_immediate_check"/>
+ <check_box initial_value="истина" label="Применить сейчас" name="apply_immediate_check"/>
<text name="preview_disabled" value="Просмотр отключен"/>
<filter_editor label="Фильтровать текстуры" name="inventory search editor"/>
<check_box initial_value="ложь" label="Показывать папки" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
index 628e6c5c87..628e6c5c87 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml
index c312f73428..c312f73428 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ru/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_top_objects.xml b/indra/newview/skins/default/xui/ru/floater_top_objects.xml
index c7ece5c9c9..c7ece5c9c9 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ru/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_tos.xml b/indra/newview/skins/default/xui/ru/floater_tos.xml
index bd72f6b308..bd72f6b308 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ru/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_toybox.xml b/indra/newview/skins/default/xui/ru/floater_toybox.xml
index a4754ad7ab..a4754ad7ab 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/ru/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_translation_settings.xml b/indra/newview/skins/default/xui/ru/floater_translation_settings.xml
index ad280a50dd..ad280a50dd 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/ru/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_url_entry.xml b/indra/newview/skins/default/xui/ru/floater_url_entry.xml
index 59f8dd0c31..59f8dd0c31 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/ru/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/ru/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..5a7e7a7061
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="ГРОМКОСТЬ ГОЛОСОВОГО ЧАТА">
+ <slider label="Голосовой чат" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
index 2b23086062..2b23086062 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_voice_effect.xml b/indra/newview/skins/default/xui/ru/floater_voice_effect.xml
index 1eb8a94d7a..d3cef042a3 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/ru/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Места" name="voice_effects" title="ИЗМЕНЕНИЕ ГОЛОСА">
+<floater label="Места" name="voice_effects" title="ПРОСМОТР ИЗМЕНЕНИЯ ГОЛОСА">
<string name="no_voice_effect">
(Нет изменения голоса)
</string>
diff --git a/indra/newview/skins/default/xui/ru/floater_voice_volume.xml b/indra/newview/skins/default/xui/ru/floater_voice_volume.xml
new file mode 100644
index 0000000000..aca6bd518a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="ГРОМКОСТЬ ГОЛОСА">
+ <slider name="volume_slider" tool_tip="Громкость голоса" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_web_content.xml b/indra/newview/skins/default/xui/ru/floater_web_content.xml
index 403ab0ef5d..403ab0ef5d 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/ru/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml
index 811a2756fa..811a2756fa 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_window_size.xml b/indra/newview/skins/default/xui/ru/floater_window_size.xml
index fbff6a72b2..fbff6a72b2 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/ru/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/ru/floater_world_map.xml b/indra/newview/skins/default/xui/ru/floater_world_map.xml
index ef8dfe22ae..ef8dfe22ae 100644..100755
--- a/indra/newview/skins/default/xui/ru/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/ru/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/ru/inspect_avatar.xml b/indra/newview/skins/default/xui/ru/inspect_avatar.xml
index e38ae967cc..e38ae967cc 100644..100755
--- a/indra/newview/skins/default/xui/ru/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/ru/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/ru/inspect_group.xml b/indra/newview/skins/default/xui/ru/inspect_group.xml
index ca600b0a1f..ca600b0a1f 100644..100755
--- a/indra/newview/skins/default/xui/ru/inspect_group.xml
+++ b/indra/newview/skins/default/xui/ru/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/ru/inspect_object.xml b/indra/newview/skins/default/xui/ru/inspect_object.xml
index 1a43357cd3..1a43357cd3 100644..100755
--- a/indra/newview/skins/default/xui/ru/inspect_object.xml
+++ b/indra/newview/skins/default/xui/ru/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/ru/inspect_remote_object.xml b/indra/newview/skins/default/xui/ru/inspect_remote_object.xml
index eec4817f02..eec4817f02 100644..100755
--- a/indra/newview/skins/default/xui/ru/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/ru/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml
index 786e571527..786e571527 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_attachment_other.xml b/indra/newview/skins/default/xui/ru/menu_attachment_other.xml
index fb1c24448b..fb1c24448b 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/ru/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_attachment_self.xml b/indra/newview/skins/default/xui/ru/menu_attachment_self.xml
index f241b48871..f241b48871 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/ru/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
index ac2b4be003..ac2b4be003 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_other.xml b/indra/newview/skins/default/xui/ru/menu_avatar_other.xml
index fb283c9d80..fb283c9d80 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/ru/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_self.xml b/indra/newview/skins/default/xui/ru/menu_avatar_self.xml
index b72f3dcc42..b72f3dcc42 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/ru/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_cof_attachment.xml b/indra/newview/skins/default/xui/ru/menu_cof_attachment.xml
index 72d1bc52b5..72d1bc52b5 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/ru/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_cof_body_part.xml b/indra/newview/skins/default/xui/ru/menu_cof_body_part.xml
index ee0a0c70ed..ee0a0c70ed 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/ru/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_cof_clothing.xml b/indra/newview/skins/default/xui/ru/menu_cof_clothing.xml
index bbdf4fd0d4..bbdf4fd0d4 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/ru/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_cof_gear.xml b/indra/newview/skins/default/xui/ru/menu_cof_gear.xml
index 0332c03a04..b7a32dfd75 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear COF">
<menu label="Новая одежда" name="COF.Gear.New_Clothes"/>
- <menu label="Новые части тела" name="COF.Geear.New_Body_Parts"/>
+ <menu label="Новые части тела" name="COF.Gear.New_Body_Parts"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_conversation.xml b/indra/newview/skins/default/xui/ru/menu_conversation.xml
new file mode 100644
index 0000000000..530b1ea704
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Закрыть разговор" name="close_conversation"/>
+ <menu_item_call label="Открыть голосовой чат" name="open_voice_conversation"/>
+ <menu_item_call label="Прекратить голосовой чат" name="disconnect_from_voice"/>
+ <menu_item_call label="Смотреть профиль" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Предложить телепортацию" name="offer_teleport"/>
+ <menu_item_call label="Голосовой вызов" name="voice_call"/>
+ <menu_item_call label="Журнал чата..." name="chat_history"/>
+ <menu_item_call label="Добавить друга" name="add_friend"/>
+ <menu_item_call label="Удалить друга" name="remove_friend"/>
+ <menu_item_call label="Удалить друзей" name="remove_friends"/>
+ <menu_item_call label="Пригласить в группу..." name="invite_to_group"/>
+ <menu_item_call label="Приблизить" name="zoom_in"/>
+ <menu_item_call label="Карта" name="map"/>
+ <menu_item_call label="Поделиться" name="share"/>
+ <menu_item_call label="Заплатить" name="pay"/>
+ <menu_item_check label="Блокировать голос" name="block_unblock"/>
+ <menu_item_check label="Блокировать текст" name="MuteText"/>
+ <menu_item_call label="Профиль группы" name="group_profile"/>
+ <menu_item_call label="Активировать группу" name="activate_group"/>
+ <menu_item_call label="Покинуть группу" name="leave_group"/>
+ <context_menu label="Параметры модератора" name="Moderator Options">
+ <menu_item_check label="Разрешить текстовый чат" name="AllowTextChat"/>
+ <menu_item_call label="Заглушить этого участника" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Позволить говорить этому участнику" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Заглушить всех" name="ModerateVoiceMute"/>
+ <menu_item_call label="Позволить говорить всем" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/ru/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..3fbffbe038
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM..." name="IM"/>
+ <menu_item_call label="Голосовой вызов..." name="Call"/>
+ <menu_item_call label="Открыть журнал чата..." name="Chat history"/>
+ <menu_item_call label="Смотреть профиль" name="View Profile"/>
+ <menu_item_call label="Предложить телепорт" name="teleport"/>
+ <menu_item_call label="Добавить друга" name="add_friend"/>
+ <menu_item_call label="Удалить из друзей" name="remove_friend"/>
+ <menu_item_call label="Пригласить в группу..." name="Invite"/>
+ <menu_item_call label="Карта" name="Map"/>
+ <menu_item_call label="Поделиться" name="Share"/>
+ <menu_item_call label="Заплатить" name="Pay"/>
+ <menu_item_check label="Черный список" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/ru/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..928146e273
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Сортировать по имени" name="sort_by_name"/>
+ <menu_item_check label="Сортировать по дате" name="sort_by_date"/>
+ <menu_item_check label="Сначала друзья" name="sort_by_friends"/>
+ <menu_item_call label="Посмотреть журнал локального чата..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_edit.xml b/indra/newview/skins/default/xui/ru/menu_edit.xml
index 0dddea9c04..0dddea9c04 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_edit.xml
+++ b/indra/newview/skins/default/xui/ru/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_favorites.xml b/indra/newview/skins/default/xui/ru/menu_favorites.xml
index 074be06ba9..074be06ba9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/ru/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml b/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml
index d0b68cefbd..d0b68cefbd 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_group_plus.xml b/indra/newview/skins/default/xui/ru/menu_group_plus.xml
index edd012b964..edd012b964 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/ru/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml
index 34e5f4c0e4..34e5f4c0e4 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_im_conversation.xml b/indra/newview/skins/default/xui/ru/menu_im_conversation.xml
new file mode 100644
index 0000000000..1db0b8bae3
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Смотреть профиль" name="View Profile"/>
+ <menu_item_call label="Добавить друга" name="Add Friend"/>
+ <menu_item_call label="Удалить друга" name="remove_friend"/>
+ <menu_item_call label="Предложить телепортацию" name="offer_teleport"/>
+ <menu_item_call label="Пригласить в группу..." name="invite_to_group"/>
+ <menu_item_call label="Журнал чата..." name="chat_history"/>
+ <menu_item_call label="Приблизить" name="zoom_in"/>
+ <menu_item_call label="Карта" name="map"/>
+ <menu_item_call label="Поделиться" name="Share"/>
+ <menu_item_call label="Заплатить" name="Pay"/>
+ <menu_item_check label="Блокировать голос" name="Block/Unblock"/>
+ <menu_item_check label="Блокировать текст" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/ru/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..35cff8e4bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Компактный вид" name="compact_view"/>
+ <menu_item_check label="Развернутый вид" name="expanded_view"/>
+ <menu_item_check label="Показать время" name="IMShowTime"/>
+ <menu_item_check label="Показывать имена при разговорах" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml
index 8b60a585ab..8b60a585ab 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml
index 766b3847a7..766b3847a7 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml
index a33f6d5be8..a33f6d5be8 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml
index 957609a7a3..957609a7a3 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml
index 30953e830b..30953e830b 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml
index 901bb615e0..901bb615e0 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml
index 95d162d7fe..95d162d7fe 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inventory.xml b/indra/newview/skins/default/xui/ru/menu_inventory.xml
index 37ee19fc1d..37ee19fc1d 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inventory_add.xml b/indra/newview/skins/default/xui/ru/menu_inventory_add.xml
index 9a240c653e..9a240c653e 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml
index 9fc0b6d44e..9fc0b6d44e 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_land.xml b/indra/newview/skins/default/xui/ru/menu_land.xml
index 89889d7bf6..89889d7bf6 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_land.xml
+++ b/indra/newview/skins/default/xui/ru/menu_land.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_landmark.xml b/indra/newview/skins/default/xui/ru/menu_landmark.xml
index 24b60f9d86..24b60f9d86 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/ru/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_login.xml b/indra/newview/skins/default/xui/ru/menu_login.xml
index 93a5ffbb25..93a5ffbb25 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_login.xml
+++ b/indra/newview/skins/default/xui/ru/menu_login.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_media_ctrl.xml b/indra/newview/skins/default/xui/ru/menu_media_ctrl.xml
index d7485b02af..d7485b02af 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/ru/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_mini_map.xml b/indra/newview/skins/default/xui/ru/menu_mini_map.xml
index 6b3db11609..6b3db11609 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/ru/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml
index 5ae5e7dfbc..5ae5e7dfbc 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_navbar.xml b/indra/newview/skins/default/xui/ru/menu_navbar.xml
index 2dd0c0df36..2dd0c0df36 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/ru/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_nearby_chat.xml b/indra/newview/skins/default/xui/ru/menu_nearby_chat.xml
index 4b5346d083..4b5346d083 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/ru/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_notification_well_button.xml b/indra/newview/skins/default/xui/ru/menu_notification_well_button.xml
index 4d067e232a..4d067e232a 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/ru/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_object.xml b/indra/newview/skins/default/xui/ru/menu_object.xml
index 288df3beb9..288df3beb9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_object.xml
+++ b/indra/newview/skins/default/xui/ru/menu_object.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_object_icon.xml b/indra/newview/skins/default/xui/ru/menu_object_icon.xml
index 6229b2e72f..0c50abcfbd 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/ru/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Профиль объекта..." name="Object Profile"/>
<menu_item_call label="Блокировать..." name="Block"/>
+ <menu_item_call label="Показать на карте" name="show_on_map"/>
+ <menu_item_call label="Телепорт в местоположение объекта" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_outfit_gear.xml b/indra/newview/skins/default/xui/ru/menu_outfit_gear.xml
index 93dbd7d6a7..d379a17216 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Новые волосы" name="New Hair"/>
<menu_item_call label="Новые глаза" name="New Eyes"/>
</menu>
+ <menu_item_call label="Открыть все папки" name="expand"/>
+ <menu_item_call label="Закрыть все папки" name="collapse"/>
<menu_item_call label="Переименовать костюм" name="rename"/>
<menu_item_call label="Удалить костюм" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_outfit_tab.xml b/indra/newview/skins/default/xui/ru/menu_outfit_tab.xml
index 46404195b9..46404195b9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/ru/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_participant_list.xml b/indra/newview/skins/default/xui/ru/menu_participant_list.xml
index 932ad5bacf..932ad5bacf 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ru/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_participant_view.xml b/indra/newview/skins/default/xui/ru/menu_participant_view.xml
new file mode 100644
index 0000000000..851a42d428
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Сортировать разговоры по типу" name="sort_sessions_by_type"/>
+ <menu_item_check label="Сортировать разговоры по имени" name="sort_sessions_by_name"/>
+ <menu_item_check label="Сортировать разговоры по последнему действию" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Сортировать участников по имени" name="sort_participants_by_name"/>
+ <menu_item_check label="Сортировать участников по последнему действию" name="sort_participants_by_recent"/>
+ <menu_item_call label="Изменить настройки..." name="chat_preferences"/>
+ <menu_item_call label="Настройки приватности..." name="privacy_preferences"/>
+ <menu_item_check label="Журнал разговора..." name="Conversation"/>
+ <menu_item_check label="Перевести локальный чат" name="Translate_chat"/>
+ <menu_item_check label="Настройки перевода..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/ru/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..157f2ad5e2
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Разблокировать" name="unblock"/>
+ <menu_item_call label="Профиль…" name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/ru/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..f42e8f8609
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Блокировать жителя по имени..." name="block_resident_by_name"/>
+ <menu_item_call label="Блокировать объект по имени" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/ru/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..8c0150e8ae
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Сортировать по имени" name="sort_by_name"/>
+ <menu_item_check label="Сортировать по типу" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_friends_view.xml b/indra/newview/skins/default/xui/ru/menu_people_friends_view.xml
new file mode 100644
index 0000000000..7b2dba0539
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Сортировать по имени" name="sort_name"/>
+ <menu_item_check label="Сортировать по статусу" name="sort_status"/>
+ <menu_item_check label="Показывать значки людей" name="view_icons"/>
+ <menu_item_check label="Показывать разрешенные действия" name="view_permissions"/>
+ <menu_item_check label="Посмотреть журнал разговора..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml
index 0fa252aa99..0fa252aa99 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_people_groups.xml b/indra/newview/skins/default/xui/ru/menu_people_groups.xml
index e734a83ef0..78d73c9d1e 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Информация" name="View Info"/>
<menu_item_call label="Чат" name="Chat"/>
- <menu_item_call label="Звонок" name="Call"/>
+ <menu_item_call label="Голосовой вызов" name="Call"/>
<menu_item_call label="Активация" name="Activate"/>
<menu_item_call label="Покинуть" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_groups_view.xml b/indra/newview/skins/default/xui/ru/menu_people_groups_view.xml
new file mode 100644
index 0000000000..cbf1c64774
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Показывать значки группы" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml
index 0358068db9..0358068db9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_people_nearby.xml b/indra/newview/skins/default/xui/ru/menu_people_nearby.xml
index ebce959044..d05b7e7d01 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Смотреть профиль" name="View Profile"/>
- <menu_item_call label="В друзья" name="Add Friend"/>
- <menu_item_call label="Удалить из друзей" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Звонок" name="Call"/>
- <menu_item_call label="Карта" name="Map"/>
- <menu_item_call label="Поделиться" name="Share"/>
- <menu_item_call label="Заплатить" name="Pay"/>
- <menu_item_check label="Черный список" name="Block/Unblock"/>
- <menu_item_call label="Предложить телепорт" name="teleport"/>
+ <menu_item_call label="Смотреть профиль" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Предложить телепорт" name="offer_teleport"/>
+ <menu_item_call label="Голосовой вызов" name="voice_call"/>
+ <menu_item_call label="Посмотреть журнал чата..." name="chat_history"/>
+ <menu_item_call label="Добавить друга" name="add_friend"/>
+ <menu_item_call label="Удалить из друзей" name="remove_friend"/>
+ <menu_item_call label="Пригласить в группу..." name="invite_to_group"/>
+ <menu_item_call label="Приблизить" name="zoom_in"/>
+ <menu_item_call label="Карта" name="map"/>
+ <menu_item_call label="Поделиться" name="share"/>
+ <menu_item_call label="Заплатить" name="pay"/>
+ <menu_item_check label="Черный список" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml
index 0e8e0d4053..88eb56c9f5 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Добавить в друзья" name="Add Friends"/>
- <menu_item_call label="Удалить из друзей" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="Звонок" name="Call"/>
- <menu_item_call label="Поделиться" name="Share"/>
- <menu_item_call label="Заплатить" name="Pay"/>
- <menu_item_call label="Предложить телепорт" name="teleport"/>
+ <menu_item_call label="Добавить в друзья" name="add_friends"/>
+ <menu_item_call label="Удалить из друзей" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="Звонок" name="call"/>
+ <menu_item_call label="Поделиться" name="share"/>
+ <menu_item_call label="Заплатить" name="pay"/>
+ <menu_item_call label="Предложить телепорт" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/ru/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..2bc353ad58
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Сортировать по недавно говорившим" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Сортировать по имени" name="sort_name"/>
+ <menu_item_check label="Сортировать по расстоянию" name="sort_distance"/>
+ <menu_item_check label="Показывать значки людей" name="view_icons"/>
+ <menu_item_check label="Смотреть карту" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml
index 4589815f6b..4589815f6b 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_people_recent_view.xml b/indra/newview/skins/default/xui/ru/menu_people_recent_view.xml
new file mode 100644
index 0000000000..a009cf081f
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Сортировать по времени" name="sort_most"/>
+ <menu_item_check label="Сортировать по имени" name="sort_name"/>
+ <menu_item_check label="Показывать значки людей" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml
index 2ac83ffe52..2ac83ffe52 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_picks.xml b/indra/newview/skins/default/xui/ru/menu_picks.xml
index 839c7411a6..839c7411a6 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_picks.xml
+++ b/indra/newview/skins/default/xui/ru/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_picks_plus.xml b/indra/newview/skins/default/xui/ru/menu_picks_plus.xml
index 1bc4078179..1bc4078179 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/ru/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_place.xml b/indra/newview/skins/default/xui/ru/menu_place.xml
index ee8878c131..ee8878c131 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_place.xml
+++ b/indra/newview/skins/default/xui/ru/menu_place.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_place_add_button.xml b/indra/newview/skins/default/xui/ru/menu_place_add_button.xml
index b1a38fb9eb..b1a38fb9eb 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/ru/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml
index 25df8c5d19..25df8c5d19 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml
index b1ebd4af83..b1ebd4af83 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_profile_overflow.xml b/indra/newview/skins/default/xui/ru/menu_profile_overflow.xml
index 1865fead7b..1865fead7b 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/ru/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_save_outfit.xml b/indra/newview/skins/default/xui/ru/menu_save_outfit.xml
index 88947e1433..88947e1433 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/ru/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_script_chiclet.xml b/indra/newview/skins/default/xui/ru/menu_script_chiclet.xml
index 6cacff3870..6cacff3870 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/ru/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_slurl.xml b/indra/newview/skins/default/xui/ru/menu_slurl.xml
index f02549055c..f02549055c 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/ru/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml
index 332f2784b9..332f2784b9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
index 6a22fd00dc..6a22fd00dc 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml
index 9b2434a310..9b2434a310 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_text_editor.xml b/indra/newview/skins/default/xui/ru/menu_text_editor.xml
index 0c928308a1..0c928308a1 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/ru/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_toolbars.xml b/indra/newview/skins/default/xui/ru/menu_toolbars.xml
index aa05dbc390..aa05dbc390 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/ru/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_topinfobar.xml b/indra/newview/skins/default/xui/ru/menu_topinfobar.xml
index 76cadbe5a4..76cadbe5a4 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/ru/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_agent.xml b/indra/newview/skins/default/xui/ru/menu_url_agent.xml
index 0ba3ee152a..230d049fad 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Показать профиль жителя" name="show_agent"/>
+ <menu_item_call label="Смотреть профиль" name="show_agent"/>
+ <menu_item_call label="Отправить сообщение..." name="send_im"/>
+ <menu_item_call label="Добавить в друзья..." name="add_friend"/>
<menu_item_call label="Копировать название в буфер обмена" name="url_copy_label"/>
<menu_item_call label="Копировать URL-адрес SL в буфер обмена" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_url_group.xml b/indra/newview/skins/default/xui/ru/menu_url_group.xml
index f25e2a7eb8..f25e2a7eb8 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_http.xml b/indra/newview/skins/default/xui/ru/menu_url_http.xml
index 781211b16f..781211b16f 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_inventory.xml b/indra/newview/skins/default/xui/ru/menu_url_inventory.xml
index 6127bf9868..6127bf9868 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_map.xml b/indra/newview/skins/default/xui/ru/menu_url_map.xml
index bbf64f20e9..bbf64f20e9 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_objectim.xml b/indra/newview/skins/default/xui/ru/menu_url_objectim.xml
index 6e7800d3f5..1326db708e 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Показать информацию об объекте" name="show_object"/>
+ <menu_item_call label="Профиль объекта..." name="show_object"/>
<menu_item_call label="Показать на карте" name="show_on_map"/>
<menu_item_call label="Телепорт в местоположение объекта" name="teleport_to_object"/>
<menu_item_call label="Копировать название объекта в буфер обмена" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/ru/menu_url_parcel.xml b/indra/newview/skins/default/xui/ru/menu_url_parcel.xml
index 84a679703a..84a679703a 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_slapp.xml b/indra/newview/skins/default/xui/ru/menu_url_slapp.xml
index 3d582ea2c5..3d582ea2c5 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_slurl.xml b/indra/newview/skins/default/xui/ru/menu_url_slurl.xml
index cbceafea21..cbceafea21 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_url_teleport.xml b/indra/newview/skins/default/xui/ru/menu_url_teleport.xml
index 2ecde09383..2ecde09383 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/ru/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml
index d9425937c3..d6625361c5 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Остановить анимацию" name="Stop Animating My Avatar"/>
<menu_item_call label="Ходьба / бег / полет..." name="Walk / run / fly"/>
</menu>
- <menu label="Статус" name="Status">
- <menu_item_call label="Нет на месте" name="Set Away"/>
- <menu_item_call label="Не беспокоить" name="Set Busy"/>
- </menu>
+ <menu label="Статус" name="Status"/>
<menu_item_call label="Купить L$..." name="Buy and Sell L$"/>
<menu_item_call label="Торговые исходящие..." name="MerchantOutbox"/>
<menu_item_call label="Информационная панель аккаунта..." name="Manage My Account"/>
@@ -30,14 +27,18 @@
<menu_item_call label="Выход из [APP_NAME]" name="Quit"/>
</menu>
<menu label="Общение" name="Communicate">
- <menu_item_check label="Чат..." name="Nearby Chat"/>
+ <menu_item_check label="Разговоры..." name="Conversations"/>
+ <menu_item_check label="Локальный чат..." name="Nearby Chat"/>
<menu_item_check label="Говорить" name="Speak"/>
- <menu_item_check label="Настройки голоса..." name="Nearby Voice"/>
- <menu_item_check label="Изменение голоса..." name="ShowVoice"/>
+ <menu label="Изменение голоса" name="VoiceMorphing">
+ <menu_item_check label="Без изменения голоса" name="NoVoiceMorphing"/>
+ <menu_item_check label="Просмотр..." name="Preview"/>
+ <menu_item_call label="Подписаться..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Жесты..." name="Gestures"/>
- <menu_item_call label="Друзья" name="My Friends"/>
- <menu_item_call label="Группы" name="My Groups"/>
- <menu_item_call label="Люди неподалеку" name="Active Speakers"/>
+ <menu_item_check label="Друзья" name="My Friends"/>
+ <menu_item_check label="Группы" name="My Groups"/>
+ <menu_item_check label="Люди неподалеку" name="Active Speakers"/>
<menu_item_call label="Черный список" name="Block List"/>
</menu>
<menu label="Мир" name="World">
@@ -113,7 +114,6 @@
<menu_item_call label="Купить" name="Menu Object Buy"/>
<menu_item_call label="Взять" name="Menu Object Take"/>
<menu_item_call label="Взять копию" name="Take Copy"/>
- <menu_item_call label="Сохранить в моем инвентаре" name="Save Object Back to My Inventory"/>
<menu_item_call label="Сохранить в контенте объектов" name="Save Object Back to Object Contents"/>
<menu_item_call label="Вернуть объект" name="Return Object back to Owner"/>
</menu>
@@ -128,6 +128,7 @@
<menu_item_call label="Наборы связей..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Персонажи..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Просмотр/тестирование..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Восстановить регион" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Параметры" name="Options">
<menu_item_check label="Показать расширенные разрешения" name="DebugPermissions"/>
@@ -157,6 +158,13 @@
<menu label="Справка" name="Help">
<menu_item_call label="Инструкции..." name="How To"/>
<menu_item_call label="Справка по [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Руководство пользователя" name="User’s guide"/>
+ <menu_item_call label="База знаний" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Форумы сообщества" name="Community Forums"/>
+ <menu_item_call label="Портал поддержки" name="Support portal"/>
+ <menu_item_call label="Новости [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Блоги [SECOND_LIFE]" name="Second Life Blogs"/>
<menu_item_call label="Жалоба" name="Report Abuse"/>
<menu_item_call label="Сообщить об ошибке" name="Report Bug"/>
<menu_item_call label="О [APP_NAME]" name="About Second Life"/>
@@ -383,9 +391,14 @@
<menu_item_call label="Проверка женщины" name="Test Female"/>
<menu_item_check label="Разрешить выбор аватара" name="Allow Select Avatar"/>
</menu>
+ <menu label="Скорость анимации" name="Animation Speed">
+ <menu_item_call label="Ускорить все анимации на 10%" name="All Animations 10 Faster"/>
+ <menu_item_call label="Замедлить все анимации на 10%" name="All Animations 10 Slower"/>
+ <menu_item_call label="Восстановить скорость анимаций" name="Reset All Animation Speed"/>
+ <menu_item_check label="Анимация медленных движений" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Скинуть параметры" name="Force Params to Default"/>
<menu_item_check label="Данные об анимации" name="Animation Info"/>
- <menu_item_check label="Анимация медленных движений" name="Slow Motion Animations"/>
<menu_item_check label="Показать взгляд" name="Show Look At"/>
<menu_item_check label="Показать указание" name="Show Point At"/>
<menu_item_check label="Отладка обновленных движений суставов" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml
index 2832e17b7d..2832e17b7d 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_wearing_gear.xml b/indra/newview/skins/default/xui/ru/menu_wearing_gear.xml
index c2351fbfff..c2351fbfff 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/ru/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/ru/menu_wearing_tab.xml b/indra/newview/skins/default/xui/ru/menu_wearing_tab.xml
index f178b39c77..f178b39c77 100644..100755
--- a/indra/newview/skins/default/xui/ru/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/ru/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/ru/mime_types.xml b/indra/newview/skins/default/xui/ru/mime_types.xml
index 7ed23b5d53..7ed23b5d53 100644..100755
--- a/indra/newview/skins/default/xui/ru/mime_types.xml
+++ b/indra/newview/skins/default/xui/ru/mime_types.xml
diff --git a/indra/newview/skins/default/xui/ru/mime_types_linux.xml b/indra/newview/skins/default/xui/ru/mime_types_linux.xml
index a42b0bb9cc..a42b0bb9cc 100644..100755
--- a/indra/newview/skins/default/xui/ru/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/ru/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/ru/mime_types_mac.xml b/indra/newview/skins/default/xui/ru/mime_types_mac.xml
index 7ed23b5d53..7ed23b5d53 100644..100755
--- a/indra/newview/skins/default/xui/ru/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/ru/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 85b7074253..00ab0b5763 100644..100755
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -516,6 +516,24 @@
</url>
<usetemplate ignoretext="Мой графический драйвер устарел" name="okcancelignore" notext="Нет" yestext="Да"/>
</notification>
+ <notification name="AMDOldDriver">
+ Возможно, для вашей видеокарты имеется более новый драйвер. Обновление драйвера может существенно повысить быстродействие.
+
+ Проверить наличие обновления для драйвера по адресу [_URL]?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Мой графический драйвер устарел" name="okcancelignore" notext="Нет" yestext="Да"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Возможно, для вашей видеокарты имеется более новый драйвер. Обновление драйвера может существенно повысить быстродействие.
+
+ Проверить наличие обновления для драйвера по адресу [_URL]?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=ru-ru
+ </url>
+ <usetemplate ignoretext="Мой графический драйвер устарел" name="okcancelignore" notext="Нет" yestext="Да"/>
+ </notification>
<notification name="UnknownGPU">
В вашей системе установлена графическая карта, которую [APP_NAME] не может распознать.
Так часто бывает, если новое оборудование еще не было проверено на работу с [APP_NAME]. Скорее всего, оно будет работать нормально, но, возможно, придется отрегулировать параметры графики.
@@ -1546,10 +1564,13 @@ http://secondlife.com/download.
Сейчас невозможно предложить дружбу. Повторите попытку через минуту.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="BusyModeSet">
- Установлен режим «Занят».
-Сообщения чата и IM будут скрыты. На IM-сообщения будет возвращаться заданный ответ в режиме «Занят». Все предложения телепортации будут отклоняться. Все предложения инвентаря будут направлены в корзину.
- <usetemplate ignoretext="Смена моего статуса на режим «Занят»" name="okignore" yestext="OK"/>
+ <notification name="DoNotDisturbModeSet">
+ Режим «Не беспокоить» включен. Вы не будете получать уведомлений о входящих вызовах.
+
+- Другие жители будут получать ваш ответ, установленный для режима «Не беспокоить» (Настройки &gt; Общие).
+- Предложения телепортации будут отклоняться.
+- Голосовые вызовы будут отклоняться.
+ <usetemplate ignoretext="Смена моего статуса на режим «Не беспокоить»" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Достигнуто максимальное количество групп. Выйдите из другой группы, прежде чем вступать в эту, или отклоните предложение.
@@ -2033,6 +2054,10 @@ http://secondlife.com/download.
Перейти на [http://secondlife.com/account/ информационную панель], чтобы увидеть историю аккаунта?
<usetemplate ignoretext="Запустить браузер для просмотра истории аккаунта" name="okcancelignore" notext="Отмена" yestext="Перейти на страницу"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ При добавлении участника в существующий разговор будет создан новый разговор. Все участники получат уведомления о новом разговоре.
+ <usetemplate ignoretext="Подтвердите добавление участников чата" name="okcancelignore" notext="Отмена" yestext="ОК"/>
+ </notification>
<notification name="ConfirmQuit">
Выйти из программы?
<usetemplate ignoretext="Подтверждать перед выходом" name="okcancelignore" notext="Не выходить" yestext="Выйти"/>
@@ -2107,14 +2132,14 @@ http://secondlife.com/download.
<button ignore="Не заменять" name="No" text="Отмена"/>
</form>
</notification>
- <notification label="Предупреждение о режиме «Занят»" name="BusyModePay">
- У вас включен режим «Занят», поэтому вы не получите никаких предметов, предлагаемых в обмен на этот платеж.
+ <notification label="Предупреждение режима «Не беспокоить»" name="DoNotDisturbModePay">
+ Включен режим «Не беспокоить». Вы не будете получать никаких предметов, предлагаемых в обмен за этот платеж.
-Хотите отключить режим «Занят» до завершения этой транзакции?
+Отключить режим «Не беспокоить» перед завершением этой операции?
<form name="form">
- <ignore name="ignore" text="Я собираюсь заплатить за пользователя или объект, когда включен режим «Занят»"/>
- <button ignore="Всегда отключать режим «Занят»" name="Yes" text="OK"/>
- <button ignore="Не отключать режим «Занят»" name="No" text="Отмена"/>
+ <ignore name="ignore" text="Я собираюсь заплатить за пользователя или объект, когда включен режим «Не беспокоить»"/>
+ <button ignore="Всегда выходить из режима «Не беспокоить»" name="Yes" text="OK"/>
+ <button ignore="Не выходить из режима «Не беспокоить»" name="No" text="Отмена"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2249,11 +2274,8 @@ http://secondlife.com/download.
<notification name="GroupNotice">
Раздел: [SUBJECT], сообщение: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; в сети
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; не в сети
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; [STATUS]
</notification>
<notification name="AddSelfFriend">
Вы лучше всех, но нельзя добавить в друзья себя самого.
@@ -2482,13 +2504,6 @@ http://secondlife.com/download.
<notification name="DynamicPathfindingDisabled">
В этом регионе не разрешен динамический поиск пути. Возможны нарушения работы скриптовых объектов с использованием вызовов LSL поиска пути.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- Изменение некоторых объектов в регионе может привести к неправильному поведению других подвижных объектов. Чтобы исправить их поведение, нажмите кнопку «Восстановить регион». Более подробная информация – по ссылке «Справка».
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Справка" ignoretext="Изменение некоторых объектов в регионе может привести к неправильному поведению других подвижных объектов." name="okhelpignore" yestext="OK"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Произошла ошибка. Возможно, неполадка в сети или на сервере, или у вас нет прав на строительство. Иногда для устранения этой проблемы достаточно выйти и снова войти.
<usetemplate name="okbutton" yestext="OK"/>
@@ -2751,7 +2766,7 @@ http://secondlife.com/download.
<notification name="ScriptQuestionCaution">
Предупреждение. Объект «&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;» требует полного доступа к вашему аккаунту для Linden-долларов. Если разрешить такой доступ, объект сможет в любое время снимать средства с вашего аккаунта или полностью опустошать его неоднократно и без предупреждения.
-Такое требование чаще всего незаконно. Не разрешайте доступ к своему аккаунту, если только не полностью осознаете, зачем он нужен этому объекту.
+Не разрешайте доступ к своему аккаунту, если только не полностью осознаете, зачем он нужен этому объекту.
<form name="form">
<button name="Grant" text="Разрешить полный доступ"/>
<button name="Deny" text="Отклонить"/>
@@ -3333,4 +3348,632 @@ http://secondlife.com/download.
Вы удаляете несколько предметов ([NUM_ITEMS]). Продолжить?
<usetemplate ignoretext="Удалить несколько предметов?" name="okcancelignore" notext="Нет" yestext="Да"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] заморозил вас. В это время вы не можете перемещаться и выполнять другие действия с миром.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] заморозил вас на [AV_FREEZE_TIME] сек. В это время вы не можете перемещаться и выполнять другие действия с миром.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Аватар заморожен.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] разморозил вас.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Аватар разморожен.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ Не удалось заморозить: у вас нет прав администратора на этом участке.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Заморозка кончилась, занимайтесь своим делом.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Невозможно заморозить этого пользователя.
+ </notification>
+ <notification name="NowOwnObject">
+ Вы стали владельцем объекта [OBJECT_NAME]
+ </notification>
+ <notification name="CantRezOnLand">
+ Нельзя выложить объект на [OBJECT_POS]: это не разрешено владельцем земли. Узнать, кто владелец, можно с помощью инструмента «Земля».
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ Невозможно выложить объект: слишком много запросов.
+ </notification>
+ <notification name="SitFailCantMove">
+ Нельзя сесть: сейчас вы не можете двигаться.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Вам не разрешено садиться на этой земле.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Попробуйте переместиться ближе. Нельзя сесть на объект:
+он находится в другом регионе.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Невозможно создать новый объект. Регион уже заполнен.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Не удалось поместить объект в указанное место. Повторите попытку.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Вы не можете создавать деревья и траву на чужой земле.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ Не удалось скопировать: вам не разрешено копировать объект «[OBJ_NAME]».
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ Не удалось скопировать: объект «[OBJ_NAME]» нельзя перенести к вам.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ Не удалось скопировать: объект «[OBJ_NAME]» относится к навигационной сетке.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Выбран дубликат без корневых объектов.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Невозможно дублировать объекты: регион заполнен.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Невозможно дублировать объекты: не удалось найти их участок.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Нельзя создать объект:
+участок уже заполнен.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Не удалось выложить объект.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Невозможно создать элемент, который вызвал проблемы в этом регионе.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Этот предмет инвентаря находится в черном списке.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Сейчас вам не разрешено создавать объекты.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Поиск по земле заблокирован.
+Вы провели слишком много операций поиска за короткое время.
+Повторите попытку через минуту.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Недостаточно свободных ресурсов скриптинга для присоединения объекта!
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Вы умерли и были телепортированы в ваше домашнее местоположение
+ </notification>
+ <notification name="EjectComingSoon">
+ Вам запрещено здесь присутствовать; у вас есть [EJECT_TIME] сек, чтобы покинуть это место.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Вам нет доступа в этот регион:
+серпер переполнен.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Сохранение в инвентаре отключено.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ Нельзя сохранить «[OBJ_NAME]» в содержимом объекта: объект, из которого оно было выложено, уже не существует.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ Нельзя сохранить «[OBJ_NAME]» в содержимом объекта: вам не разрешено изменять объект «[DEST_NAME]».
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ Невозможно сохранить «[OBJ_NAME]» в инвентаре: эта операция запрещена.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ Нельзя скопировать выбранное: вам не разрешено копировать объект «[OBJ_NAME]».
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ Невозможно скопировать выбранный предмет: объект «[OBJ_NAME]» не переносится.
+ </notification>
+ <notification name="NoTransNoCopy">
+ Невозможно скопировать выбранный предмет: объект «[OBJ_NAME]» не переносится.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ Удаление объекта «[OBJ_NAME]» из симулятора запрещено системой разрешений.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ Нельзя сохранить выбранное: вам не разрешено изменять объект «[OBJ_NAME]».
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ Невозможно сохранить выбранный предмет: объект «[OBJ_NAME]» не копируется.
+ </notification>
+ <notification name="NoModNoTaking">
+ Нельзя забрать выбранное: вам не разрешено изменять объект «[OBJ_NAME]».
+ </notification>
+ <notification name="RezDestInternalError">
+ Внутренняя ошибка: неизвестный тип места назначения.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Невозможно удалить: объект не найден
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Невозможно выбросить этого пользователя.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Вам не разрешено устанавливать свое домашнее местоположение в этом регионе.
+ </notification>
+ <notification name="HomeLocationLimits">
+ Задать домашнее местоположение можно только на вашей земле или в Инфохабе материка.
+ </notification>
+ <notification name="HomePositionSet">
+ Задано положение дома.
+ </notification>
+ <notification name="AvatarEjected">
+ Аватар выброшен.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ Не удалось выбросить: у вас нет прав администратора на этом участке.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию «[OBJ_POSITION]» региона [REGION_NAME]: участок уже заполнен.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию
+«[OBJ_POSITION]» региона [REGION_NAME]: вашим объектам не разрешено присутствовать на этом участке.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию
+«[OBJ_POSITION]» региона [REGION_NAME]: на этом участке недостаточно ресурсов для данного объекта.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию
+[OBJ_POSITION] региона [REGION_NAME]: в другом регионе работает старая версия симулятора, которая не поддерживает прием этого объекта через границу регионов.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию
+«[OBJ_POSITION]» региона [REGION_NAME]: вам не разрешено изменять навигационную сетку за пределами региона.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Нельзя переместить объект «[OBJECT_NAME]» в позицию
+[OBJ_POSITION] региона [REGION_NAME] по неизвестной причине. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ У вас нет прав на изменение этого объекта
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Нельзя включить физику для объекта, который относится к навигационной сетке.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Нельзя включить физику для объектов с ключевыми кадрами.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Нельзя включить физику для объекта -- недостаточно земельных ресурсов.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Нельзя включить физику для объекта с расходом ресурсов физики больше [MAX_OBJECTS]
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Этот объект не может содержать вогнутых элементов: это фантом, который относится к навигационной сетке.
+ </notification>
+ <notification name="UnableAddItem">
+ Невозможно добавить предмет!
+ </notification>
+ <notification name="UnableEditItem">
+ Редактирование невозможно!
+ </notification>
+ <notification name="NoPermToEdit">
+ Редактирование не разрешено.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Не разрешено копировать этот инвентарь.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Нельзя сохранить в содержимом объекта: предмет уже не существует.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Нельзя сохранить в содержимом объекта: предмет с таким названием уже есть в инвентаре
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Нельзя сохранить в содержимом объекта: это приведет к изменению разрешений прикрепленного объекта.
+ </notification>
+ <notification name="TooManyScripts">
+ Слишком много скриптов.
+ </notification>
+ <notification name="UnableAddScript">
+ Невозможно добавить скрипт!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Сервер активов не ответил в заданное время. Объект возвращен в симулятор.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ В этом регионе не разрешены фигуры с физическими данными.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Нельзя изменять навигационную сетку за пределами региона.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Нельзя задать свойства физики для объекта этого типа.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ Нельзя задать корневой примитив без фигуры.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ В этом регионе не разрешены материалы с физическими данными.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Настройка материалов с физическими данными разрешена только для корневых примитивов.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ Присвоение персонажам материалов с физическими данными еще не поддерживается.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Одно или несколько свойств указанного материала с физическими данными недопустимы.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Не разрешается изменять тип стыковки меш-объекта.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Не разрешается изменять форму меш-объекта
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Вам нет доступа в этот регион: \nрегион заполнен.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Связь невозможна -- разные владельцы
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Связь невозможна – нельзя изменять навигационную сетку за пределами региона.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Связь невозможна: у вас нет разрешения на редактирование.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Связь невозможна -- слишком много примитивов
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Связь невозможна -- нельзя связать некопируемый и непереносимый объекты
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Связь невозможна -- нет связываемых объектов.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Связь невозможна -- слишком много персонажей с поиском пути
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Связь невозможна -- недостаточно земельных ресурсов
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ Объект использует слишком много ресурсов физики -- динамическое поведение отключено.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ Вы были телепортированы домой объектом «[OBJECT_NAME]» на участке «[PARCEL_NAME]»
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ Вы были телепортированы домой объектом «[OBJECT_NAME]»
+ </notification>
+ <notification name="TeleportedByAttachment">
+ Вы были телепортированы прикрепленным объектом [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ Вы были телепортированы объектом «[OBJECT_NAME]» на участке «[PARCEL_NAME]»
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Вы были телепортированы объектом «[OBJECT_NAME]», владелец – [OWNER_ID]
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Вы были телепортированы объектом «[OBJECT_NAME]», владелец неизвестен.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Невозможно создать запрошенный объект. Регион уже заполнен.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Нельзя присоединить несколько объектов к одной точке.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Здесь нельзя создать несколько объектов.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Невозможно создать запрошенный объект. Объекта нет в базе данных.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Невозможно создать запрошенный объект. Истекло время запроса. Повторите попытку.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Невозможно создать запрошенный объект. Повторите попытку.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Не удалось выложить, загрузка нужного объекта длится слишком долго.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Не удалось поместить объект в указанное место. Повторите попытку.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Вам нельзя создавать растения на этой земле.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Невозможно восстановить объект. Не найдена позиция в игровом мире.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Невозможно выложить объект: его данные сетки неверны.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Невозможно выложить объект: в этом регионе уже сликом много скриптов.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Ваши привилегии доступа не разрешают создание объектов на этом месте.
+ </notification>
+ <notification name="CantCreateObject">
+ Сейчас вам не разрешено создавать объекты.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Неверные параметры объекта
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Ваши привилегии доступа не разрешают дублирование объектов на этом месте.
+ </notification>
+ <notification name="CantChangeShape">
+ Вам не разрешено изменять эту фигуру.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Ваши привилегии доступа не разрешают претендовать на объекты на этом месте.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Не удалось передать: вам не разрешено передавать объекты для этой группы.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Ваши привилегии доступа не разрешают покупать объекты на этом месте.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Невозможно присоединить объект: на нем сидит аватар.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Деревья и траву нельзя носить как прикрепленные объекты.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Нельзя присоединять объекты, принадлежащие группе.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Нельзя прикреплять объекты, которыми вы не владеете.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Невозможно присоединить объекты, которые относятся к навигационной сетке.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ Нельзя присоединить объект: вам не разрешено его перемещать.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Недостаточно свободных ресурсов скриптинга для присоединения объекта!
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Здесь нельзя сбрасывать объекты; перейдите в бесплатную область для гостей.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Нельзя сбрасывать прикрепленные меш-объекты. Отсоедините их в инвентарь, а затем выложите в игровой мир.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Не удалось сбросить прикрепленный объект: вам не разрешено оставлять его здесь.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Не удалось сбросить прикрепленный объект: не хватает свободных земельных ресурсов.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Не удалось сбросить прикрепленные объекты: не хватает свободных ресурсов.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Нельзя сбросить объект здесь. Участок уже заполнен.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Нельзя коснуться/взять этот объект: вы забанены на этом участке.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Уточните параметры удаления.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Невозможно отправить актив.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Не удалось найти пользователя для телепортации домой
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ режим творца недоступен
+ </notification>
+ <notification name="GenericRequestFailed">
+ не удалось выполнить общий запрос
+ </notification>
+ <notification name="CantUploadPostcard">
+ Невозможно отправить открытку. Повторите попытку позже.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ Невозможно получить данные инвентаря для группового уведомления.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Невозможно отправить групповое уведомление -- не разрешено.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Невозможно отправить групповое уведомление -- не удалось собрать инвентарь.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Невозможно проанализировать инвентарь, указанный в уведомлении.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Не удалось загрузить ландшафт.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Файл ландшафта записан.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Файл ландшафта записан, начинается загрузка...
+ </notification>
+ <notification name="TerrainBaked">
+ Ландшафт готов.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Отключены только первые 10 выбранных объектов. Обновите экран и выберите объекты снова, если требуется.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Для покупки этого участка необходимо обновить клиент.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Невозможно купить, этот участок не предназначен для продажи.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Невозможно купить: цена или площадь земли изменились.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Вам не разрешено покупать этот участок.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Вы не можете приобрести этот участок: он уже ожидает подтверждения покупки
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Здесь нельзя создавать объекты – участок будет переполнен.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Вы выбрали землю с разными владельцами. Выберите меньшую область и повторите попытку.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Выбрано недостаточно арендуемых участков для вступления.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Нельзя разделить землю.\nВыбрано больше одного участка.\nВыберите меньшую территорию.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ Нельзя разделить землю.\nНе удалось найти участок.\nСообщите об этой неполадке: Справка -&gt; Сообщить об ошибке...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Невозможно разделить землю. Выбран весь участок.\nПопробуйте выбрать территорию поменьше.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ Земля разделена.
+ </notification>
+ <notification name="PassPurchased">
+ Вы приобрели пропуск.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ В регионе не разрешены рекламные объявления.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Ваш пропуск на эту землю скоро закончится.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Нет подходящей поверхности, чтобы сесть. Попробуйте в другом месте.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Здесь нет места, чтобы сесть. Попробуйте в другом месте.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ Невозможно претендовать на объект: у вас нет разрешения
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ Невозможно претендовать на объект: у вас не хватает L$.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Нельзя передать землю, принадлежащую группе.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ Не удалось купить объект: у вас не хватает L$.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ Не удалось купить инвентарь: у вас не хватает L$.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ У вас недостаточно L$, чтобы заплатить за проход на эту землю.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Сейчас нельзя купить пропуск. Повторите попытку позже.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Невозможно создать объект:\nучасток заполнен.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Не удалось поместить объект в указанное место. Повторите попытку.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Невозможно создать закладку для события.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ Сила творца одолевает заморозку!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Не удалось выполнить запрос на особые способности. Запрос зарегистрирован.
+ </notification>
+ <notification name="ExpireExplanation">
+ Система сейчас не может обработать ваш запрос. Истекло время запроса.
+ </notification>
+ <notification name="DieExplanation">
+ Система не может обработать ваш запрос.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ Недостаточно денег для создания примитива.
+ </notification>
+ <notification name="RezObjectFailure">
+ Недостаточно денег для создания объекта.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Недопустимое домашнее местоположение; восстановлено стандартное местоположение.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Сейчас вы не можете никого пригласить к себе: регион уже заполнен. Повторите попытку позже.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Вам не разрешено устанавливать свое домашнее местоположение в этом регионе.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ Задать домашнее местоположение можно только на вашей земле или в Инфохабе материка.
+ </notification>
+ <notification name="SetHomePosition">
+ Домашнее местоположение задано.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Невозможно забрать объект: сбой инвентаря.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Невозможно создать требуемый инвентарь.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Невозможно создать требуемую папку инвентаря.
+ </notification>
+ <notification name="CantCreateInventory">
+ Невозможно создать этот инвентарь.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Невозможно создать закладку.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Сейчас нельзя создать костюм. Попробуйте через минуту.
+ </notification>
+ <notification name="InventoryNotForSale">
+ Инвентарь не для продажи.
+ </notification>
+ <notification name="CantFindInvItem">
+ Не удалось найти предмет из инвентаря.
+ </notification>
+ <notification name="CantFindObject">
+ Не удалось найти объект.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Сейчас в этом регионе запрещен перевод денег на объекты.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Непонятно, кому платить.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Нельзя отдавать L$ за общедоступные объекты.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Не удалось создать инвентарь в объекте игрового мира.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Не удалось обновить клиент из-за внутренней ошибки. Отображаемый в клиенте баланс L$ или владение участками могут не соответствовать действительному балансу на серверах.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Нельзя создавать большие примитивы, которые пересекаются с другими игроками. Повторите попытку, когда другие игроки уйдут.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Будут удалены журналы предыдущих разговоров и все резервные копии этих файлов.
+ <usetemplate ignoretext="Подтверждать удаление журнала предыдущих разговоров." name="okcancelignore" notext="Отмена" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Будут удалены записи всех предыдущих разговоров. Список прошедших разговоров не изменится. Все файлы с расширениями .txt и txt.backup в папке [FOLDER] будут удалены.
+ <usetemplate ignoretext="Подтверждать удаление записей." name="okcancelignore" notext="Отмена" yestext="OK"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Невозможно переместить файлы. Восстановлен прежний путь.
+ <usetemplate ignoretext="Невозможно переместить файлы. Восстановлен прежний путь." name="okignore" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/ru/panel_active_object_row.xml b/indra/newview/skins/default/xui/ru/panel_active_object_row.xml
index 825f9a6229..825f9a6229 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/ru/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml
index ae2240593d..ae2240593d 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml
index 75e396222f..4866bb7ed6 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Этот друг может изменять, удалять или брать ваши объекты"/>
<icon name="permission_map_icon" tool_tip="Этот друг может видеть вас на карте"/>
<icon name="permission_online_icon" tool_tip="Этот друг может видеть ваш статус в сети"/>
+ <button name="info_btn" tool_tip="Дополнительно"/>
<button name="profile_btn" tool_tip="Смотреть профиль"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_avatar_tag.xml b/indra/newview/skins/default/xui/ru/panel_avatar_tag.xml
index 03c164affd..03c164affd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/ru/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml
index 214ca8bf3a..70a1b25996 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Черный список
- </text>
- <scroll_list name="blocked" tool_tip="Список заблокированных жителей"/>
- <button label="Заблокировать жителя" name="Block resident..." tool_tip="Выберите жителя для блокировки"/>
- <button label="Блокировать объект по имени" name="Block object by name..." tool_tip="Выберите объект для блокировки по имени"/>
- <button label="Разблокировать" name="Unblock" tool_tip="Удалить объект или жителя из списка заблокированных"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Фильтр" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Действия с выбранным жителем или объектом"/>
+ <menu_button name="view_btn" tool_tip="Параметры сортировки"/>
+ <menu_button name="plus_btn" tool_tip="Выберите жителя или объект для блокировки"/>
+ <button name="unblock_btn" tool_tip="Удалить объект или жителя из списка заблокированных"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Список заблокированных жителей"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml
index 20a99500b6..20a99500b6 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml
index f7d31813f9..f7d31813f9 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml
index bcdff112c5..bcdff112c5 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_chat_header.xml b/indra/newview/skins/default/xui/ru/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/ru/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml
index f203ecde4b..f203ecde4b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_classified_info.xml b/indra/newview/skins/default/xui/ru/panel_classified_info.xml
index c7fd0ad42f..c7fd0ad42f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/ru/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml
index cc3f7feb83..cc3f7feb83 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml
index 98d4fd8b47..98d4fd8b47 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_cof_wearables.xml b/indra/newview/skins/default/xui/ru/panel_cof_wearables.xml
index 9e1bc4b5c4..9e1bc4b5c4 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/ru/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/ru/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..4fdb4f9122
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(загрузка)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/ru/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..98fe7b99be
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="Включая голосовой чат"/>
+ <icon name="unread_ims_icon" tool_tip="За время вашего отсутствия пришли сообщения"/>
+ <button name="delete_btn" tool_tip="Удалить эту запись"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml
index 762baa2052..762baa2052 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml
index dc9d678edd..dc9d678edd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml b/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml
index 7cde4099ef..7cde4099ef 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_classified.xml b/indra/newview/skins/default/xui/ru/panel_edit_classified.xml
index a2f06dbadf..a2f06dbadf 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_eyes.xml b/indra/newview/skins/default/xui/ru/panel_edit_eyes.xml
index 84e1204b5d..84e1204b5d 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_gloves.xml b/indra/newview/skins/default/xui/ru/panel_edit_gloves.xml
index 561777745e..561777745e 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_hair.xml b/indra/newview/skins/default/xui/ru/panel_edit_hair.xml
index d5e67ddf87..d5e67ddf87 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_jacket.xml b/indra/newview/skins/default/xui/ru/panel_edit_jacket.xml
index 2f5a437e69..2f5a437e69 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_pants.xml b/indra/newview/skins/default/xui/ru/panel_edit_pants.xml
index 4970c93801..4970c93801 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_physics.xml b/indra/newview/skins/default/xui/ru/panel_edit_physics.xml
index da4ebb154d..da4ebb154d 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_pick.xml b/indra/newview/skins/default/xui/ru/panel_edit_pick.xml
index 6be1448ac5..6be1448ac5 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_profile.xml b/indra/newview/skins/default/xui/ru/panel_edit_profile.xml
index e9a6a781db..e9a6a781db 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_shape.xml b/indra/newview/skins/default/xui/ru/panel_edit_shape.xml
index 312ad593a1..312ad593a1 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_shirt.xml b/indra/newview/skins/default/xui/ru/panel_edit_shirt.xml
index d576a2cd2f..d576a2cd2f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_shoes.xml b/indra/newview/skins/default/xui/ru/panel_edit_shoes.xml
index f6d7029108..f6d7029108 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_skin.xml b/indra/newview/skins/default/xui/ru/panel_edit_skin.xml
index f5a5339afe..f5a5339afe 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_skirt.xml b/indra/newview/skins/default/xui/ru/panel_edit_skirt.xml
index 909946e577..909946e577 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_socks.xml b/indra/newview/skins/default/xui/ru/panel_edit_socks.xml
index 2827fbc028..2827fbc028 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml
index 874d5f8bc4..874d5f8bc4 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_underpants.xml b/indra/newview/skins/default/xui/ru/panel_edit_underpants.xml
index f2f6e5e516..f2f6e5e516 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml
index 6f84c6cec2..6f84c6cec2 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_edit_wearable.xml b/indra/newview/skins/default/xui/ru/panel_edit_wearable.xml
index 79130a9c80..79130a9c80 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/ru/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml
index 2e6f3502b6..2e6f3502b6 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_general.xml b/indra/newview/skins/default/xui/ru/panel_group_general.xml
index 4d7e1c9fff..4d7e1c9fff 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
index d8cf1b4756..d8cf1b4756 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_invite.xml b/indra/newview/skins/default/xui/ru/panel_group_invite.xml
index 68dac5cd7e..68dac5cd7e 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_land_money.xml b/indra/newview/skins/default/xui/ru/panel_group_land_money.xml
index 9235aa2f69..9235aa2f69 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_list_item.xml b/indra/newview/skins/default/xui/ru/panel_group_list_item.xml
index 7f000fb5a0..b043ffbbe2 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Неизвестно"/>
+ <button name="info_btn" tool_tip="Дополнительно"/>
<button name="profile_btn" tool_tip="Смотреть профиль"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_group_notices.xml b/indra/newview/skins/default/xui/ru/panel_group_notices.xml
index 8d20c4a96b..8d20c4a96b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_notify.xml b/indra/newview/skins/default/xui/ru/panel_group_notify.xml
index 1aee7a7f61..1aee7a7f61 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_group_roles.xml b/indra/newview/skins/default/xui/ru/panel_group_roles.xml
index c57f21679f..c57f21679f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml
index 2a23cdb800..2a23cdb800 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_instant_message.xml b/indra/newview/skins/default/xui/ru/panel_instant_message.xml
index cf9bc7fccb..cf9bc7fccb 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/ru/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_inventory_item.xml b/indra/newview/skins/default/xui/ru/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_landmark_info.xml b/indra/newview/skins/default/xui/ru/panel_landmark_info.xml
index f4febd49cd..f4febd49cd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/ru/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_landmarks.xml b/indra/newview/skins/default/xui/ru/panel_landmarks.xml
index 7d684cd479..7d684cd479 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/ru/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_login.xml b/indra/newview/skins/default/xui/ru/panel_login.xml
index f0877731c6..f0877731c6 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_login.xml
+++ b/indra/newview/skins/default/xui/ru/panel_login.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
index 80a67371af..80a67371af 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_me.xml b/indra/newview/skins/default/xui/ru/panel_me.xml
index 21a125af87..21a125af87 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_me.xml
+++ b/indra/newview/skins/default/xui/ru/panel_me.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml
index 6dc435db20..6dc435db20 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml
index 680cba9c14..680cba9c14 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml
index 6b30dc799c..6b30dc799c 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml
index 5e3de180f9..5e3de180f9 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml
index a8fdfde1c4..a8fdfde1c4 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml
index 395c643b0b..395c643b0b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_nearby_media.xml b/indra/newview/skins/default/xui/ru/panel_nearby_media.xml
index 3b23fc78f5..3b23fc78f5 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/ru/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_notify_textbox.xml b/indra/newview/skins/default/xui/ru/panel_notify_textbox.xml
index 1ac88a01b3..1ac88a01b3 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/ru/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_online_status_toast.xml b/indra/newview/skins/default/xui/ru/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/ru/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml
index 0095d48af9..0095d48af9 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml b/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml
index 91c03342a7..91c03342a7 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml
index 4d0e13fca2..4d0e13fca2 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml
index 96f4b4a893..96f4b4a893 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outfits_list.xml b/indra/newview/skins/default/xui/ru/panel_outfits_list.xml
index 74551e4274..74551e4274 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml
index 7ed6bf35c0..7ed6bf35c0 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_people.xml b/indra/newview/skins/default/xui/ru/panel_people.xml
index 607921f2d6..7da7fb3191 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_people.xml
+++ b/indra/newview/skins/default/xui/ru/panel_people.xml
@@ -14,81 +14,53 @@
<string name="no_filtered_friends_msg">
Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/people/[SEARCH_TERM] поиском].
</string>
- <string name="people_filter_label" value="Фильтр для людей"/>
- <string name="groups_filter_label" value="Фильтр для групп"/>
<string name="no_filtered_groups_msg" value="Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/groups/[SEARCH_TERM] поиском]."/>
<string name="no_groups_msg" value="Ищете группу, чтобы присоединиться к ней? Воспользуйтесь [secondlife:///app/search/groups поиском]."/>
<string name="MiniMapToolTipMsg" value="[REGION](Двойной щелчок открывает карту, shift+перетягивание – обзор)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Двойной щелчок – телепортация, shift+перетягивание – обзор)"/>
- <filter_editor label="Фильтр" name="filter_input"/>
<tab_container name="tabs">
<panel label="РЯДОМ" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Опции"/>
- <button name="add_friend_btn" tool_tip="Добавить выбранного жителя в список друзей"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Фильтр для людей" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Действия с выбранным жителем"/>
+ <menu_button name="nearby_view_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <button name="add_friend_btn" tool_tip="Предложить жителю дружбу"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Удалить выбранного пользователя из друзей"/>
</panel>
</panel>
- <panel label="МОИ ДРУЗЬЯ" name="friends_panel">
+ <panel label="ДРУЗЬЯ" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Фильтр для людей" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Действия с выбранным жителем"/>
+ <menu_button name="friends_view_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <button name="friends_add_btn" tool_tip="Предложить жителю дружбу"/>
+ <dnd_button name="friends_del_btn" tool_tip="Удалить выбранного пользователя из друзей"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Онлайн"/>
<accordion_tab name="tab_all" title="Все"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="Показать дополнительные параметры"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Предложить жителю дружбу"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Удалить выбранного жителя из списка друзей"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="МОИ ГРУППЫ" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Опции"/>
- <button name="plus_btn" tool_tip="Присоединиться к группе/создать новую группу"/>
- <button name="activate_btn" tool_tip="Активировать выбранную группу"/>
+ <panel label="ГРУППЫ" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Фильтр для групп" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Действия с выбранной группой"/>
+ <menu_button name="groups_view_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <menu_button name="plus_btn" tool_tip="Присоединиться к группе/создать новую группу"/>
+ <dnd_button name="minus_btn" tool_tip="Покинуть выбранную группу"/>
</panel>
</panel>
<panel label="НЕДАВНИЕ" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Опции"/>
- <button name="add_friend_btn" tool_tip="Добавить выбранного жителя в список друзей"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Фильтр для людей" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Действия с выбранным жителем"/>
+ <menu_button name="recent_view_btn" tool_tip="Параметры просмотра/сортировки"/>
+ <button name="add_friend_btn" tool_tip="Предложить жителю дружбу"/>
+ <dnd_button name="recent_del_btn" tool_tip="Удалить выбранного пользователя из друзей"/>
</panel>
</panel>
+ <panel label="БЛОКИРОВАН" name="blocked_panel">
+ <panel label="Черный список жителей и объектов" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Профиль" name="view_profile_btn" tool_tip="Показать изображение, группы и прочую информацию о жителе"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="Начать сеанс IM"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Звонок" name="call_btn" tool_tip="Позвонить этому жителю"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Поделиться" name="share_btn" tool_tip="Поделиться объектом из инвентаря"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Телепортация" name="teleport_btn" tool_tip="Предложить телепортацию"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Профиль группы" name="group_info_btn" tool_tip="Показать информацию о группе"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Групповой чат" name="chat_btn" tool_tip="Открыть сеанс чата"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Звонок группе" name="group_call_btn" tool_tip="Позвонить этой группе"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_pick_info.xml b/indra/newview/skins/default/xui/ru/panel_pick_info.xml
index 373cf211fb..373cf211fb 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/ru/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_picks.xml b/indra/newview/skins/default/xui/ru/panel_picks.xml
index d6770e0eeb..d6770e0eeb 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_picks.xml
+++ b/indra/newview/skins/default/xui/ru/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_place_profile.xml b/indra/newview/skins/default/xui/ru/panel_place_profile.xml
index b486b918ed..b486b918ed 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/ru/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_places.xml b/indra/newview/skins/default/xui/ru/panel_places.xml
index 54837d3c0b..54837d3c0b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_places.xml
+++ b/indra/newview/skins/default/xui/ru/panel_places.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_postcard_message.xml b/indra/newview/skins/default/xui/ru/panel_postcard_message.xml
index 70587d8090..70587d8090 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/ru/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_postcard_settings.xml b/indra/newview/skins/default/xui/ru/panel_postcard_settings.xml
index dc9d59008f..dc9d59008f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/ru/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
index 7d8ee96924..7d8ee96924 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
index 9d7ae546fd..9d7ae546fd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
index 9283fc9e6e..6383fc8c2c 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Текстовый чат" name="chat">
- <text name="font_size">
- Размер шрифта:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Мелкий" name="radio" value="0"/>
- <radio_item label="Средний" name="radio2" value="1"/>
- <radio_item label="Крупный" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="истина" label="Воспроизводить анимацию ввода текста при общении" name="play_typing_animation"/>
- <check_box label="Отправлять мне сообщения по почте, когда меня нет в сети" name="send_im_to_email"/>
- <check_box label="Вести журнал текстового IM и чата" name="plain_text_chat_history"/>
- <check_box label="Чат в пузырьках" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Показывать сообщения:
- </text>
- <text name="requires_restart_label">
- (требуется перезапуск)
- </text>
- <radio_group name="chat_window" tool_tip="Показывать IM-сообщения в отдельных окнах или же в одном окне с несколькими вкладками (требуется перезапуск)">
- <radio_item label="В отдельных окнах" name="radio" value="0"/>
- <radio_item label="На вкладках" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Включить всплывающие сообщения с новыми репликами в чате:
- </text>
- <check_box label="Групповой чат" name="EnableGroupChatPopups" tool_tip="Отображать всплывающие уведомления при появлении сообщений в групповом чате"/>
- <check_box label="Текстовые чаты" name="EnableIMChatPopups" tool_tip="Отображать всплывающие уведомления при получении IM-сообщений"/>
- <spinner label="Время отображения всплывающих реплик:" name="nearby_toasts_lifetime"/>
- <spinner label="Время затухания всплывающих реплик:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="истина" label="Воспроизводить анимацию ввода текста при общении" name="play_typing_animation"/>
+ <check_box label="Отправлять мне сообщения по почте, когда меня нет в сети" name="send_im_to_email"/>
+ <check_box label="Только друзья и группы могут звонить мне и отправлять IM" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Размер шрифта:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Мелкий" name="Small" value="0"/>
+ <item label="Средний" name="Medium" value="1"/>
+ <item label="Крупный" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Чат в пузырьках" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Уведомления
+ </text>
+ <text name="friend_ims">
+ IM друзей:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Открыть окно разговоров" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Сообщение во всплывающем окне" name="PopUpMessage" value="всплывание"/>
+ <item label="Мигание кнопки на панели инструментов" name="FlashToolbarButton" value="мигание"/>
+ <item label="Нет" name="None" value="нет"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ IM чужих:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Открыть окно разговоров" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Сообщение во всплывающем окне" name="PopUpMessage" value="всплывание"/>
+ <item label="Мигание кнопки на панели инструментов" name="FlashToolbarButton" value="мигание"/>
+ <item label="Нет" name="None" value="нет"/>
+ </combo_box>
+ <text name="conference_ims">
+ IM конференции:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Открыть окно разговоров" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Сообщение во всплывающем окне" name="PopUpMessage" value="всплывание"/>
+ <item label="Мигание кнопки на панели инструментов" name="FlashToolbarButton" value="мигание"/>
+ <item label="Нет" name="None" value="нет"/>
+ </combo_box>
+ <text name="group_chat">
+ Групповой чат:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Открыть окно разговоров" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Сообщение во всплывающем окне" name="PopUpMessage" value="всплывание"/>
+ <item label="Мигание кнопки на панели инструментов" name="FlashToolbarButton" value="мигание"/>
+ <item label="Нет" name="None" value="нет"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Локальный чат:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Открыть окно разговоров" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Сообщение во всплывающем окне" name="PopUpMessage" value="всплывание"/>
+ <item label="Мигание кнопки на панели инструментов" name="FlashToolBarButton" value="мигание"/>
+ <item label="Нет" name="None" value="нет"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Для временного отключения всех уведомлений вызовите меню «Общение &gt; Не беспокоить».
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Звук:
+ </text>
+ <check_box label="Новый разговор" name="new_conversation"/>
+ <check_box label="Входящий голосовой вызов" name="incoming_voice_call"/>
+ <check_box label="Предложение телепортации" name="teleport_offer"/>
+ <check_box label="Предложение инвентаря" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Очистить журнал..." name="clear_log"/>
+ <button label="Удалить записи..." name="delete_transcripts"/>
+ <button label="Обзор..." label_selected="Обзор" name="log_path_button"/>
+ </panel>
<button label="Перевод..." name="ok_btn"/>
<button label="Автозамена..." name="autoreplace_showgui"/>
<button label="Проверка правописания..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
index 48c34fcbb2..48c34fcbb2 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
index d1bfedf2d8..c7a850f78a 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
@@ -68,9 +68,9 @@
<combo_box.item label="никогда" name="item4"/>
</combo_box>
<text name="text_box3">
- Ответ в режиме «Занят»:
+ Ответ в режиме «Не беспокоить»:
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
index a7e826f5fc..a7e826f5fc 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
index a6e9b00f2a..a6e9b00f2a 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
index 20bb839eed..20bb839eed 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
index 8e7fc71f0d..8e7fc71f0d 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
index bf673750d2..bf673750d2 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml
index 76bb6518e9..76bb6518e9 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_covenant.xml b/indra/newview/skins/default/xui/ru/panel_region_covenant.xml
index 706a38f110..706a38f110 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_debug.xml b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
index 4be1e781fa..4be1e781fa 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_environment.xml b/indra/newview/skins/default/xui/ru/panel_region_environment.xml
index 85be8f63bd..85be8f63bd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_estate.xml b/indra/newview/skins/default/xui/ru/panel_region_estate.xml
index bcfb974fcb..bcfb974fcb 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_general.xml b/indra/newview/skins/default/xui/ru/panel_region_general.xml
index 8559be6c9e..8559be6c9e 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_region_terrain.xml b/indra/newview/skins/default/xui/ru/panel_region_terrain.xml
index af25565226..af25565226 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_script_ed.xml b/indra/newview/skins/default/xui/ru/panel_script_ed.xml
index 05ccaeb54b..05ccaeb54b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/ru/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml
index a06c465a2b..a06c465a2b 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml
index 189e21fd2f..189e21fd2f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_script_question_toast.xml b/indra/newview/skins/default/xui/ru/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/ru/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_scrolling_param.xml b/indra/newview/skins/default/xui/ru/panel_scrolling_param.xml
index c25f92cb8d..c25f92cb8d 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/ru/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml
index 1a260dc31f..1a260dc31f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_inventory.xml
index 53a150c9f9..53a150c9f9 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
index 446b9bb2fd..446b9bb2fd 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_options.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_options.xml
index 250a76cd21..250a76cd21 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_postcard.xml
index 47f4caf8e3..47f4caf8e3 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_profile.xml
index 79a9ef58d0..79a9ef58d0 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
index 98dab288a3..98dab288a3 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml
index 81a2175fc3..81a2175fc3 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_status_bar.xml b/indra/newview/skins/default/xui/ru/panel_status_bar.xml
index 9c84ff1fd8..9c84ff1fd8 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_teleport_history.xml b/indra/newview/skins/default/xui/ru/panel_teleport_history.xml
index c457bc2269..c457bc2269 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/ru/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml
index 90fb720068..90fb720068 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_voice_effect.xml b/indra/newview/skins/default/xui/ru/panel_voice_effect.xml
index de0b38198f..de0b38198f 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/ru/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml
index fe044cd083..fe044cd083 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/ru/panel_world_map.xml b/indra/newview/skins/default/xui/ru/panel_world_map.xml
index 0ab8720185..0ab8720185 100644..100755
--- a/indra/newview/skins/default/xui/ru/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/ru/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/ru/role_actions.xml b/indra/newview/skins/default/xui/ru/role_actions.xml
index b6ba818abd..b6ba818abd 100644..100755
--- a/indra/newview/skins/default/xui/ru/role_actions.xml
+++ b/indra/newview/skins/default/xui/ru/role_actions.xml
diff --git a/indra/newview/skins/default/xui/ru/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ru/sidepanel_appearance.xml
index a23f6134f2..a23f6134f2 100644..100755
--- a/indra/newview/skins/default/xui/ru/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/ru/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
index c106c2de79..c106c2de79 100644..100755
--- a/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml
index 0106ed50ac..0106ed50ac 100644..100755
--- a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml
index e9dd3760b5..5502530ca4 100644..100755
--- a/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/ru/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Купить объект" name="Buyobject"/>
<combo_box.item label="Заплатить за объект" name="Payobject"/>
<combo_box.item label="Открыть" name="Open"/>
+ <combo_box.item label="Приблизить" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index f9ded799bf..d7d4df4a37 100644..100755
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -137,7 +137,7 @@
Выйти
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=ru-RU&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
У клиента, которым вы пользуетесь, больше нет доступа к игре Second Life. Загрузить новую версию клиента можно по адресу
@@ -619,7 +619,7 @@ support@secondlife.com.
<string name="AvatarAway">
Нет на месте
</string>
- <string name="AvatarBusy">
+ <string name="AvatarDoNotDisturb">
Не беспокоить
</string>
<string name="AvatarMuted">
@@ -856,6 +856,12 @@ support@secondlife.com.
<string name="ST_NO_JOINT">
Не удается найти объект ROOT или JOINT.
</string>
+ <string name="NearbyChatTitle">
+ Локальный чат
+ </string>
+ <string name="NearbyChatLabel">
+ (Локальный чат)
+ </string>
<string name="whisper">
шепчет:
</string>
@@ -919,12 +925,15 @@ support@secondlife.com.
<string name="ControlYourCamera">
Управлять камерой
</string>
- <string name="TeleportYourAgent">
- Телепортировать вас
- </string>
<string name="NotConnected">
Нет подключения
</string>
+ <string name="AgentNameSubst">
+ (Вы)
+ </string>
+ <string name="TeleportYourAgent">
+ Телепортировать вас
+ </string>
<string name="SIM_ACCESS_PG">
Общий
</string>
@@ -1006,18 +1015,6 @@ support@secondlife.com.
<string name="dictionary_files">
Словари
</string>
- <string name="AvatarSetNotAway">
- На месте
- </string>
- <string name="AvatarSetAway">
- Нет на месте
- </string>
- <string name="AvatarSetNotBusy">
- Не занят(а)
- </string>
- <string name="AvatarSetBusy">
- Не беспокоить
- </string>
<string name="shape">
Фигура
</string>
@@ -1986,8 +1983,8 @@ support@secondlife.com.
<string name="PanelContentsNewScript">
Новый скрипт
</string>
- <string name="BusyModeResponseDefault">
- У адресата вашего сообщения задан статус «Не беспокоить». Ваше сообщение все равно будет отображено на панели IM для просмотра позже.
+ <string name="DoNotDisturbModeResponseDefault">
+ Этот житель включил режим «Не беспокоить» и увидит ваше сообщение позже.
</string>
<string name="MuteByName">
(по имени)
@@ -2100,9 +2097,6 @@ support@secondlife.com.
<string name="GroupMoneyDate">
[weekday,datetime,utc], [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- Контент
- </string>
<string name="AcquiredItems">
Купленные вещи
</string>
@@ -3871,7 +3865,7 @@ support@secondlife.com.
Область общей дозволенности
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Все жители с других участков могут видеть аватары и общаться в чате
+ Аватары на этом участке невидимы и неслышимы для аватаров с других участков
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Возможны неполадки подвижных объектов в этом регионе, пока регион не будет восстановлен.
@@ -3948,6 +3942,12 @@ support@secondlife.com.
<string name="IM_unblock_only_groups_friends">
Для просмотра этого сообщения снимите флажок «Только друзья и группы могут звонить мне и отправлять IM» в окне «Настройки/Приватность».
</string>
+ <string name="OnlineStatus">
+ Онлайн
+ </string>
+ <string name="OfflineStatus">
+ Оффлайн
+ </string>
<string name="answered_call">
На ваш звонок ответили
</string>
@@ -3957,6 +3957,9 @@ support@secondlife.com.
<string name="you_joined_call">
Вы присоединились к голосовой беседе
</string>
+ <string name="you_auto_rejected_call-im">
+ Голосовой вызов автоматически отклонен, так как включен режим «Не беспокоить».
+ </string>
<string name="name_started_call">
Житель [NAME] начал голосовую беседу
</string>
@@ -3973,7 +3976,7 @@ support@secondlife.com.
Соединяется...
</string>
<string name="conference-title">
- Спонтанная конференция
+ Чат с несколькими участниками
</string>
<string name="conference-title-incoming">
Конференция с жителем [AGENT_NAME]
@@ -4865,6 +4868,9 @@ support@secondlife.com.
<string name="Command_Chat_Label">
Чат
</string>
+ <string name="Command_Conversations_Label">
+ Разговоры
+ </string>
<string name="Command_Compass_Label">
Компас
</string>
@@ -4940,6 +4946,9 @@ support@secondlife.com.
<string name="Command_Chat_Tooltip">
Обменивайтесь текстовыми репликами с людьми вокруг вас
</string>
+ <string name="Command_Conversations_Tooltip">
+ Поговорить со всеми
+ </string>
<string name="Command_Compass_Tooltip">
Компас
</string>
@@ -5069,4 +5078,13 @@ support@secondlife.com.
<string name="UserDictionary">
[Пользователь]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ Разговоры не записываются. Чтобы начать запись разговора, в меню «Настройки &gt; Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи».
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Разговоры больше не будут записываться. Чтобы восстановить запись разговора, в меню «Настройки &gt; Чат» выберите «Сохранять: только журнал» или «Сохранять: журнал и записи».
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Нет зарегистрированных разговоров. Если вы обратитесь к кому-то или наоборот, в журнале появится новая запись.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/ru/teleport_strings.xml b/indra/newview/skins/default/xui/ru/teleport_strings.xml
index 40c9267408..40c9267408 100644..100755
--- a/indra/newview/skins/default/xui/ru/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/ru/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_aaa.xml b/indra/newview/skins/default/xui/tr/floater_aaa.xml
index d663ec1a5b..d663ec1a5b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/tr/floater_aaa.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_about.xml b/indra/newview/skins/default/xui/tr/floater_about.xml
index 9cc9c7a220..9cc9c7a220 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_about.xml
+++ b/indra/newview/skins/default/xui/tr/floater_about.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_about_land.xml b/indra/newview/skins/default/xui/tr/floater_about_land.xml
index 481fc540d0..481fc540d0 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/tr/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_activeim.xml b/indra/newview/skins/default/xui/tr/floater_activeim.xml
index f3f66b942f..f3f66b942f 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/tr/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/tr/floater_animation_anim_preview.xml
index a63e1e107e..a63e1e107e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/tr/floater_animation_bvh_preview.xml
index f8800c674d..f8800c674d 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_auction.xml b/indra/newview/skins/default/xui/tr/floater_auction.xml
index 3c945a9c96..3c945a9c96 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_auction.xml
+++ b/indra/newview/skins/default/xui/tr/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_autoreplace.xml b/indra/newview/skins/default/xui/tr/floater_autoreplace.xml
index e52e05dc61..e52e05dc61 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/tr/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_avatar.xml b/indra/newview/skins/default/xui/tr/floater_avatar.xml
index c6b14ba710..c6b14ba710 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/tr/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml
index 99c2aae5a3..99c2aae5a3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_avatar_textures.xml b/indra/newview/skins/default/xui/tr/floater_avatar_textures.xml
index b519cfa1a9..b519cfa1a9 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/tr/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_beacons.xml b/indra/newview/skins/default/xui/tr/floater_beacons.xml
index 08ebf36be5..08ebf36be5 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/tr/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_build_options.xml b/indra/newview/skins/default/xui/tr/floater_build_options.xml
index 5e77f6b168..5e77f6b168 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/tr/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_bulk_perms.xml b/indra/newview/skins/default/xui/tr/floater_bulk_perms.xml
index 1d929a2dd3..1d929a2dd3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/tr/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_bumps.xml b/indra/newview/skins/default/xui/tr/floater_bumps.xml
index 06ae3a2ec3..06ae3a2ec3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/tr/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_buy_contents.xml b/indra/newview/skins/default/xui/tr/floater_buy_contents.xml
index 9012189ce5..9012189ce5 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/tr/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_buy_currency.xml b/indra/newview/skins/default/xui/tr/floater_buy_currency.xml
index d90985dcff..d90985dcff 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/tr/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml
index 98aaf50db0..98aaf50db0 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_buy_land.xml b/indra/newview/skins/default/xui/tr/floater_buy_land.xml
index 7b43af2ea4..7b43af2ea4 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/tr/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_buy_object.xml b/indra/newview/skins/default/xui/tr/floater_buy_object.xml
index 91ef05fb29..91ef05fb29 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/tr/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_camera.xml b/indra/newview/skins/default/xui/tr/floater_camera.xml
index 22e2aa52c6..22e2aa52c6 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_camera.xml
+++ b/indra/newview/skins/default/xui/tr/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml
index cd999b4b7a..cd999b4b7a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_choose_group.xml b/indra/newview/skins/default/xui/tr/floater_choose_group.xml
index 1bfc772f4a..1bfc772f4a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/tr/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_color_picker.xml b/indra/newview/skins/default/xui/tr/floater_color_picker.xml
index c9465fff83..c9465fff83 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/tr/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_conversation_log.xml b/indra/newview/skins/default/xui/tr/floater_conversation_log.xml
new file mode 100644
index 0000000000..5f8dac506f
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="SOHBET GÜNLÜĞÜ">
+ <panel name="buttons_panel">
+ <filter_editor label="Kişileri Filtrele" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="Gösterme/sıralama seçenekleri"/>
+ <menu_button name="conversations_gear_btn" tool_tip="Seçilen kişi veya grup üzerindeki eylemler"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_conversation_preview.xml b/indra/newview/skins/default/xui/tr/floater_conversation_preview.xml
new file mode 100644
index 0000000000..84403dfd68
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="KONUŞMA:">
+ <floater.string name="Title">
+ KONUŞMA: [NAME]
+ </floater.string>
+ <text name="page_label" value="Sayfa"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_critical.xml b/indra/newview/skins/default/xui/tr/floater_critical.xml
index 041a303bae..041a303bae 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_critical.xml
+++ b/indra/newview/skins/default/xui/tr/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml
index 915770f727..915770f727 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_destinations.xml b/indra/newview/skins/default/xui/tr/floater_destinations.xml
index 4504366d63..4504366d63 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/tr/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_display_name.xml b/indra/newview/skins/default/xui/tr/floater_display_name.xml
index e39be5a24b..e39be5a24b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/tr/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
index 4be1068dcc..4be1068dcc 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
index 0e9f86148d..0e9f86148d 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml
index 2ddee32bad..2ddee32bad 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_environment_settings.xml b/indra/newview/skins/default/xui/tr/floater_environment_settings.xml
index e702da7e1b..e702da7e1b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/tr/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_event.xml b/indra/newview/skins/default/xui/tr/floater_event.xml
index 60dece124b..60dece124b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_event.xml
+++ b/indra/newview/skins/default/xui/tr/floater_event.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_fast_timers.xml b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml
index 5736bda45e..5736bda45e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_font_test.xml b/indra/newview/skins/default/xui/tr/floater_font_test.xml
index 5371d5d2a4..5371d5d2a4 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/tr/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_gesture.xml b/indra/newview/skins/default/xui/tr/floater_gesture.xml
index 5f5d28ad6c..5f5d28ad6c 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/tr/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_god_tools.xml b/indra/newview/skins/default/xui/tr/floater_god_tools.xml
index 26e5ebd18b..26e5ebd18b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/tr/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml
index b204389083..b204389083 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_help_browser.xml b/indra/newview/skins/default/xui/tr/floater_help_browser.xml
index 695f838936..695f838936 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/tr/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_how_to.xml b/indra/newview/skins/default/xui/tr/floater_how_to.xml
index a42fe0b122..a42fe0b122 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/tr/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_hud.xml b/indra/newview/skins/default/xui/tr/floater_hud.xml
index 09f119bbc1..09f119bbc1 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_hud.xml
+++ b/indra/newview/skins/default/xui/tr/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_im_container.xml b/indra/newview/skins/default/xui/tr/floater_im_container.xml
index 4451d1d309..6504430b3c 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/tr/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="SOHBETLER"/>
+<multi_floater name="floater_im_box" title="SOHBETLER">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="Gösterme/sıralama seçenekleri"/>
+ <button name="add_btn" tool_tip="Yeni bir sohbet başlat"/>
+ <button name="speak_btn" tool_tip="Mikrofonunuzu kullanarak kişilerle konuşun"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="Bu listeyi Daralt/Genişlet"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="Bu panoyu daralt"/>
+ <text name="stub_textbox">
+ Sohbet ayrı bir pencerede. [secondlife:/// Bunu geri getir.]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_im_session.xml b/indra/newview/skins/default/xui/tr/floater_im_session.xml
index bed08b36c6..8ce8f0fe13 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/tr/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="Kime" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] sohbete davet edildi."/>
+ <floater.string name="multiple_participants_added" value="[NAME] sohbete davet edildi."/>
+ <floater.string name="tooltip_to_separate_window" value="Bu sohbeti ayrı bir pencereye taşı"/>
+ <floater.string name="tooltip_to_main_window" value="Bu sohbeti ana pencereye geri taşı"/>
+ <floater.string name="start_call_button_tooltip" value="Ses bağlantısını aç"/>
+ <floater.string name="end_call_button_tooltip" value="Ses bağlantısını kapat"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="Bu panoyu daralt"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="Katılımcı listesini daralt"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="Katılımcı listesini genişlet"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="Gösterme/sıralama seçenekleri"/>
+ <menu_button name="gear_btn" tool_tip="Seçilen kişi üzerindeki eylemler"/>
+ <button name="add_btn" tool_tip="Bu sohbete birini ekle"/>
+ <button name="voice_call_btn" tool_tip="Ses bağlantısını aç"/>
+ <button name="close_btn" tool_tip="Bu sohbeti bitir"/>
+ <button name="expand_collapse_btn" tool_tip="Bu panoyu Daralt/Genişlet"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="Sohbeti çevir" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="Kime" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="Mesaj panelini gösterir/gizler"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_image_preview.xml b/indra/newview/skins/default/xui/tr/floater_image_preview.xml
index a5963bdf63..a5963bdf63 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_import_collada.xml b/indra/newview/skins/default/xui/tr/floater_import_collada.xml
index 1e77d1b376..1e77d1b376 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/tr/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_incoming_call.xml b/indra/newview/skins/default/xui/tr/floater_incoming_call.xml
index adb03c2dff..0f2b27241e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/tr/floater_incoming_call.xml
@@ -10,7 +10,7 @@
anonim
</floater.string>
<floater.string name="VoiceInviteP2P">
- arıyor.
+ sizi arıyor.
</floater.string>
<floater.string name="VoiceInviteAdHoc">
bir Sesli Sohbet aramasına bir konferans araması ile katıldı.
@@ -25,9 +25,9 @@
[CURRENT_CHAT] sohbetinden ayrılıp, bu sesli sohbete katılmak istiyor musunuz?
</floater.string>
<text name="question">
- [CURRENT_CHAT] sohbetinden ayrılıp, bu sesli sohbete katılmak istiyor musunuz?
+ Yanıtlarsanız, mevcut sesli sohbetinizle bağlantınız kesilecek.
</text>
- <button label="Kabul Et" label_selected="Kabul Et" name="Accept"/>
- <button label="Reddet" label_selected="Reddet" name="Reject"/>
- <button label="Aİ Başlat" name="Start IM"/>
+ <button label="Yanıtla" label_selected="Yanıtla" name="Accept"/>
+ <button label="Yok say" label_selected="Yok say" name="Reject"/>
+ <button label="Bunun yerine Aİ aç" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_inspect.xml b/indra/newview/skins/default/xui/tr/floater_inspect.xml
index 09130a31f3..09130a31f3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/tr/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml
index e49fef1f46..e49fef1f46 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml
index 9d1a556751..9d1a556751 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_joystick.xml b/indra/newview/skins/default/xui/tr/floater_joystick.xml
index 4a27aac3c1..4a27aac3c1 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/tr/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_lagmeter.xml b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
index 736c50be90..736c50be90 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_land_holdings.xml b/indra/newview/skins/default/xui/tr/floater_land_holdings.xml
index a075a93c1e..a075a93c1e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/tr/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml
index 34c3e28a0b..34c3e28a0b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_lsl_guide.xml b/indra/newview/skins/default/xui/tr/floater_lsl_guide.xml
index 0b898d6032..0b898d6032 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/tr/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_map.xml b/indra/newview/skins/default/xui/tr/floater_map.xml
index 7d6c314f04..7d6c314f04 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_map.xml
+++ b/indra/newview/skins/default/xui/tr/floater_map.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_media_browser.xml b/indra/newview/skins/default/xui/tr/floater_media_browser.xml
index 6cce4d59b8..6cce4d59b8 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/tr/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_media_settings.xml b/indra/newview/skins/default/xui/tr/floater_media_settings.xml
index 4205a0dbef..4205a0dbef 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/tr/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_mem_leaking.xml b/indra/newview/skins/default/xui/tr/floater_mem_leaking.xml
index ba87ee99a4..ba87ee99a4 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/tr/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/tr/floater_merchant_outbox.xml
index 325d1d9ed9..325d1d9ed9 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/tr/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_model_preview.xml b/indra/newview/skins/default/xui/tr/floater_model_preview.xml
index c00cadd3bd..c00cadd3bd 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_moveview.xml b/indra/newview/skins/default/xui/tr/floater_moveview.xml
index 9226218a24..9226218a24 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_mute_object.xml b/indra/newview/skins/default/xui/tr/floater_mute_object.xml
index becad38a8e..becad38a8e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/tr/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_my_appearance.xml b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml
index 4d71187a1f..4d71187a1f 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_my_inventory.xml b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml
index 8c62692a88..8c62692a88 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_notification.xml b/indra/newview/skins/default/xui/tr/floater_notification.xml
index 89a56348f6..89a56348f6 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_notification.xml
+++ b/indra/newview/skins/default/xui/tr/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_notifications_console.xml b/indra/newview/skins/default/xui/tr/floater_notifications_console.xml
index e4eaf2cf9e..e4eaf2cf9e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/tr/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_object_weights.xml b/indra/newview/skins/default/xui/tr/floater_object_weights.xml
index b57943f666..b57943f666 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/tr/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_openobject.xml b/indra/newview/skins/default/xui/tr/floater_openobject.xml
index 9980aee97f..9980aee97f 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/tr/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
index 7a9f507c93..7a9f507c93 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_outgoing_call.xml b/indra/newview/skins/default/xui/tr/floater_outgoing_call.xml
index 7ba4580f4f..7ba4580f4f 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/tr/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/tr/floater_pathfinding_characters.xml
index f38d8c84c6..f38d8c84c6 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/tr/floater_pathfinding_console.xml
index 6eecc7fb77..35f47e6dfa 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
Göster:
</text>
- <check_box label="Dünya" name="show_world"/>
+ <check_box label="Test" name="show_world"/>
<check_box label="Sadece hareket ettirilebilir nesneler" name="show_world_movables_only"/>
<check_box label="Navigasyon örgüsü" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
index 2e416c9311..2e416c9311 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_pay.xml b/indra/newview/skins/default/xui/tr/floater_pay.xml
index 6604e5c37a..6604e5c37a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_pay.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_pay_object.xml b/indra/newview/skins/default/xui/tr/floater_pay_object.xml
index 7772d3b101..7772d3b101 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_people.xml b/indra/newview/skins/default/xui/tr/floater_people.xml
index 94a27bff57..94a27bff57 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_people.xml
+++ b/indra/newview/skins/default/xui/tr/floater_people.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml
index 669b833c26..669b833c26 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_picks.xml b/indra/newview/skins/default/xui/tr/floater_picks.xml
index 513a2e319a..513a2e319a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_picks.xml
+++ b/indra/newview/skins/default/xui/tr/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_places.xml b/indra/newview/skins/default/xui/tr/floater_places.xml
index 4e09a699f6..4e09a699f6 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_places.xml
+++ b/indra/newview/skins/default/xui/tr/floater_places.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_post_process.xml b/indra/newview/skins/default/xui/tr/floater_post_process.xml
index 5e419f8ffa..5e419f8ffa 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/tr/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preferences.xml b/indra/newview/skins/default/xui/tr/floater_preferences.xml
index edb3c19b81..edb3c19b81 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml
index 1c462e6ebf..1c462e6ebf 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_animation.xml b/indra/newview/skins/default/xui/tr/floater_preview_animation.xml
index 23b4848333..23b4848333 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_gesture.xml b/indra/newview/skins/default/xui/tr/floater_preview_gesture.xml
index dc6f66f657..dc6f66f657 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_notecard.xml b/indra/newview/skins/default/xui/tr/floater_preview_notecard.xml
index 23391249d1..23391249d1 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_sound.xml b/indra/newview/skins/default/xui/tr/floater_preview_sound.xml
index 50874f024a..50874f024a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
index 79e184130a..79e184130a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_price_for_listing.xml b/indra/newview/skins/default/xui/tr/floater_price_for_listing.xml
index 5cdd25b64c..5cdd25b64c 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/tr/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_publish_classified.xml b/indra/newview/skins/default/xui/tr/floater_publish_classified.xml
index 572892667b..572892667b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/tr/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_region_debug_console.xml b/indra/newview/skins/default/xui/tr/floater_region_debug_console.xml
index e2a5e8e86a..e2a5e8e86a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/tr/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_region_info.xml b/indra/newview/skins/default/xui/tr/floater_region_info.xml
index 2b2e00161b..2b2e00161b 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/tr/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_report_abuse.xml b/indra/newview/skins/default/xui/tr/floater_report_abuse.xml
index c5765883c4..c5765883c4 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/tr/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_debug.xml b/indra/newview/skins/default/xui/tr/floater_script_debug.xml
index baf0aabd85..baf0aabd85 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_limits.xml b/indra/newview/skins/default/xui/tr/floater_script_limits.xml
index 875599bde3..875599bde3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_preview.xml b/indra/newview/skins/default/xui/tr/floater_script_preview.xml
index e193f7c1af..e193f7c1af 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_queue.xml b/indra/newview/skins/default/xui/tr/floater_script_queue.xml
index c1d98b717a..c1d98b717a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_script_search.xml b/indra/newview/skins/default/xui/tr/floater_script_search.xml
index 54b1d20c8c..54b1d20c8c 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/tr/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_search.xml b/indra/newview/skins/default/xui/tr/floater_search.xml
index 08c1e5162c..08c1e5162c 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_search.xml
+++ b/indra/newview/skins/default/xui/tr/floater_search.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_select_key.xml b/indra/newview/skins/default/xui/tr/floater_select_key.xml
index b828672ec2..b828672ec2 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/tr/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_sell_land.xml b/indra/newview/skins/default/xui/tr/floater_sell_land.xml
index 9bea1e120e..9bea1e120e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/tr/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_settings_debug.xml b/indra/newview/skins/default/xui/tr/floater_settings_debug.xml
index 65264c57d7..65264c57d7 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/tr/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_snapshot.xml b/indra/newview/skins/default/xui/tr/floater_snapshot.xml
index fa51f15d16..fa51f15d16 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/tr/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
index 470a222d7e..470a222d7e 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_sound_preview.xml b/indra/newview/skins/default/xui/tr/floater_sound_preview.xml
index 1938f184b3..1938f184b3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_spellcheck.xml b/indra/newview/skins/default/xui/tr/floater_spellcheck.xml
index f5f0ba8fd9..f5f0ba8fd9 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/tr/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/tr/floater_spellcheck_import.xml
index ded71cad40..ded71cad40 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/tr/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_stats.xml b/indra/newview/skins/default/xui/tr/floater_stats.xml
index afce87bdaa..afce87bdaa 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_stats.xml
+++ b/indra/newview/skins/default/xui/tr/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_sys_well.xml b/indra/newview/skins/default/xui/tr/floater_sys_well.xml
index 301d9af063..301d9af063 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/tr/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_telehub.xml b/indra/newview/skins/default/xui/tr/floater_telehub.xml
index 2cdb464ed0..2cdb464ed0 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/tr/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/tr/floater_test_layout_stacks.xml
index b479d5f6d6..b479d5f6d6 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/tr/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/tr/floater_test_text_vertical_aligment.xml
index fcb7d87287..fcb7d87287 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/tr/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
index 889425f23a..42483c09e1 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
@@ -19,7 +19,7 @@
<button label="Varsayılan" label_selected="Varsayılan" name="Default"/>
<button label="Boş" label_selected="Boş" name="Blank"/>
<button label="Hiçbiri" label_selected="Hiçbiri" name="None"/>
- <check_box initial_value="true" label="Canlı Önizleme" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="Şimdi uygula" name="apply_immediate_check"/>
<text name="preview_disabled" value="Önizleme Devre Dışı"/>
<filter_editor label="Dokuları Filtrele" name="inventory search editor"/>
<check_box initial_value="false" label="Klasörleri göster" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
index 42426225c7..42426225c7 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml
index 4bf0372a8a..4bf0372a8a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/tr/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_top_objects.xml b/indra/newview/skins/default/xui/tr/floater_top_objects.xml
index 19420c68e3..19420c68e3 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/tr/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_tos.xml b/indra/newview/skins/default/xui/tr/floater_tos.xml
index 7ff0001ddd..7ff0001ddd 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/tr/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_toybox.xml b/indra/newview/skins/default/xui/tr/floater_toybox.xml
index e60e176643..e60e176643 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/tr/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_translation_settings.xml b/indra/newview/skins/default/xui/tr/floater_translation_settings.xml
index 33ce76bd9a..33ce76bd9a 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/tr/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_url_entry.xml b/indra/newview/skins/default/xui/tr/floater_url_entry.xml
index 54c5b047a8..54c5b047a8 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/tr/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/tr/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..ec350bee60
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="SOHBET SES DÜZEYİ">
+ <slider label="Sesli Sohbet" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
index 5ff0804f17..5ff0804f17 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_voice_effect.xml b/indra/newview/skins/default/xui/tr/floater_voice_effect.xml
index 3534a3fe90..7a157244cd 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/tr/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Yerler" name="voice_effects" title="SES ŞEKİLLENDİRME">
+<floater label="Yerler" name="voice_effects" title="SES ŞEKİLLENDİRME ÖNİZLEMESİ">
<string name="no_voice_effect">
(Ses Şekillendirme Yok)
</string>
diff --git a/indra/newview/skins/default/xui/tr/floater_voice_volume.xml b/indra/newview/skins/default/xui/tr/floater_voice_volume.xml
new file mode 100644
index 0000000000..acf99d6199
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="SES DÜZEYİ">
+ <slider name="volume_slider" tool_tip="Ses düzeyi" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_web_content.xml b/indra/newview/skins/default/xui/tr/floater_web_content.xml
index 93491b80fb..93491b80fb 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/tr/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml
index 1a9f731af0..1a9f731af0 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_window_size.xml b/indra/newview/skins/default/xui/tr/floater_window_size.xml
index aff20e7960..aff20e7960 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/tr/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/tr/floater_world_map.xml b/indra/newview/skins/default/xui/tr/floater_world_map.xml
index e4729c2aed..e4729c2aed 100644..100755
--- a/indra/newview/skins/default/xui/tr/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/tr/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/tr/inspect_avatar.xml b/indra/newview/skins/default/xui/tr/inspect_avatar.xml
index cb3c7e9282..cb3c7e9282 100644..100755
--- a/indra/newview/skins/default/xui/tr/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/tr/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/tr/inspect_group.xml b/indra/newview/skins/default/xui/tr/inspect_group.xml
index 9b130c9ef6..9b130c9ef6 100644..100755
--- a/indra/newview/skins/default/xui/tr/inspect_group.xml
+++ b/indra/newview/skins/default/xui/tr/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/tr/inspect_object.xml b/indra/newview/skins/default/xui/tr/inspect_object.xml
index bd09267319..bd09267319 100644..100755
--- a/indra/newview/skins/default/xui/tr/inspect_object.xml
+++ b/indra/newview/skins/default/xui/tr/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/tr/inspect_remote_object.xml b/indra/newview/skins/default/xui/tr/inspect_remote_object.xml
index 4b696b2ae5..4b696b2ae5 100644..100755
--- a/indra/newview/skins/default/xui/tr/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/tr/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml
index dcb4629259..dcb4629259 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_attachment_other.xml b/indra/newview/skins/default/xui/tr/menu_attachment_other.xml
index 9ba214ff31..9ba214ff31 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/tr/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_attachment_self.xml b/indra/newview/skins/default/xui/tr/menu_attachment_self.xml
index 16d1e3f356..16d1e3f356 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/tr/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
index d3ef490735..d3ef490735 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_other.xml b/indra/newview/skins/default/xui/tr/menu_avatar_other.xml
index 7d691d2ac5..7d691d2ac5 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/tr/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_self.xml b/indra/newview/skins/default/xui/tr/menu_avatar_self.xml
index c520aff521..c520aff521 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/tr/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_cof_attachment.xml b/indra/newview/skins/default/xui/tr/menu_cof_attachment.xml
index d57c43f6c1..d57c43f6c1 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/tr/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_cof_body_part.xml b/indra/newview/skins/default/xui/tr/menu_cof_body_part.xml
index 31f77d834a..31f77d834a 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/tr/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_cof_clothing.xml b/indra/newview/skins/default/xui/tr/menu_cof_clothing.xml
index 784d809d70..784d809d70 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/tr/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_cof_gear.xml b/indra/newview/skins/default/xui/tr/menu_cof_gear.xml
index f910e1fe91..9480d30029 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear COF">
<menu label="Yeni Giysiler" name="COF.Gear.New_Clothes"/>
- <menu label="Yeni Vücut Bölümleri" name="COF.Geear.New_Body_Parts"/>
+ <menu label="Yeni Vücut Bölümleri" name="COF.Gear.New_Body_Parts"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_conversation.xml b/indra/newview/skins/default/xui/tr/menu_conversation.xml
new file mode 100644
index 0000000000..31404f2501
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="Sohbeti kapat" name="close_conversation"/>
+ <menu_item_call label="Ses sohbetini aç" name="open_voice_conversation"/>
+ <menu_item_call label="Ses bağlantısını kes" name="disconnect_from_voice"/>
+ <menu_item_call label="Profili Göster" name="view_profile"/>
+ <menu_item_call label="Aİ" name="im"/>
+ <menu_item_call label="Işınlama teklif et" name="offer_teleport"/>
+ <menu_item_call label="Sesli arama" name="voice_call"/>
+ <menu_item_call label="Sohbet geçmişi..." name="chat_history"/>
+ <menu_item_call label="Arkadaş ekle" name="add_friend"/>
+ <menu_item_call label="Arkadaşı çıkar" name="remove_friend"/>
+ <menu_item_call label="Arkadaşları çıkar" name="remove_friends"/>
+ <menu_item_call label="Gruba davet et..." name="invite_to_group"/>
+ <menu_item_call label="Yakınlaştır" name="zoom_in"/>
+ <menu_item_call label="Harita" name="map"/>
+ <menu_item_call label="Paylaş" name="share"/>
+ <menu_item_call label="Öde" name="pay"/>
+ <menu_item_check label="Sesi Engelle" name="block_unblock"/>
+ <menu_item_check label="Metni Engelle" name="MuteText"/>
+ <menu_item_call label="Grup Profili" name="group_profile"/>
+ <menu_item_call label="Grubu Etkinleştir" name="activate_group"/>
+ <menu_item_call label="Gruptan Ayrıl" name="leave_group"/>
+ <context_menu label="Moderatör Seçenekleri" name="Moderator Options">
+ <menu_item_check label="Metin sohbetine izin ver" name="AllowTextChat"/>
+ <menu_item_call label="Bu katılımcıyı engelle" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Bu katılımcının engellemesini kaldır" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Herkesi engelle" name="ModerateVoiceMute"/>
+ <menu_item_call label="Herkesin engellemesini kaldır" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/tr/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..9e91780eb8
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="Aİ..." name="IM"/>
+ <menu_item_call label="Sesli arama..." name="Call"/>
+ <menu_item_call label="Sohbet geçmişini aç..." name="Chat history"/>
+ <menu_item_call label="Profili Göster" name="View Profile"/>
+ <menu_item_call label="Işınlama Teklif Et" name="teleport"/>
+ <menu_item_call label="Arkadaş Ekle" name="add_friend"/>
+ <menu_item_call label="Arkadaşı Çıkar" name="remove_friend"/>
+ <menu_item_call label="Gruba davet et..." name="Invite"/>
+ <menu_item_call label="Harita" name="Map"/>
+ <menu_item_call label="Paylaş" name="Share"/>
+ <menu_item_call label="Öde" name="Pay"/>
+ <menu_item_check label="Engelle/Engeli Kaldır" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/tr/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..9a77eaadd9
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="Ada göre sırala" name="sort_by_name"/>
+ <menu_item_check label="Tarihe göre sırala" name="sort_by_date"/>
+ <menu_item_check label="Arkadaşlar üstte olacak şekilde sırala" name="sort_by_friends"/>
+ <menu_item_call label="Yakındaki sohbet geçmişini göster..." name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_edit.xml b/indra/newview/skins/default/xui/tr/menu_edit.xml
index 81cd270af0..81cd270af0 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_edit.xml
+++ b/indra/newview/skins/default/xui/tr/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_favorites.xml b/indra/newview/skins/default/xui/tr/menu_favorites.xml
index 7bb2ed1ddc..7bb2ed1ddc 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/tr/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
index cb9b678fdd..cb9b678fdd 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_group_plus.xml b/indra/newview/skins/default/xui/tr/menu_group_plus.xml
index 82cf7dcf74..82cf7dcf74 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/tr/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
index d1f213516b..d1f213516b 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_im_conversation.xml b/indra/newview/skins/default/xui/tr/menu_im_conversation.xml
new file mode 100644
index 0000000000..3b9738edce
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="Profili Göster" name="View Profile"/>
+ <menu_item_call label="Arkadaş Ekle" name="Add Friend"/>
+ <menu_item_call label="Arkadaşı çıkar" name="remove_friend"/>
+ <menu_item_call label="Işınlama teklif et" name="offer_teleport"/>
+ <menu_item_call label="Gruba davet et..." name="invite_to_group"/>
+ <menu_item_call label="Sohbet geçmişi..." name="chat_history"/>
+ <menu_item_call label="Yakınlaştır" name="zoom_in"/>
+ <menu_item_call label="Harita" name="map"/>
+ <menu_item_call label="Paylaş" name="Share"/>
+ <menu_item_call label="Öde" name="Pay"/>
+ <menu_item_check label="Sesi Engelle" name="Block/Unblock"/>
+ <menu_item_check label="Metni Engelle" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/tr/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..c4d4357ac9
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="Daraltılmış görünüm" name="compact_view"/>
+ <menu_item_check label="Genişletilmiş görünüm" name="expanded_view"/>
+ <menu_item_check label="Zamanı göster" name="IMShowTime"/>
+ <menu_item_check label="Bire bir sohbetlerde adları göster" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml
index 0396ad8fb5..0396ad8fb5 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml
index 60a50b114e..60a50b114e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml
index 0ef4471088..0ef4471088 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml
index 69432e967b..69432e967b 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml
index d1d3f9ac8d..d1d3f9ac8d 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml
index 0655db8196..0655db8196 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml
index 2e2b17491a..2e2b17491a 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inventory.xml b/indra/newview/skins/default/xui/tr/menu_inventory.xml
index 51049427af..51049427af 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inventory_add.xml b/indra/newview/skins/default/xui/tr/menu_inventory_add.xml
index db2a9a2c8c..db2a9a2c8c 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml
index 5f3e4e8789..5f3e4e8789 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_land.xml b/indra/newview/skins/default/xui/tr/menu_land.xml
index db65f1af1e..db65f1af1e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_land.xml
+++ b/indra/newview/skins/default/xui/tr/menu_land.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_landmark.xml b/indra/newview/skins/default/xui/tr/menu_landmark.xml
index c68a2f6a90..c68a2f6a90 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_login.xml b/indra/newview/skins/default/xui/tr/menu_login.xml
index f27908bf7a..f27908bf7a 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_login.xml
+++ b/indra/newview/skins/default/xui/tr/menu_login.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_media_ctrl.xml b/indra/newview/skins/default/xui/tr/menu_media_ctrl.xml
index 8d04e645fd..8d04e645fd 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/tr/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_mini_map.xml b/indra/newview/skins/default/xui/tr/menu_mini_map.xml
index 9abe78931e..9abe78931e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/tr/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml
index 51cf29a4de..51cf29a4de 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_navbar.xml b/indra/newview/skins/default/xui/tr/menu_navbar.xml
index b05b816e64..b05b816e64 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/tr/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_nearby_chat.xml b/indra/newview/skins/default/xui/tr/menu_nearby_chat.xml
index b76a736979..b76a736979 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/tr/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_notification_well_button.xml b/indra/newview/skins/default/xui/tr/menu_notification_well_button.xml
index 39c66268f5..39c66268f5 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/tr/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_object.xml b/indra/newview/skins/default/xui/tr/menu_object.xml
index 72f7adf016..72f7adf016 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_object.xml
+++ b/indra/newview/skins/default/xui/tr/menu_object.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_object_icon.xml b/indra/newview/skins/default/xui/tr/menu_object_icon.xml
index 34a2661d8a..3d5c68d9d3 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/tr/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="Nesne Profili..." name="Object Profile"/>
<menu_item_call label="Engelle..." name="Block"/>
+ <menu_item_call label="Haritada Göster" name="show_on_map"/>
+ <menu_item_call label="Nesne Konumuna Işınla" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_outfit_gear.xml b/indra/newview/skins/default/xui/tr/menu_outfit_gear.xml
index d2e7e7107a..674041e9c9 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="Yeni Saç" name="New Hair"/>
<menu_item_call label="Yeni Gözler" name="New Eyes"/>
</menu>
+ <menu_item_call label="Tüm klasörleri genişlet" name="expand"/>
+ <menu_item_call label="Tüm klasörleri daralt" name="collapse"/>
<menu_item_call label="Dış Görünümü Yeniden Adlandır" name="rename"/>
<menu_item_call label="Dış Görünümü Sil" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_outfit_tab.xml b/indra/newview/skins/default/xui/tr/menu_outfit_tab.xml
index a48529e462..a48529e462 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/tr/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_participant_list.xml b/indra/newview/skins/default/xui/tr/menu_participant_list.xml
index 1d56105e1e..1d56105e1e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/tr/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_participant_view.xml b/indra/newview/skins/default/xui/tr/menu_participant_view.xml
new file mode 100644
index 0000000000..e9411ff350
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="Sohbetleri türe göre sırala" name="sort_sessions_by_type"/>
+ <menu_item_check label="Sohbetleri ada göre sırala" name="sort_sessions_by_name"/>
+ <menu_item_check label="Sohbetleri son faaliyetlere göre sırala" name="sort_sessions_by_recent"/>
+ <menu_item_check label="Katılımcıları ada göre sırala" name="sort_participants_by_name"/>
+ <menu_item_check label="Katılımcıları son faaliyetlere göre sırala" name="sort_participants_by_recent"/>
+ <menu_item_call label="Sohbet tercihleri..." name="chat_preferences"/>
+ <menu_item_call label="Gizlilik tercihleri..." name="privacy_preferences"/>
+ <menu_item_check label="Sohbet günlüğü..." name="Conversation"/>
+ <menu_item_check label="Yakındaki sohbeti çevir" name="Translate_chat"/>
+ <menu_item_check label="Çeviri ayarları..." name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/tr/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..2bf1101b48
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="Engellemeyi Kaldır" name="unblock"/>
+ <menu_item_call label="Profil..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/tr/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..a869e2ae7d
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="Sakini ada göre engelle..." name="block_resident_by_name"/>
+ <menu_item_call label="Nesneyi ada göre engelle" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/tr/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..14b3de3a9f
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="Ada göre sırala" name="sort_by_name"/>
+ <menu_item_check label="Türe göre sırala" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_friends_view.xml b/indra/newview/skins/default/xui/tr/menu_people_friends_view.xml
new file mode 100644
index 0000000000..609584d6a6
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Ada Göre Sırala" name="sort_name"/>
+ <menu_item_check label="Duruma Göre Sırala" name="sort_status"/>
+ <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/>
+ <menu_item_check label="Verilen İzinleri Göster" name="view_permissions"/>
+ <menu_item_check label="Sohbet Günlüğünü Göster..." name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml
index 404fab17e6..404fab17e6 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_people_groups.xml b/indra/newview/skins/default/xui/tr/menu_people_groups.xml
index 9f2946e310..743b01844d 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="Bilgileri Görüntüle" name="View Info"/>
<menu_item_call label="Sohbet" name="Chat"/>
- <menu_item_call label="Ara" name="Call"/>
+ <menu_item_call label="Sesli arama" name="Call"/>
<menu_item_call label="Etkinleştir" name="Activate"/>
<menu_item_call label="Ayrıl" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_groups_view.xml b/indra/newview/skins/default/xui/tr/menu_people_groups_view.xml
new file mode 100644
index 0000000000..e550b20add
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Grup Simgelerini Göster" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml
index a1e5ad9a50..a1e5ad9a50 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_people_nearby.xml b/indra/newview/skins/default/xui/tr/menu_people_nearby.xml
index ee859a9450..2d61461c91 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Profili Göster" name="View Profile"/>
- <menu_item_call label="Arkadaş Ekle" name="Add Friend"/>
- <menu_item_call label="Arkadaşı Çıkar" name="Remove Friend"/>
- <menu_item_call label="Aİ" name="IM"/>
- <menu_item_call label="Ara" name="Call"/>
- <menu_item_call label="Harita" name="Map"/>
- <menu_item_call label="Paylaş" name="Share"/>
- <menu_item_call label="Öde" name="Pay"/>
- <menu_item_check label="Engelle/Engeli Kaldır" name="Block/Unblock"/>
- <menu_item_call label="Işınlama Teklif Et" name="teleport"/>
+ <menu_item_call label="Profili Göster" name="view_profile"/>
+ <menu_item_call label="Aİ" name="im"/>
+ <menu_item_call label="Işınlama Teklif Et" name="offer_teleport"/>
+ <menu_item_call label="Sesli arama" name="voice_call"/>
+ <menu_item_call label="Sohbet geçmişini göster..." name="chat_history"/>
+ <menu_item_call label="Arkadaş Ekle" name="add_friend"/>
+ <menu_item_call label="Arkadaşı Çıkar" name="remove_friend"/>
+ <menu_item_call label="Gruba davet et..." name="invite_to_group"/>
+ <menu_item_call label="Yakınlaştır" name="zoom_in"/>
+ <menu_item_call label="Harita" name="map"/>
+ <menu_item_call label="Paylaş" name="share"/>
+ <menu_item_call label="Öde" name="pay"/>
+ <menu_item_check label="Engelle/Engeli Kaldır" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml
index 5c89f87906..20695d98e8 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Arkadaş Ekle" name="Add Friends"/>
- <menu_item_call label="Arkadaşı Çıkar" name="Remove Friend"/>
- <menu_item_call label="Aİ" name="IM"/>
- <menu_item_call label="Ara" name="Call"/>
- <menu_item_call label="Paylaş" name="Share"/>
- <menu_item_call label="Öde" name="Pay"/>
- <menu_item_call label="Işınlama Teklif Et" name="teleport"/>
+ <menu_item_call label="Arkadaş Ekle" name="add_friends"/>
+ <menu_item_call label="Arkadaşı Çıkar" name="remove_friends"/>
+ <menu_item_call label="Aİ" name="im"/>
+ <menu_item_call label="Ara" name="call"/>
+ <menu_item_call label="Paylaş" name="share"/>
+ <menu_item_call label="Öde" name="pay"/>
+ <menu_item_call label="Işınlama Teklif Et" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/tr/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..59ea7c145f
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="Son Konuşanlara Göre Sırala" name="sort_by_recent_speakers"/>
+ <menu_item_check label="Ada Göre Sırala" name="sort_name"/>
+ <menu_item_check label="Mesafeye Göre Sırala" name="sort_distance"/>
+ <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/>
+ <menu_item_check label="Haritayı Göster" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml
index 0ff2111e9e..0ff2111e9e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_people_recent_view.xml b/indra/newview/skins/default/xui/tr/menu_people_recent_view.xml
new file mode 100644
index 0000000000..02be715ed2
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="En Sonunculara Göre Sırala" name="sort_most"/>
+ <menu_item_check label="Ada Göre Sırala" name="sort_name"/>
+ <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml
index adfba50138..adfba50138 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_picks.xml b/indra/newview/skins/default/xui/tr/menu_picks.xml
index 3e5375ecc0..3e5375ecc0 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_picks.xml
+++ b/indra/newview/skins/default/xui/tr/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
index d9c4fefc97..d9c4fefc97 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_place.xml b/indra/newview/skins/default/xui/tr/menu_place.xml
index ad167a328a..ad167a328a 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_place.xml
+++ b/indra/newview/skins/default/xui/tr/menu_place.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_place_add_button.xml b/indra/newview/skins/default/xui/tr/menu_place_add_button.xml
index 8e52b3f7f2..8e52b3f7f2 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/tr/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml
index b3a2986160..b3a2986160 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
index 939ee2c7cb..939ee2c7cb 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_profile_overflow.xml b/indra/newview/skins/default/xui/tr/menu_profile_overflow.xml
index ed60dec63a..ed60dec63a 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/tr/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_save_outfit.xml b/indra/newview/skins/default/xui/tr/menu_save_outfit.xml
index b28488fe30..b28488fe30 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/tr/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_script_chiclet.xml b/indra/newview/skins/default/xui/tr/menu_script_chiclet.xml
index 7c1cefc2d1..7c1cefc2d1 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/tr/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_slurl.xml b/indra/newview/skins/default/xui/tr/menu_slurl.xml
index 73ac068b26..73ac068b26 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/tr/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml
index b08423be18..b08423be18 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
index 93984162e7..93984162e7 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml
index b1e801c123..b1e801c123 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_text_editor.xml b/indra/newview/skins/default/xui/tr/menu_text_editor.xml
index 76c7b43e1e..76c7b43e1e 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/tr/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_toolbars.xml b/indra/newview/skins/default/xui/tr/menu_toolbars.xml
index c8523a6ec9..c8523a6ec9 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/tr/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_topinfobar.xml b/indra/newview/skins/default/xui/tr/menu_topinfobar.xml
index d9b8d50f18..d9b8d50f18 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/tr/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_agent.xml b/indra/newview/skins/default/xui/tr/menu_url_agent.xml
index d82b52aea8..b14a0509bf 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Sakin Profilini Göster" name="show_agent"/>
+ <menu_item_call label="Profili Göster" name="show_agent"/>
+ <menu_item_call label="Aİ Gönder..." name="send_im"/>
+ <menu_item_call label="Arkadaş Ekle..." name="add_friend"/>
<menu_item_call label="Adı panoya kopyala" name="url_copy_label"/>
<menu_item_call label="SLurl&apos;yi Panoya Kopyala" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_url_group.xml b/indra/newview/skins/default/xui/tr/menu_url_group.xml
index 40fa13b4cf..40fa13b4cf 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_http.xml b/indra/newview/skins/default/xui/tr/menu_url_http.xml
index fee8eba150..fee8eba150 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_inventory.xml b/indra/newview/skins/default/xui/tr/menu_url_inventory.xml
index 3b22c5afec..3b22c5afec 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_map.xml b/indra/newview/skins/default/xui/tr/menu_url_map.xml
index 770e330516..770e330516 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_objectim.xml b/indra/newview/skins/default/xui/tr/menu_url_objectim.xml
index d55e34c11c..00fa3c27c2 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Nesne Bilgilerini Göster" name="show_object"/>
+ <menu_item_call label="Nesne Profili..." name="show_object"/>
<menu_item_call label="Haritada Göster" name="show_on_map"/>
<menu_item_call label="Nesne Konumuna Işınla" name="teleport_to_object"/>
<menu_item_call label="Nesne Adını panoya kopyala" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_url_parcel.xml b/indra/newview/skins/default/xui/tr/menu_url_parcel.xml
index eac1d743c3..eac1d743c3 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_slapp.xml b/indra/newview/skins/default/xui/tr/menu_url_slapp.xml
index a2ecfc6a48..a2ecfc6a48 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_slurl.xml b/indra/newview/skins/default/xui/tr/menu_url_slurl.xml
index 3f4e51b36c..3f4e51b36c 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_url_teleport.xml b/indra/newview/skins/default/xui/tr/menu_url_teleport.xml
index b7035a4d8f..b7035a4d8f 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/tr/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml
index 7a7faf6ac4..c465966fc7 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="Beni Anime Etmeyi Durdur" name="Stop Animating My Avatar"/>
<menu_item_call label="Yürü / koş / uç..." name="Walk / run / fly"/>
</menu>
- <menu label="Durum" name="Status">
- <menu_item_call label="Uzakta" name="Set Away"/>
- <menu_item_call label="Meşgul" name="Set Busy"/>
- </menu>
+ <menu label="Durum" name="Status"/>
<menu_item_call label="L$ Satın Al..." name="Buy and Sell L$"/>
<menu_item_call label="Satıcı Giden Kutusu..." name="MerchantOutbox"/>
<menu_item_call label="Hesap kontrol paneli..." name="Manage My Account"/>
@@ -30,14 +27,18 @@
<menu_item_call label="[APP_NAME]&apos;den Çık" name="Quit"/>
</menu>
<menu label="İletişim Kur" name="Communicate">
- <menu_item_check label="Sohbet..." name="Nearby Chat"/>
+ <menu_item_check label="Sohbetler..." name="Conversations"/>
+ <menu_item_check label="Yakındaki Sohbet..." name="Nearby Chat"/>
<menu_item_check label="Konuş" name="Speak"/>
- <menu_item_check label="Ses ayarları..." name="Nearby Voice"/>
- <menu_item_check label="Ses şekillendirme..." name="ShowVoice"/>
+ <menu label="Ses şekillendirme" name="VoiceMorphing">
+ <menu_item_check label="Ses şekillendirme yok" name="NoVoiceMorphing"/>
+ <menu_item_check label="Önizleme..." name="Preview"/>
+ <menu_item_call label="Abone ol..." name="Subscribe"/>
+ </menu>
<menu_item_check label="Mimikler..." name="Gestures"/>
- <menu_item_call label="Arkadaşlar" name="My Friends"/>
- <menu_item_call label="Gruplar" name="My Groups"/>
- <menu_item_call label="Yakındaki kişiler" name="Active Speakers"/>
+ <menu_item_check label="Arkadaşlar" name="My Friends"/>
+ <menu_item_check label="Gruplar" name="My Groups"/>
+ <menu_item_check label="Yakındaki kişiler" name="Active Speakers"/>
<menu_item_call label="Engelleme Listesi" name="Block List"/>
</menu>
<menu label="Dünya" name="World">
@@ -113,7 +114,6 @@
<menu_item_call label="Satın Al" name="Menu Object Buy"/>
<menu_item_call label="Al" name="Menu Object Take"/>
<menu_item_call label="Kopya Al" name="Take Copy"/>
- <menu_item_call label="Envanterime Geri Kaydet" name="Save Object Back to My Inventory"/>
<menu_item_call label="Nesne İçeriklerine Geri Kaydet" name="Save Object Back to Object Contents"/>
<menu_item_call label="Nesneyi İade Et" name="Return Object back to Owner"/>
</menu>
@@ -128,6 +128,7 @@
<menu_item_call label="Bağlantı kümeleri..." name="pathfinding_linksets_menu_item"/>
<menu_item_call label="Karakterler..." name="pathfinding_characters_menu_item"/>
<menu_item_call label="Görüntüleme / test..." name="pathfinding_console_menu_item"/>
+ <menu_item_call label="Bölgeyi tekrar kaydet" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="Seçenklr." name="Options">
<menu_item_check label="Gelişmiş İzinleri Göster" name="DebugPermissions"/>
@@ -157,6 +158,13 @@
<menu label="Yardım" name="Help">
<menu_item_call label="Nasıl yapılır..." name="How To"/>
<menu_item_call label="[SECOND_LIFE] Yardımı" name="Second Life Help"/>
+ <menu_item_call label="Kullanıcı kılavuzu" name="User’s guide"/>
+ <menu_item_call label="Bilgi Bankası" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Topluluk Forumları" name="Community Forums"/>
+ <menu_item_call label="Destek portalı" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] Haberleri" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] Blogları" name="Second Life Blogs"/>
<menu_item_call label="Kötüye Kullanımı Bildir" name="Report Abuse"/>
<menu_item_call label="Hata Bildir" name="Report Bug"/>
<menu_item_call label="[APP_NAME] Hakkında" name="About Second Life"/>
@@ -383,9 +391,14 @@
<menu_item_call label="Test Dişisi" name="Test Female"/>
<menu_item_check label="Avatar Seçimine İzin Ver" name="Allow Select Avatar"/>
</menu>
+ <menu label="Animasyon Hızı" name="Animation Speed">
+ <menu_item_call label="Tüm Animasyonlar %10 Daha Hızlı" name="All Animations 10 Faster"/>
+ <menu_item_call label="Tüm Animasyonlar %10 Daha Yavaş" name="All Animations 10 Slower"/>
+ <menu_item_call label="Tüm Animasyon Hızlarını Sıfırla" name="Reset All Animation Speed"/>
+ <menu_item_check label="Yavaş Hareket Animasyonları" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="Parametreleri Varsayılana Zorla" name="Force Params to Default"/>
<menu_item_check label="Animasyon Bilgisi" name="Animation Info"/>
- <menu_item_check label="Yavaş Hareket Animasyonları" name="Slow Motion Animations"/>
<menu_item_check label="Şuraya Bak&apos;ı Göster" name="Show Look At"/>
<menu_item_check label="Şuraya İşaret Et&apos;i Göster" name="Show Point At"/>
<menu_item_check label="Eklem Güncelleştirmeleri İçin Hata Ayıklama" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml
index 448202df87..448202df87 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_wearing_gear.xml b/indra/newview/skins/default/xui/tr/menu_wearing_gear.xml
index 438e580cd3..438e580cd3 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/tr/menu_wearing_tab.xml b/indra/newview/skins/default/xui/tr/menu_wearing_tab.xml
index 9796546559..9796546559 100644..100755
--- a/indra/newview/skins/default/xui/tr/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/tr/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/tr/mime_types.xml b/indra/newview/skins/default/xui/tr/mime_types.xml
index c37f872a65..c37f872a65 100644..100755
--- a/indra/newview/skins/default/xui/tr/mime_types.xml
+++ b/indra/newview/skins/default/xui/tr/mime_types.xml
diff --git a/indra/newview/skins/default/xui/tr/mime_types_linux.xml b/indra/newview/skins/default/xui/tr/mime_types_linux.xml
index c37f872a65..c37f872a65 100644..100755
--- a/indra/newview/skins/default/xui/tr/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/tr/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/tr/mime_types_mac.xml b/indra/newview/skins/default/xui/tr/mime_types_mac.xml
index c37f872a65..c37f872a65 100644..100755
--- a/indra/newview/skins/default/xui/tr/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/tr/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index 488702f9ca..ad92a4b478 100644..100755
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -516,6 +516,24 @@ Daha fazla bilgi için [_URL] adresini ziyaret etmek ister misiniz?
</url>
<usetemplate ignoretext="Grafik sürücüm güncel değil" name="okcancelignore" notext="Hayır" yestext="Evet"/>
</notification>
+ <notification name="AMDOldDriver">
+ Grafik yonganız için muhtemelen daha yeni bir sürücü mevcut. Grafik sürücüleri güncellemek performansınızı kayda değer şekilde artırabilir.
+
+ Sürücü güncellemeleri için [_URL] adresini ziyaret etmek ister misiniz?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="Grafik sürücüm güncel değil" name="okcancelignore" notext="Hayır" yestext="Evet"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ Grafik yonganız için muhtemelen daha yeni bir sürücü mevcut. Grafik sürücüleri güncellemek performansınızı kayda değer şekilde artırabilir.
+
+ Sürücü güncellemeleri için [_URL] adresini ziyaret etmek ister misiniz?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=en-us
+ </url>
+ <usetemplate ignoretext="Grafik sürücüm güncel değil" name="okcancelignore" notext="Hayır" yestext="Evet"/>
+ </notification>
<notification name="UnknownGPU">
Sisteminiz [APP_NAME] uygulamasının tanımadığı bir grafik kartı içeriyor.
Bu durum genellikle [APP_NAME] uygulaması ile henüz denenmemiş yeni donanımlar kullanıldığında ortaya çıkar. Büyük olasılıkla bir sorun çıkmayacaktır, fakat grafik ayarlarınızı değiştirmeniz gerekebilir.
@@ -1546,10 +1564,13 @@ Gruptan ayrılmak istiyor musunuz?
Şu anda arkadaşlık teklif edilemiyor. Lütfen biraz sonra tekrar deneyin.
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
- <notification name="BusyModeSet">
- Durumunuz Meşgul olarak ayarlandı.
-Sohbet ve anlık iletiler gizlenecek. Anlık iletilere Meşgul durumu için belirlediğiniz yanıt gönderilecek. Tüm ışınlanma teklifleri reddedilecek. Tüm envanter teklifleri Çöp Kutunuza gidecek.
- <usetemplate ignoretext="Durumumu Meşgul olarak değiştiriyorum" name="okignore" yestext="Tamam"/>
+ <notification name="DoNotDisturbModeSet">
+ Rahatsız Etme açık. Gelen iletişimlerle ilgili size bilgi verilmeyecek.
+
+- Diğer sakinlere sizin Rahatsız Etmeyin yanıtı iletilecektir (Tercihler &gt; Genel içerisinde ayarlanır).
+- Işınlanma teklifleri reddedilecektir.
+- Sesli aramalar reddedilecektir.
+ <usetemplate ignoretext="Durumumu Rahatsız Etme moduna değiştiriyorum" name="okignore" yestext="Tamam"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Maksimum grup sayısına eriştiniz. Lütfen bu gruba katılmadan önce başka bir gruptan ayrılın ya da bu teklifi reddedin.
@@ -2033,6 +2054,10 @@ Envanter öğesi/öğeleri taşınsın mı?
Hesap geçmişinizi görüntülemek için [http://secondlife.com/account/ Kontrol Paneli] adresine gitmek istiyor musunuz?
<usetemplate ignoretext="Hesap geçmişimi görüntülemek için tarayıcımı başlat" name="okcancelignore" notext="İptal" yestext="Sayfaya git"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ Mevcut bir sohbete bir kişi eklediğinizde yeni bir sohbet oluşturulur. Tüm katılımcılara yeni sohbet bildirimi gönderilir.
+ <usetemplate ignoretext="Sohbet katılımcılarının eklenmesini doğrula" name="okcancelignore" notext="İptal" yestext="Tamam"/>
+ </notification>
<notification name="ConfirmQuit">
Çıkmak istediğinize emin misiniz?
<usetemplate ignoretext="Çıkmadan önce doğrulama iste" name="okcancelignore" notext="Çıkma" yestext="Çık"/>
@@ -2107,14 +2132,14 @@ Bu nesneyi seçilen nesne ile değiştirmek istiyor musunuz?
<button ignore="Hiçbir Zaman Değiştirme" name="No" text="İptal"/>
</form>
</notification>
- <notification label="Meşgul Durumu Uyarısı" name="BusyModePay">
- Durumunuz Meşgul olarak ayarlanmış; bu da, bu ödemenin karşılığında teklif edilen hiçbir öğeyi almayacağınız anlamına gelir.
+ <notification label="Rahatsız Etme Modu Uyarısı" name="DoNotDisturbModePay">
+ Rahatsız Etme seçeneğini devreye aldınız. Bu ödemenin karşılığında sunulan hiçbir öğeyi almayacaksınız.
-Bu işlemi tamamlamadan önce Meşgul durumundan çıkmak ister misiniz?
+Bu işlemi tamamlamadan önce Rahatsız Etme&apos;yi kapatmak ister misiniz?
<form name="form">
- <ignore name="ignore" text="Meşgul durumundayken bir kişiye veya bir nesneye ödeme yapmak üzereyim."/>
- <button ignore="Her zaman Meşgul durumundan çık" name="Yes" text="Tamam"/>
- <button ignore="Hiçbir zaman Meşgul durumundan çıkma" name="No" text="İptal"/>
+ <ignore name="ignore" text="Rahatsız Etmeyin modundayken bir kişiye veya bir nesneye ödeme yapmak üzereyim"/>
+ <button ignore="Rahatsız Etme Modundan daima çıkılsın" name="Yes" text="Tamam"/>
+ <button ignore="Rahatsız Etme Modundan asla çıkılmasın" name="No" text="İptal"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2249,11 +2274,8 @@ Diğer kişilerin bu konuma kolayca erişmesini sağlamak için bu adrese bir we
<notification name="GroupNotice">
Konu: [SUBJECT], İleti: [MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; çevrimiçi
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; çevrimdışı
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; durumu: [STATUS]
</notification>
<notification name="AddSelfFriend">
Çok iyi biri olduğunuza eminiz fakat kendinizi arkadaş olarak ekleyemezsiniz.
@@ -2482,13 +2504,6 @@ Burada uçamazsınız.
<notification name="DynamicPathfindingDisabled">
Bu bölgede dinamik yol bulma etkin değil. Yol bulma LSL çağrılarını kullanan komut dosyalı nesneler, bu bölgede beklendiiği gibi çalışmayabilir.
</notification>
- <notification name="PathfindingRebakeNavmesh">
- Bu bölgede belirli diğer nesneleri değiştirmek, hareket eden başka nesnelerin yanlış davranmasına neden olabilir. Hareket eden başka nesnelerin doğru davranmasını sağlamak için “Bölgeyi yeniden kaydet” düğmesine tıklayın. Daha fazla bilgi edinmek için “Yardım” seçimini yapın.
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="Yardım" ignoretext="Bu bölgede belirli diğer nesneleri değiştirmek, hareket eden başka nesnelerin yanlış davranmasına neden olabilir." name="okhelpignore" yestext="Tamam"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
Bir hata meydana geldi. Bir ağ veya sunucu sorunu olabilir ya da oluşturma haklarına sahip olmayabilirsiniz. Bazen oturumu kapatıp, tekrar açmak bu sorunu çözer.
<usetemplate name="okbutton" yestext="Tamam"/>
@@ -2751,7 +2766,7 @@ Kabul ediyor musunuz?
<notification name="ScriptQuestionCaution">
Uyarı: &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; nesnesi, Linden Dolar hesabınıza tam erişim istiyor. Eğer erişime izin verirseniz, süregelen bir şekilde, ilave uyarı olmaksızın, hesabınızdan herhangi bir zamanda fon çekebilir veya hesabınızı tamamen boşaltabilir.
-Bu türden bir talebin yerinde olması nadir bir durumdur. Eğer hesabınıza neden erişmek istediğini tam olarak anlamıyorsanız, erişime izin vermeyin.
+Eğer hesabınıza neden erişmek istediğini tam olarak anlamıyorsanız, erişime izin vermeyin.
<form name="form">
<button name="Grant" text="Tam erişime izin ver"/>
<button name="Deny" text="Reddet"/>
@@ -3333,4 +3348,626 @@ Girişim iptal edildi.
[NUM_ITEMS] öğeyi siliyorsunuz. Devam etmek istediğinize emin misiniz?
<usetemplate ignoretext="Birden çok öğeyi silmek istediğinize emin misiniz?" name="okcancelignore" notext="Hayır" yestext="Evet"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] sizi dondurdu. Hareket edemez veya dünyayla etkileşim kuramazsınız.
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] sizi [AV_FREEZE_TIME] saniye boyunca dondurdu. Hareket edemez veya dünyayla etkileşim kuramazsınız.
+ </notification>
+ <notification name="YouFrozeAvatar">
+ Avatar donduruldu.
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] sizin dondurulmanızı kaldırdı.
+ </notification>
+ <notification name="AvatarUnFrozen">
+ Avatar artık dondurulmuş değil.
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ Dondurma başarılamadı çünkü bu parsel için yönetici iznine sahip değilsiniz.
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ Dondurmanızın süresi sona erdi, istediğinizi yapabilirsiniz.
+ </notification>
+ <notification name="AvatarCantFreeze">
+ Üzgünüz, bu kullanıcı dondurulamaz.
+ </notification>
+ <notification name="NowOwnObject">
+ Artık [OBJECT_NAME] nesnesinin sahibisiniz
+ </notification>
+ <notification name="CantRezOnLand">
+ [OBJECT_POS] konumunda nesneyi oluşturamazsınız çünkü bu arazinin sahibi buna izin vermiyor. Arazinin sahibini görmek için arazi aracını kullanın.
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ Çok fazla talep olduğu için nesne oluşturulamadı.
+ </notification>
+ <notification name="SitFailCantMove">
+ Oturamazsınız çünkü şu anda hareket edemezsiniz.
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ Oturamazsınız çünkü bu araziye girme izniniz yok.
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ Daha yakına gelmeyi deneyin. Nesne sizinle aynı bölgede olmadığı için nesnenin üzerine oturulamaz.
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ Yeni nesne oluşturulamıyor. Bölge dolu.
+ </notification>
+ <notification name="FailedToPlaceObject">
+ Belirtilen konuma nesne yerleştirilemedi. Lütfen tekrar deneyin.
+ </notification>
+ <notification name="NoOwnNoGardening">
+ Sahibi olmadığınız arazide ağaçlar ve çimen oluşturamazsınız.
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ &apos;[OBJ_NAME]&apos; nesnesini kopyalama izniniz olmadığı için kopyalama başarılamadı.
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ &apos;[OBJ_NAME]&apos; nesnesi size aktarılamadığı için kopyalama başarılamadı.
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ &apos;[OBJ_NAME]&apos; nesnesi navmesh&apos;e katkıda bulunduğu için kopyalama başarılamadı.
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ Kök nesne seçili olmayan kopya.
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ Nesneler çoğaltılamıyor çünkü bölge dolu.
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ Nesneler çoğaltılamadı - Üzerinde oldukları parsel bulunamadı.
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ Nesne oluşturulamıyor çünkü
+parsel dolu.
+ </notification>
+ <notification name="RezAttemptFailed">
+ Bir nesneyi oluşturma girişimi başarısız oldu.
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ Bu bölgede hatalara yol açmış olan öğe oluşturulamıyor.
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ Bu envanter öğesi kara listeye alınmış.
+ </notification>
+ <notification name="NoCanRezObjects">
+ Şu anda nesne oluşturmanıza izin verilmiyor.
+ </notification>
+ <notification name="LandSearchBlocked">
+ Arazi Arama Engellendi.
+Çok fazla sayıda arazi aramasını çok hızlı gerçekleştirdiniz.
+Lütfen bir dakika sonra tekrar deneyin.
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ Nesneyi iliştirmek için yeterli komut dosyası kaynağı mevcut değil!
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ Hayatınızı kaybettiniz ve ana konumunuza ışınlandınız
+ </notification>
+ <notification name="EjectComingSoon">
+ Daha fazla burada olma izniniz yok ve ayrılmak için [EJECT_TIME] saniyeniz var.
+ </notification>
+ <notification name="NoEnterServerFull">
+ Bu bölgeye giremezsiniz çünkü
+sunucu dolu.
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ Envantere Geri Kaydet devre dışı bırakıldı.
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ &apos;[OBJ_NAME]&apos; nesne içeriğine kaydedilemedi, çünkü oluşturulurken temel alınan nesne artık mevcut değil.
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ &apos;[DEST_NAME]&apos; nesnesini değiştirme izniniz olmadığı için &apos;[OBJ_NAME]&apos; nesne içeriğine kaydedilemedi.
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ &apos;[OBJ_NAME]&apos; envantere geri kaydedilemez -- bu işlem devre dışı bırakıldı.
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ &apos;[OBJ_NAME]&apos; nesnesini kopyalama izniniz olmadığı için seçiminizi kopyalamayazsınız.
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ &apos;[OBJ_NAME]&apos; nesnesi aktarılamaz olduğu için seçiminizi kopyalayamazsınız.
+ </notification>
+ <notification name="NoTransNoCopy">
+ &apos;[OBJ_NAME]&apos; nesnesi aktarılamaz olduğu için seçiminizi kopyalayamazsınız.
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ Benzeticiden &apos;[OBJ_NAME]&apos; nesnesinin kaldırılmasına izinler sistemi izin vermiyor.
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ &apos;[OBJ_NAME]&apos; nesnesini değiştirme izniniz olmadığı için seçiminizi kaydedemezsiniz.
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ &apos;[OBJ_NAME]&apos; nesnesi kopyalanamaz olduğu için seçiminizi kaydedemezsiniz.
+ </notification>
+ <notification name="NoModNoTaking">
+ &apos;[OBJ_NAME]&apos; nesnesini değiştirme izniniz olmadığı için seçiminizi alamazsınız.
+ </notification>
+ <notification name="RezDestInternalError">
+ Dahili Hata: Bilinmeyen hedef türü.
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ Nesne bulunamadığı için silme başarılamadı
+ </notification>
+ <notification name="SorryCantEjectUser">
+ Üzgünüz, bu kullanıcı çıkartılamaz.
+ </notification>
+ <notification name="RegionSezNotAHome">
+ Bu bölge, ana konumunuzu buraya kurmanıza izin vermiyor.
+ </notification>
+ <notification name="HomeLocationLimits">
+ &apos;Ana Konum&apos;unuzu sadece arazinizde veya anakarada bir Bilgi İstasyonu&apos;nda ayarlayabilirsiniz.
+ </notification>
+ <notification name="HomePositionSet">
+ Ana konum ayarlandı.
+ </notification>
+ <notification name="AvatarEjected">
+ Avatar çıkartıldı.
+ </notification>
+ <notification name="AvatarEjectFailed">
+ Çıkarma başarılamadı çünkü bu parsel için yönetici iznine sahip değilsiniz.
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor çünkü parsel dolu.
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor çünkü bu parselde nesnelerinize izin verilmiyor.
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor, çünkü bu parselde bu nesne için yeterli kaynak yok.
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor çünkü bölgede çalıştırılan eski versiyon, bölge değiştirme üzerinden bu nesnenin alınmasını desteklemiyor.
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor çünkü navmesh&apos;i bölge sınırları ötesinde değiştiremezsiniz.
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ Bilinmeyen bir nedenden ötürü [REGION_NAME] bölgesinde &apos;[OBJECT_NAME]&apos; nesnesi [OBJ_POSITION] konumuna hareket ettirilemiyor. ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ Bu nesneyi değiştirme izniniz yok
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ Navmesh&apos;e katkıda bulunan bir nesne için fizik etkinleştirilemez.
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ Anahtar karelenmiş nesneler için fizik etkinleştirilemez.
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ Nesne için fizik etkinleştirilemedi -- arazi kaynakları yetersiz.
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ Fizik kaynağı maliyeti [MAX_OBJECTS]&apos;dan büyük nesne için fizik etkinleştirilemedi
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ Bu nesne fantom olduğu ve navmesh&apos;e katkıda bulunduğu için konkav bir parçaya sahip olamaz.
+ </notification>
+ <notification name="UnableAddItem">
+ Öğe eklenemedi!
+ </notification>
+ <notification name="UnableEditItem">
+ Bu düzenlenemiyor!
+ </notification>
+ <notification name="NoPermToEdit">
+ Bunu düzenleme izni yok.
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ Bu envanteri kopyalama izni yok.
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ Nesne içeriklerine kaydedilemedi: Öğe artık mevcut değil.
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ Nesne içeriklerine kaydedilemedi: Bu ada sahip öğe envanterde zaten mevcut
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ Nesne içeriklerine kaydedilemedi: Bu, aksesuar izinlerini değiştirmeyi gerektirirdi.
+ </notification>
+ <notification name="TooManyScripts">
+ Çok fazla komut dosyası.
+ </notification>
+ <notification name="UnableAddScript">
+ Komut dosyası eklenemedi!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ Varlık sunucusu zamanında yanıt vermedi. Nesne sime iade edildi.
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ Bu bölgede fiziksel şekiller etkin değil.
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ Navmesh&apos;i bölge sınırlarının ötesinde değiştiremezsiniz.
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ Bu nesne türü üzerinde fizik özellikleri ayarlanamaz.
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ Kök prim şekilsiz olacak şekilde ayarlanamaz.
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ Bu bölgede fiziksel malzemeler etkin değil.
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ Sadece kök primlerin fizik malzemeleri ayarlanabilir.
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ Karakterler üzerinde fizik malzemelerin ayarlanması henüz desteklenmiyor.
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ Belirtilen fizik malzemesi özelliklerinden biri veya daha fazlası geçersiz.
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ Bir örgü nesnesinin dikiş türünü değiştiremezsiniz.
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ Bir örgü nesnesinin şeklini değiştiremezsiniz
+ </notification>
+ <notification name="FullRegionCantEnter">
+ Bu bölgeye giremezsiniz çünkü \nbölge dolu.
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ Bağlantı başarısız oldu -- sahipler farklı
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ Bağlntı başarılamadı -- navmesh&apos;i bölge sınırlarının ötesinde değiştiremezsiniz.
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ Düzenleme iznine sahip olmadığınız için bağlantı başarılamadı.
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ Bağlantı başarısız oldu -- çok fazla ilkel öğe var
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ Bağlantı başarısız oldu -- aktarılamayanla kopyalanamayan arasında bağlantı kurulamaz
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ Bağlantı başarısız oldu -- bağlantı verilebilecek bir şey yok.
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ Bağlantı başarısız oldu -- çok fazla yol bulma karakteri var
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ Bağlantı başarısız oldu -- arazi kaynakları yetersiz
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ Nesne çok fazla fizik kaynağı kullanıyor -- dinamikleri devre dışı bırakıldı.
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ &apos;[PARCEL_NAME]&apos; parseli üzerindeki &apos;[OBJECT_NAME]&apos; nesnesi tarafından ana konuma ışınlandınız
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ &apos;[OBJECT_NAME]&apos; nesnesi tarafından ana konuma ışınlandınız
+ </notification>
+ <notification name="TeleportedByAttachment">
+ You have been teleported by an attachment on [ITEM_ID]
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ &apos;[PARCEL_NAME]&apos; parseli üzerindeki &apos;[OBJECT_NAME]&apos; nesnesi tarafından ışınlandınız
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ Sahibi [OWNER_ID] olan &apos;[OBJECT_NAME]&apos; nesnesi tarafından ışınlandınız
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ Bilinmeyen bir sahibi olan &apos;[OBJECT_NAME]&apos; nesnesi tarafından ışınlandınız.
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ Talep edilen nesne oluşturulamıyor. Bölge dolu.
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ Tek bir noktaya birden fazla nesne iliştiremezsiniz.
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ Burada birden fazla nesne oluşturamazsınız.
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ Talep edilen nesne oluşturulamıyor. Nesne veri tabanında yok.
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ Talep edilen nesne oluşturulamıyor. Talep zaman aşımına uğradı. Lütfen tekrar deneyin.
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ Talep edilen nesne oluşturulamıyor. Lütfen tekrar deneyin.
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ Oluşturma başarısız oldu, talep edilen nesnenin yüklenmesi çok zaman aldı.
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ Belirtilen konuma nesne yerleştirilemedi. Lütfen tekrar deneyin.
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ Bu arazide bitkiler oluşturamazsınız.
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ Nesne geri yüklenemiyor. Dünya konumu bulunamadı.
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ Örgü verileri geçersiz olduğu için nesne oluşturulamadı.
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ Bölgede zaten fazlasıyla komut dosyası olduğu için nesne oluşturulamadı.
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ Erişim ayrıcalıklarınız orada nesne oluşturmanıza izin vermiyor.
+ </notification>
+ <notification name="CantCreateObject">
+ Şu anda nesne oluşturmanıza izin verilmiyor.
+ </notification>
+ <notification name="InvalidObjectParams">
+ Geçersiz nesne parametreleri
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ Erişim ayrıcalıklarınız burada nesne çoğaltmanıza izin vermiyor.
+ </notification>
+ <notification name="CantChangeShape">
+ Bu şekli değiştirmenize izin verilmiyor.
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ Erişim ayrıcalıklarınız burada nesneler üzerinde hak talebinde bulunmanıza izin vermiyor.
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ Grubunuz adına nesne devretmek için gerekli izne sahip olmadığınız için devretme başarılamadı.
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ Erişim ayrıcalıklarınız burada nesneler satın almanıza izin vermiyor.
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ Üzerinde bir avatar oturduğu için nesne iliştirilemiyor.
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ Ağaçlar ve çimen aksesuar olarak giyilemez.
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ Sahibi grup olan nesneler iliştirilemiyor.
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ Sahip olmadığınız nesneleri iliştiremezsiniz.
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ Navmesh&apos;e katkıda bulunan nesneler iliştirilemez.
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ Nesneyi hareket ettirme izniniz olmadığı için nesneyi iliştiremiyorsanız.
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ Nesneyi iliştirmek için yeterli komut dosyası kaynağı mevcut değil!
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ Buraya nesne düşüremezsiniz; Ücretsiz Deneme alanını deneyin.
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ Örgü aksesuarlarını düşüremezsiniz. Envantere ayırın, sonra dünyada oluşturun.
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ Aksesuar düşürülemedi: Burada düşürme izniniz yok.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ Aksesuar düşürülemedi: Mevcut arazi kaynakları yetersiz.
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ Aksesuarlar düşürülemedi: Mevcut kaynaklar yetersiz.
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ Nesne buraya düşürülemez. Parsel dolu.
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ Bu arazi parselinde yasaklandığınız için bu nesneye dokunamıyor/tutamıyorsunuz.
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ Lütfen silme parametrelerinizi daraltın.
+ </notification>
+ <notification name="UnableToUploadAsset">
+ Varlık karşıya yüklenemiyor.
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ Ana konuma ışınlanacak kullanıcı bulunamadı
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ tanrısal talep başarısız oldu
+ </notification>
+ <notification name="GenericRequestFailed">
+ genel talep başarısız oldu
+ </notification>
+ <notification name="CantUploadPostcard">
+ Posta kartı karşıya yüklenemiyor. Daha sonra tekrar deneyin.
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ Grup bildirimi için envanter ayrıntıları alınamadı.
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ Grup bildirimi gönderilemedi -- izin verilmiyor.
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ Grup bildirimi gönderilemedi -- envanter oluşturulamadı.
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ Bildirimde envanter ayrıştırılamadı.
+ </notification>
+ <notification name="TerrainUploadFailed">
+ Yüzeyin karşıya yüklemesi başarılamadı.
+ </notification>
+ <notification name="TerrainFileWritten">
+ Yüzey dosyası yazıldı.
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ Yüzey dosyası yazıldı, karşıdan yükleme başlatılıyor...
+ </notification>
+ <notification name="TerrainBaked">
+ Yüzey kaydedildi.
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ Sadece seçilen ilk 10 nesne devre dışı bırakıldı. Gerekiyorsa yenileyin ve ilave seçimler yapın.
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ Bu parseli satın almak için görüntüleyicinizi güncelleştirmelisiniz.
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ Satın alınamıyor, bu parsel satılık değil.
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ Satın alınamıyor, satış fiyatı veya arazi bölgesi değişmiş.
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ Bu parsel için yetkili alıcı değilsiniz.
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ Bu parseli satın alamazsınız çünkü zaten satın alım yetkilendirmesi bekliyor
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ Burada nesneler inşa edemezsiniz, aksi halde parselin kaynak sınırları aşılır.
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ Farklı sahiplere ait araziler seçtiniz. Lütfen daha küçük bir alan seçin ve tekrar deneyin.
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ Seçimde birleştirilecek yeterli sayıda lease edilmiş parsel yok.
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ Arazi bölünemedi.\nBirden fazla parsel seçili durumda.\nDaha küçük bir arazi parçası seçmeyi deneyin.
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ Arazi bölünemiyor.\nParsel bulunamıyor.\nLütfen Yardım -&gt; Hata Bildir ile bildirin...
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ Arazi bölünemiyor. Tüm parsel seçilidir.\nDaha küçük bir arazi parçası seçmeyi deneyin.
+ </notification>
+ <notification name="LandHasBeenDivided">
+ Arazi bölündü.
+ </notification>
+ <notification name="PassPurchased">
+ Bir geçiş hakkı satın aldınız.
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ Bölgede seri ilanlara izin verilmiyor.
+ </notification>
+ <notification name="LandPassExpireSoon">
+ Bu arazi için geçiş hakkınız sona ermek üzere.
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ Üzerinde oturulabilecek uygun bir yüzey yok, başka bir noktayı deneyin.
+ </notification>
+ <notification name="CantSitNoRoom">
+ Burada oturacak yer yok, başka bir yer deneyin.
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ İzniniz olmadığı için nesne üzerinde hak talep etme başarılamadı
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ Sahip olduğunuz L$ yeterli olmadığı için nesne üzerinde hak talep etme başarılamadı.
+ </notification>
+ <notification name="CantDeedGroupLand">
+ Grubun sahip olduğu araziyi devredemezsiniz.
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ Sahip olduğunuz L$ yeterli olmadığı için nesne satın alma başarılamadı.
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ Sahip olduğunuz L$ yeterli olmadığı için envanter satın alma başarılamadı.
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ Sahibi olduğunuz L$ bu araziye geçiş hakkı almanıza yeterli değil.
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ Şu anda geçiş hakkı satın alınamıyor. Daha sonra tekrar deneyin.
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ Nesne oluşturulamıyor çünkü \nparsel dolu.
+ </notification>
+ <notification name="FailedPlacingObject">
+ Belirtilen konuma nesne yerleştirilemedi. Lütfen tekrar deneyin.
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ Etkinlik için yer imi oluşturulamıyor.
+ </notification>
+ <notification name="GodBeatsFreeze">
+ Tanrısal güçleriniz dondurmayı devre dışı bıraktı!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ Özel yetkiler talebi başarısız oldu. Bu talep günlüğe kaydedildi.
+ </notification>
+ <notification name="ExpireExplanation">
+ Sistem şu anda talebinizi işleyemiyor. Talep zaman aşımına uğradı.
+ </notification>
+ <notification name="DieExplanation">
+ Sistem talebinizi işleyemiyor.
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ İlkel öğeyi oluşturmak için yeterli fon yok.
+ </notification>
+ <notification name="RezObjectFailure">
+ Nesneyi oluşturmak için yeterli fon yok.
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ Ana konum sıfırlandı çünkü Ana konum yasal değildi.
+ </notification>
+ <notification name="CantInviteRegionFull">
+ Şu anda konumunuza kimseyi davet edemezsiniz çünkü bölge dolu. Daha sonra tekrar deneyin.
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ Bu bölge, ana konumunuzu buraya kurmanıza izin vermiyor.
+ </notification>
+ <notification name="ListValidHomeLocations">
+ &apos;Ana Konum&apos;unuzu sadece arazinizde veya anakarada bir Bilgi İstasyonu&apos;nda ayarlayabilirsiniz.
+ </notification>
+ <notification name="SetHomePosition">
+ Ana konum ayarlandı.
+ </notification>
+ <notification name="CantDerezInventoryError">
+ Envanter hatasından ötürü nesne oluşturulması geri alınamıyor.
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ Talep edilen envanter oluşturulamadı.
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ Talep edilen envanter klasörü oluşturulamadı.
+ </notification>
+ <notification name="CantCreateInventory">
+ Bu envanter oluşturulamadı.
+ </notification>
+ <notification name="CantCreateLandmark">
+ Yer imi oluşturulamıyor.
+ </notification>
+ <notification name="CantCreateOutfit">
+ Dış görünüm şu anda oluşturulamıyor. Bir dakika sonra tekrar deneyin.
+ </notification>
+ <notification name="InventoryNotForSale">
+ Envanter satılık değil.
+ </notification>
+ <notification name="CantFindInvItem">
+ Envanter öğesi bulunamıyor.
+ </notification>
+ <notification name="CantFindObject">
+ Nesne bulunamıyor.
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ Nesnelere para transferleri bölgede şu anda devre dışı bırakılmış durumda.
+ </notification>
+ <notification name="CantPayNoAgent">
+ Kime ödeme yapılacağı belirlenemedi.
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ Kamusal nesnelere L$ veremezsiniz.
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ Dünya içerisindeki nesnede envater oluşturma başarısız oldu.
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ Dahili bir hata nedeniyle görüntüleyicinizi gerektiği gibi güncelleyemedik. Görüntüleyicinizde gösterilen L$ bakiyesi veya parsel tutarı sunucular üzerinde gerçekteki bakiyenizi yansıtmayabilir.
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ Başka oyuncularla kesişen büyük primler oluşturulamaz. Öbür oyuncular hareket ettiğinde lütfen tekrar deneyin.
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ Bu, geçmiş sohbetlerin günlüklerini ve bu dosyanın tüm yedeklerini silecektir.
+ <usetemplate ignoretext="Ben geçmiş sohbetlerin günlüğünü silmeden önce doğrula." name="okcancelignore" notext="İptal" yestext="Tamam"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ Bu, tüm geçmiş sohbetlerin dökümlerini silecektir. Geçmiş sohbetlerin listesi bundan etkilenmez. [FOLDER] klasöründe .txt ve txt.backup uzantısına sahip tüm dosyalar silinecektir.
+ <usetemplate ignoretext="Ben dökümleri silmeden önce doğrulama iste." name="okcancelignore" notext="İptal" yestext="Tamam"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ Dosyalar taşınamıyor. Önceki yol geri yüklendi.
+ <usetemplate ignoretext="Dosyalar taşınamıyor. Önceki yol geri yüklendi." name="okignore" yestext="Tamam"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/tr/panel_active_object_row.xml b/indra/newview/skins/default/xui/tr/panel_active_object_row.xml
index b03ce3ebe5..b03ce3ebe5 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/tr/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml
index 602818de94..602818de94 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml
index 7542778aca..f330bd85e8 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="Bu arkadaşınız nesnelerinizi düzenleyebilir, silebilir veya alabilir"/>
<icon name="permission_map_icon" tool_tip="Bu arkadaşınız haritada sizi bulabilir"/>
<icon name="permission_online_icon" tool_tip="Bu arkadaşınız çevrimiçi olduğunuzda sizi görebilir"/>
+ <button name="info_btn" tool_tip="Ek bilgi"/>
<button name="profile_btn" tool_tip="Profili göster"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_avatar_tag.xml b/indra/newview/skins/default/xui/tr/panel_avatar_tag.xml
index 81e04379a1..81e04379a1 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/tr/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml
index 0464b7ec07..87b67e249e 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- Listeyi Engelle
- </text>
- <scroll_list name="blocked" tool_tip="Şu anda engellenmiş olan Sakinler listesi"/>
- <button label="Kişiyi engelle" name="Block resident..." tool_tip="Engellenecek bir Sakin seç"/>
- <button label="Nesneyi ada göre engelle" name="Block object by name..." tool_tip="Ada göre engellenecek bir nesne seç"/>
- <button label="Engellemeyi Kaldır" name="Unblock" tool_tip="Engelleme listesinden Sakini veya nesneyi kaldır"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="Filtrele" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="Seçilen kişi veya nesne üzerindeki eylemler"/>
+ <menu_button name="view_btn" tool_tip="Sıralama seçenekleri"/>
+ <menu_button name="plus_btn" tool_tip="Engellenecek bir Sakin veya nesne seç"/>
+ <button name="unblock_btn" tool_tip="Engelleme listesinden Sakini veya nesneyi kaldır"/>
+ </panel>
+ <block_list name="blocked" tool_tip="Şu anda engellenmiş olan Sakinler listesi"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml
index f991c3b688..f991c3b688 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml
index 6c2478cdb7..6c2478cdb7 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml
index 5d7006af2f..5d7006af2f 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_chat_header.xml b/indra/newview/skins/default/xui/tr/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/tr/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml
index a1e8190bbc..a1e8190bbc 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_classified_info.xml b/indra/newview/skins/default/xui/tr/panel_classified_info.xml
index d412a03e32..d412a03e32 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/tr/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml
index bb5930ee79..bb5930ee79 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml
index e60e291ee8..e60e291ee8 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_cof_wearables.xml b/indra/newview/skins/default/xui/tr/panel_cof_wearables.xml
index 7d70177553..7d70177553 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/tr/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/tr/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..c7227f02b6
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(yükleniyor)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/tr/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..79895f9c21
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="Sohbet ses dahil edildi"/>
+ <icon name="unread_ims_icon" tool_tip="Oturumunuz kapalıyken mesajlar geldi"/>
+ <button name="delete_btn" tool_tip="Bu girişi kaldır"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml
index 47703136b0..47703136b0 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml
index 28e034a357..28e034a357 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_alpha.xml b/indra/newview/skins/default/xui/tr/panel_edit_alpha.xml
index e3ba806b0d..e3ba806b0d 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_classified.xml b/indra/newview/skins/default/xui/tr/panel_edit_classified.xml
index 7584b754f1..7584b754f1 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_eyes.xml b/indra/newview/skins/default/xui/tr/panel_edit_eyes.xml
index 42f62b6bbe..42f62b6bbe 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_gloves.xml b/indra/newview/skins/default/xui/tr/panel_edit_gloves.xml
index be89e94bbf..be89e94bbf 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_hair.xml b/indra/newview/skins/default/xui/tr/panel_edit_hair.xml
index f33a6d6402..f33a6d6402 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_jacket.xml b/indra/newview/skins/default/xui/tr/panel_edit_jacket.xml
index 10bc4278db..10bc4278db 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_pants.xml b/indra/newview/skins/default/xui/tr/panel_edit_pants.xml
index 06e1b7b4ab..06e1b7b4ab 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_physics.xml b/indra/newview/skins/default/xui/tr/panel_edit_physics.xml
index 98dbfd8e42..98dbfd8e42 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
index 98b02d27df..98b02d27df 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_profile.xml b/indra/newview/skins/default/xui/tr/panel_edit_profile.xml
index 21f4e419bc..21f4e419bc 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_shape.xml b/indra/newview/skins/default/xui/tr/panel_edit_shape.xml
index 57cd9aca75..57cd9aca75 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_shirt.xml b/indra/newview/skins/default/xui/tr/panel_edit_shirt.xml
index 2dd417afc6..2dd417afc6 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_shoes.xml b/indra/newview/skins/default/xui/tr/panel_edit_shoes.xml
index 34acb414b0..34acb414b0 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_skin.xml b/indra/newview/skins/default/xui/tr/panel_edit_skin.xml
index fdf75100ed..fdf75100ed 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_skirt.xml b/indra/newview/skins/default/xui/tr/panel_edit_skirt.xml
index 2099013fe1..2099013fe1 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_socks.xml b/indra/newview/skins/default/xui/tr/panel_edit_socks.xml
index d386814d31..d386814d31 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml
index 7f5590a485..7f5590a485 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_underpants.xml b/indra/newview/skins/default/xui/tr/panel_edit_underpants.xml
index ed003e1adf..ed003e1adf 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml
index e0a0be8abb..e0a0be8abb 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/tr/panel_edit_wearable.xml
index 7a4a09aaed..7a4a09aaed 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml
index 58bb68a5c3..58bb68a5c3 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_general.xml b/indra/newview/skins/default/xui/tr/panel_group_general.xml
index 0462026249..0462026249 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
index 32f39da490..32f39da490 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_invite.xml b/indra/newview/skins/default/xui/tr/panel_group_invite.xml
index 4ba5761edb..4ba5761edb 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_land_money.xml b/indra/newview/skins/default/xui/tr/panel_group_land_money.xml
index e9112a862b..e9112a862b 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_list_item.xml b/indra/newview/skins/default/xui/tr/panel_group_list_item.xml
index 2bc597f2fa..f44d2b5e76 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Bilinmiyor"/>
+ <button name="info_btn" tool_tip="Ek bilgi"/>
<button name="profile_btn" tool_tip="Profili göster"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_group_notices.xml b/indra/newview/skins/default/xui/tr/panel_group_notices.xml
index 179b5fff69..179b5fff69 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_notify.xml b/indra/newview/skins/default/xui/tr/panel_group_notify.xml
index bcc5482daa..bcc5482daa 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_group_roles.xml b/indra/newview/skins/default/xui/tr/panel_group_roles.xml
index fb03107da8..fb03107da8 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml
index aebdc6b48d..aebdc6b48d 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_instant_message.xml b/indra/newview/skins/default/xui/tr/panel_instant_message.xml
index cf9bc7fccb..cf9bc7fccb 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/tr/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_inventory_item.xml b/indra/newview/skins/default/xui/tr/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_landmark_info.xml b/indra/newview/skins/default/xui/tr/panel_landmark_info.xml
index 2cad753f25..2cad753f25 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/tr/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_landmarks.xml b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
index d40d0c1543..d40d0c1543 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_login.xml b/indra/newview/skins/default/xui/tr/panel_login.xml
index 28d316e46b..28d316e46b 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_login.xml
+++ b/indra/newview/skins/default/xui/tr/panel_login.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
index c69fb39130..c69fb39130 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_me.xml b/indra/newview/skins/default/xui/tr/panel_me.xml
index 4b911c9ce6..4b911c9ce6 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_me.xml
+++ b/indra/newview/skins/default/xui/tr/panel_me.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_media_settings_general.xml b/indra/newview/skins/default/xui/tr/panel_media_settings_general.xml
index 89e78b75de..89e78b75de 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml
index 6c0b14a889..6c0b14a889 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_media_settings_security.xml b/indra/newview/skins/default/xui/tr/panel_media_settings_security.xml
index da3ca1bd29..da3ca1bd29 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/tr/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
index 8d43e3fb5a..8d43e3fb5a 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml
index d238388b0e..d238388b0e 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml
index 7d191191c4..7d191191c4 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_nearby_media.xml b/indra/newview/skins/default/xui/tr/panel_nearby_media.xml
index a654b2ac14..a654b2ac14 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/tr/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_notify_textbox.xml b/indra/newview/skins/default/xui/tr/panel_notify_textbox.xml
index b893da2a71..b893da2a71 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/tr/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_online_status_toast.xml b/indra/newview/skins/default/xui/tr/panel_online_status_toast.xml
index fdc489f375..fdc489f375 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/tr/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml
index a947eee150..a947eee150 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
index 00cd49abcd..00cd49abcd 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml
index 550f7ebf10..550f7ebf10 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml
index d222f1a6e3..d222f1a6e3 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
index 60a3576d84..60a3576d84 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml
index 462926738f..462926738f 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_people.xml b/indra/newview/skins/default/xui/tr/panel_people.xml
index 1a1e53bac2..08efd0aa61 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_people.xml
+++ b/indra/newview/skins/default/xui/tr/panel_people.xml
@@ -14,81 +14,53 @@ Birlikte takılacak kişiler mi arıyorsunuz? [secondlife:///app/worldmap Dünya
<string name="no_filtered_friends_msg">
Aradığınızı bulamadınız mı? [secondlife:///app/search/people/[SEARCH_TERM] Ara] deneyin.
</string>
- <string name="people_filter_label" value="Kişileri Filtrele"/>
- <string name="groups_filter_label" value="Grupları Filtrele"/>
<string name="no_filtered_groups_msg" value="Aradığınızı bulamadınız mı? [secondlife:///app/search/groups/[SEARCH_TERM] Ara] deneyin."/>
<string name="no_groups_msg" value="Katılacak Gruplar mı arıyorsunuz? [secondlife:///app/search/groups Ara] deneyin."/>
<string name="MiniMapToolTipMsg" value="[REGION](Haritayı açmak için çift tıkla, yatay hareket için shift çek)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](Işınlamak için çift tıkla, yatay hareket için shift çek)"/>
- <filter_editor label="Filtrele" name="filter_input"/>
<tab_container name="tabs">
<panel label="YAKIN" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="Seçenklr."/>
- <button name="add_friend_btn" tool_tip="Seçilen Sakini arkadaş listene ekle"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="Kişileri Filtrele" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="Seçilen kişi üzerindeki eylemler"/>
+ <menu_button name="nearby_view_btn" tool_tip="Gösterme/sıralama seçenekleri"/>
+ <button name="add_friend_btn" tool_tip="Bir sakine arkadaşlık öner"/>
+ <dnd_button name="nearby_del_btn" tool_tip="Seçilen kişiyi arkadaş olarak kaldır"/>
</panel>
</panel>
- <panel label="ARKADAŞLARIM" name="friends_panel">
+ <panel label="ARKADAŞLAR" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="Kişileri Filtrele" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="Seçilen kişi üzerindeki eylemler"/>
+ <menu_button name="friends_view_btn" tool_tip="Seçenekleri göster/sırala"/>
+ <button name="friends_add_btn" tool_tip="Bir sakine arkadaşlık öner"/>
+ <dnd_button name="friends_del_btn" tool_tip="Seçilen kişiyi arkadaş olarak kaldır"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="Çevrimiçi"/>
<accordion_tab name="tab_all" title="Tümü"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="İlave seçenekleri göster"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Bir Sakine arkadaşlık öner"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="Seçilen kişiyi arkadaş Listenden çıkar"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="GRUPLARIM" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="Seçenklr."/>
- <button name="plus_btn" tool_tip="Gruba katıl/yeni grup oluştur"/>
- <button name="activate_btn" tool_tip="Seçilen grubu etkinleştir"/>
+ <panel label="GRUPLAR" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="Grupları Filtrele" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="Seçilen grup üzerindeki eylemler"/>
+ <menu_button name="groups_view_btn" tool_tip="Seçenekleri göster/sırala"/>
+ <menu_button name="plus_btn" tool_tip="Gruba katıl/yeni grup oluştur"/>
+ <dnd_button name="minus_btn" tool_tip="Seçilen gruptan ayrıl"/>
</panel>
</panel>
<panel label="SON" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="Seçenklr."/>
- <button name="add_friend_btn" tool_tip="Seçilen Sakini arkadaş listene ekle"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="Kişileri Filtrele" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="Seçilen kişi üzerindeki eylemler"/>
+ <menu_button name="recent_view_btn" tool_tip="Seçenekleri göster/sırala"/>
+ <button name="add_friend_btn" tool_tip="Bir sakine arkadaşlık öner"/>
+ <dnd_button name="recent_del_btn" tool_tip="Seçilen kişiyi arkadaş olarak kaldır"/>
</panel>
</panel>
+ <panel label="ENGELLENMİŞ" name="blocked_panel">
+ <panel label="Engellenmiş Sakinler ve Nesneler" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="Profil" name="view_profile_btn" tool_tip="Resim, grup ve diğer Sakin bilgilerini göster"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="Aİ" name="im_btn" tool_tip="Anlık ileti oturumu aç"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="Ara" name="call_btn" tool_tip="Bu Sakini ara"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="Paylaş" name="share_btn" tool_tip="Bir envanter öğesini paylaş"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="Işınla" name="teleport_btn" tool_tip="Işınlama teklif et"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="Grup Profili" name="group_info_btn" tool_tip="Grup bilgilerini göster"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="Grup Sohbeti" name="chat_btn" tool_tip="Sohbet oturumu aç"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="Grup Araması" name="group_call_btn" tool_tip="Bu grubu ara"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_pick_info.xml b/indra/newview/skins/default/xui/tr/panel_pick_info.xml
index f2bbfac232..f2bbfac232 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/tr/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_picks.xml b/indra/newview/skins/default/xui/tr/panel_picks.xml
index 26beac7854..26beac7854 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_place_profile.xml b/indra/newview/skins/default/xui/tr/panel_place_profile.xml
index f42cde0ace..f42cde0ace 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/tr/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_places.xml b/indra/newview/skins/default/xui/tr/panel_places.xml
index c2a3acf9c5..c2a3acf9c5 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_places.xml
+++ b/indra/newview/skins/default/xui/tr/panel_places.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_postcard_message.xml b/indra/newview/skins/default/xui/tr/panel_postcard_message.xml
index 2361f4c1c3..2361f4c1c3 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/tr/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_postcard_settings.xml b/indra/newview/skins/default/xui/tr/panel_postcard_settings.xml
index bce0b21b9a..bce0b21b9a 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/tr/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml
index 770cdc6efd..770cdc6efd 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml
index 46a4793c53..46a4793c53 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
index 231e8fc5fe..aaeebdfe6e 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Metin Sohbeti" name="chat">
- <text name="font_size">
- Font büyüklüğü:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="Küçük" name="radio" value="0"/>
- <radio_item label="Orta" name="radio2" value="1"/>
- <radio_item label="Büyük" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="Sohbet sırasında yazma animasyonunu oynat" name="play_typing_animation"/>
- <check_box label="Çevrimdışı olduğunda Aİ&apos;ler e-posta ile bana gönderilsin" name="send_im_to_email"/>
- <check_box label="Düz metin Aİ&apos;ler ve sohbet geçmişini etkinleştir" name="plain_text_chat_history"/>
- <check_box label="Balon Sohbeti" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- Aİ&apos;leri şurada göster:
- </text>
- <text name="requires_restart_label">
- (tekrar başlatma gerekir)
- </text>
- <radio_group name="chat_window" tool_tip="Anlık İletileri ayrı gezdiricilerde veya çoklu sekmelere sahip tek bir gezdiricide gösterin (tekrar başlatma gerekir)">
- <radio_item label="Ayrı Pencereler" name="radio" value="0"/>
- <radio_item label="Sekmeler" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- Gelen sohbet için açılır pencereleri etkinleştir:
- </text>
- <check_box label="Grup Sohbetleri" name="EnableGroupChatPopups" tool_tip="Bir Grup Sohbet iletisi gönderildiğinde açılır pencereleri görmek için işaretle"/>
- <check_box label="Aİ Sohbetleri" name="EnableIMChatPopups" tool_tip="Bir anlık ileti geldiğinde açılır pencereleri görmek için işaretle"/>
- <spinner label="Yakındaki sohbet iletilerinin vurgulanma süresi:" name="nearby_toasts_lifetime"/>
- <spinner label="Yakındaki sohbet iletilerinin sönme süresi:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="Sohbet sırasında yazma animasyonunu oynat" name="play_typing_animation"/>
+ <check_box label="Çevrimdışı olduğunda Aİ&apos;ler e-posta ile bana gönderilsin" name="send_im_to_email"/>
+ <check_box label="Sadece arkadaşlar ve gruplar beni arasın veya Aİ göndersin" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ Font büyüklüğü:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="Küçük" name="Small" value="0"/>
+ <item label="Orta" name="Medium" value="1"/>
+ <item label="Büyük" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="Balon Sohbeti" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ Bildirimler
+ </text>
+ <text name="friend_ims">
+ Arkadaş Aİ&apos;leri:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="Sohbetler penceresini aç" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mesajı aç" name="PopUpMessage" value="toast"/>
+ <item label="Araç çubuğu düğmesi yanıp sönsün" name="FlashToolbarButton" value="flash"/>
+ <item label="Hiçbiri" name="None" value="none"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ Arkadaş harici Aİ&apos;ler:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="Sohbetler penceresini aç" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mesajı açılır pencerede göster" name="PopUpMessage" value="toast"/>
+ <item label="Araç çubuğu düğmesi yanıp sönsün" name="FlashToolbarButton" value="flash"/>
+ <item label="Hiçbiri" name="None" value="none"/>
+ </combo_box>
+ <text name="conference_ims">
+ Konferans Aİ&apos;leri:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="Sohbetler penceresini aç" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mesajı aç" name="PopUpMessage" value="toast"/>
+ <item label="Araç çubuğu düğmesi yanıp sönsün" name="FlashToolbarButton" value="flash"/>
+ <item label="Hiçbiri" name="None" value="none"/>
+ </combo_box>
+ <text name="group_chat">
+ Grup sohbeti:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="Sohbetler penceresini aç" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mesajı aç" name="PopUpMessage" value="toast"/>
+ <item label="Araç çubuğu düğmesi yanıp sönsün" name="FlashToolbarButton" value="flash"/>
+ <item label="Hiçbiri" name="None" value="none"/>
+ </combo_box>
+ <text name="nearby_chat">
+ Yakındaki sohbet:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="Sohbetler penceresini aç" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="Mesajı aç" name="PopUpMessage" value="toast"/>
+ <item label="Araç çubuğu düğmesi yanıp sönsün" name="FlashToolBarButton" value="flash"/>
+ <item label="Hiçbiri" name="None" value="none"/>
+ </combo_box>
+ <text name="notifications_alert">
+ Tüm bildirimleri geçici olarak durdurmak için İletişim Kur &gt; Rahatsız Etme seçeneğini kullanın.
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ Sesi çal:
+ </text>
+ <check_box label="Yeni sohbet" name="new_conversation"/>
+ <check_box label="Gelen sesli arama" name="incoming_voice_call"/>
+ <check_box label="Işınlama teklifi" name="teleport_offer"/>
+ <check_box label="Envanter teklifi" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="Günlüğü temizle..." name="clear_log"/>
+ <button label="Dökümleri sil..." name="delete_transcripts"/>
+ <button label="Gözat..." label_selected="Gözat" name="log_path_button"/>
+ </panel>
<button label="Çeviri..." name="ok_btn"/>
<button label="Otomatik Yerine Koy..." name="autoreplace_showgui"/>
<button label="Yazım Denetimi Yapılıyor..." name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_colors.xml b/indra/newview/skins/default/xui/tr/panel_preferences_colors.xml
index f6e9d0948c..f6e9d0948c 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
index 4a48b1588c..1a13cf8f71 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
@@ -68,9 +68,9 @@
<combo_box.item label="asla" name="item4"/>
</combo_box>
<text name="text_box3">
- Meşgul durumu cevabı:
+ Rahatsız Etme yanıtı:
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml
index ddb83ffc69..ddb83ffc69 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
index c35eaec9c3..c35eaec9c3 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
index 9111594979..9111594979 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
index 9d03d9b01d..9d03d9b01d 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_sound.xml b/indra/newview/skins/default/xui/tr/panel_preferences_sound.xml
index 9256f1d324..9256f1d324 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml
index 0433d03450..0433d03450 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_covenant.xml b/indra/newview/skins/default/xui/tr/panel_region_covenant.xml
index 5c46365aea..5c46365aea 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_debug.xml b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
index 834ece563f..834ece563f 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_environment.xml b/indra/newview/skins/default/xui/tr/panel_region_environment.xml
index 058ea91b70..058ea91b70 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_estate.xml b/indra/newview/skins/default/xui/tr/panel_region_estate.xml
index 4a9028643f..4a9028643f 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_general.xml b/indra/newview/skins/default/xui/tr/panel_region_general.xml
index 37da0f2cca..37da0f2cca 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_region_terrain.xml b/indra/newview/skins/default/xui/tr/panel_region_terrain.xml
index 3226ee008e..3226ee008e 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_script_ed.xml b/indra/newview/skins/default/xui/tr/panel_script_ed.xml
index 7aa1da6fb2..7aa1da6fb2 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/tr/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml
index c821dc45c1..c821dc45c1 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml
index 2994aba39b..2994aba39b 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_script_question_toast.xml b/indra/newview/skins/default/xui/tr/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/tr/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_scrolling_param.xml b/indra/newview/skins/default/xui/tr/panel_scrolling_param.xml
index aabdc7358b..aabdc7358b 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/tr/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml
index b9c39ef8cb..b9c39ef8cb 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/tr/panel_snapshot_inventory.xml
index e3b22c639a..e3b22c639a 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_snapshot_local.xml b/indra/newview/skins/default/xui/tr/panel_snapshot_local.xml
index 87d7677d73..87d7677d73 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/tr/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_snapshot_options.xml b/indra/newview/skins/default/xui/tr/panel_snapshot_options.xml
index fd2e85fce5..fd2e85fce5 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/tr/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/tr/panel_snapshot_postcard.xml
index e999678a0d..e999678a0d 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/tr/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/tr/panel_snapshot_profile.xml
index 334fd52a48..334fd52a48 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/tr/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_sound_devices.xml b/indra/newview/skins/default/xui/tr/panel_sound_devices.xml
index 982ef2ea3b..982ef2ea3b 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/tr/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml
index 91d07a3b0c..91d07a3b0c 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_status_bar.xml b/indra/newview/skins/default/xui/tr/panel_status_bar.xml
index 178cbda4a2..178cbda4a2 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_teleport_history.xml b/indra/newview/skins/default/xui/tr/panel_teleport_history.xml
index f5b1175029..f5b1175029 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/tr/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml
index a3a5c70c7e..a3a5c70c7e 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_voice_effect.xml b/indra/newview/skins/default/xui/tr/panel_voice_effect.xml
index b46833d7e6..b46833d7e6 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/tr/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml
index 0c8c7b68b5..0c8c7b68b5 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/tr/panel_world_map.xml b/indra/newview/skins/default/xui/tr/panel_world_map.xml
index 5595c13a7c..5595c13a7c 100644..100755
--- a/indra/newview/skins/default/xui/tr/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/tr/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/tr/role_actions.xml b/indra/newview/skins/default/xui/tr/role_actions.xml
index 655ac64172..655ac64172 100644..100755
--- a/indra/newview/skins/default/xui/tr/role_actions.xml
+++ b/indra/newview/skins/default/xui/tr/role_actions.xml
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
index b632f21cf5..b632f21cf5 100644..100755
--- a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
index 938b5a76d8..938b5a76d8 100644..100755
--- a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml
index 86b684c497..86b684c497 100644..100755
--- a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml
index b0b9ab7716..9a4cf54fa7 100644..100755
--- a/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="Nesneyi satın al" name="Buyobject"/>
<combo_box.item label="Nesneye ödeme yap" name="Payobject"/>
<combo_box.item label="Aç" name="Open"/>
+ <combo_box.item label="Yakınlaştır" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index 1be8f5974c..155dc8749a 100644..100755
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -137,7 +137,7 @@
Çık
</string>
<string name="create_account_url">
- http://join.secondlife.com/index.php?lang=tr-TR&amp;sourceid=[sourceid]
+ http://join.secondlife.com/?sourceid=[sourceid]
</string>
<string name="LoginFailedViewerNotPermitted">
Kullandığınız görüntüleyici ile artık Second Life&apos;a erişemezsiniz. Yeni bir görüntüleyiciyi karşıdan yüklemek için lütfen şu sayfayı ziyaret edin:
@@ -619,8 +619,8 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="AvatarAway">
Uzakta
</string>
- <string name="AvatarBusy">
- Meşgul
+ <string name="AvatarDoNotDisturb">
+ Rahatsız Etme
</string>
<string name="AvatarMuted">
Engellenmiş
@@ -856,6 +856,12 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="ST_NO_JOINT">
KÖK veya EKLEM bulunamıyor.
</string>
+ <string name="NearbyChatTitle">
+ Yakındaki sohbet
+ </string>
+ <string name="NearbyChatLabel">
+ (Yakındaki sohbet)
+ </string>
<string name="whisper">
fısıldar:
</string>
@@ -919,12 +925,15 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="ControlYourCamera">
Kameranızı kontrol etmek
</string>
- <string name="TeleportYourAgent">
- Sizi ışınlama
- </string>
<string name="NotConnected">
Bağlı Değil
</string>
+ <string name="AgentNameSubst">
+ (Siz)
+ </string>
+ <string name="TeleportYourAgent">
+ Sizi ışınlama
+ </string>
<string name="SIM_ACCESS_PG">
Genel
</string>
@@ -1006,18 +1015,6 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="dictionary_files">
Sözlükler
</string>
- <string name="AvatarSetNotAway">
- Uzakta Değil
- </string>
- <string name="AvatarSetAway">
- Uzakta
- </string>
- <string name="AvatarSetNotBusy">
- Meşgul Değil
- </string>
- <string name="AvatarSetBusy">
- Meşgul
- </string>
<string name="shape">
Şekil
</string>
@@ -1986,8 +1983,8 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="PanelContentsNewScript">
Yeni Komut Dosyası
</string>
- <string name="BusyModeResponseDefault">
- İleti gönderdiğiniz Sakin &apos;meşgul modu&apos;nda, bu da rahatsız edilmek istemediği anlamına geliyor. İletiniz daha sonra incelenmesi için kendisine ait Aİ panelinde gösterilecektir.
+ <string name="DoNotDisturbModeResponseDefault">
+ Bu sakin &quot;Rahatsız Etme&quot; seçeneğini devreye almış, mesajınızı sonra görecek.
</string>
<string name="MuteByName">
(Adına göre)
@@ -2100,9 +2097,6 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- İçerik
- </string>
<string name="AcquiredItems">
Alınan Öğeler
</string>
@@ -3874,7 +3868,7 @@ Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
Genel Bölge
</string>
<string name="LocationCtrlSeeAVsTooltip">
- Bu parselin dışında avatarlar görünür durumda ve sohbete izin veriliyor
+ Bu parselin içindeki avatarlar, bu parselin dışındaki avatarlar tarafından görülemez veya işitilemez
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
Bölge yeniden kaydedilinceye kadar hareket eden nesneler bu bölgede doğru davranmayabilir.
@@ -3951,6 +3945,12 @@ Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
<string name="IM_unblock_only_groups_friends">
Bu mesajı görmek için Tercihler/Gizlilik&apos;de &apos;Sadece arkadaşlar ve gruplar beni arasın veya Aİ göndersin&apos; seçeneğinin işaretini kaldırmalısınız.
</string>
+ <string name="OnlineStatus">
+ Çevrimiçi
+ </string>
+ <string name="OfflineStatus">
+ Çevrimdışı
+ </string>
<string name="answered_call">
Aramanız yanıtlandı
</string>
@@ -3960,6 +3960,9 @@ Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
<string name="you_joined_call">
Sesli aramaya katıldınız
</string>
+ <string name="you_auto_rejected_call-im">
+ &quot;Rahatsız Etme&quot; seçeneğini devredeyken sesli aramayı otomatik olarak reddettiniz.
+ </string>
<string name="name_started_call">
[NAME] bir sesli arama başlattı
</string>
@@ -3976,7 +3979,7 @@ Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
Bağlanıyor...
</string>
<string name="conference-title">
- Özel Konferans
+ Çok kişili sohbet
</string>
<string name="conference-title-incoming">
[AGENT_NAME] ile konferans
@@ -4866,6 +4869,9 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
<string name="Command_Chat_Label">
Sohbet
</string>
+ <string name="Command_Conversations_Label">
+ Sohbetler
+ </string>
<string name="Command_Compass_Label">
Pusula
</string>
@@ -4941,6 +4947,9 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
<string name="Command_Chat_Tooltip">
Metin kullanarak yakındaki kişilerle sohbet etmek
</string>
+ <string name="Command_Conversations_Tooltip">
+ Herkesle sohbet et
+ </string>
<string name="Command_Compass_Tooltip">
Pusula
</string>
@@ -5070,4 +5079,13 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
<string name="UserDictionary">
[User]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ Sohbetlerin günlüğü tutulmuyor. Bir günlük tutmaya başlamak için, Tercihler &gt; Sohbet altında &quot;Kaydet: Sadece günlük&quot; veya &quot;Kaydet: Günlük ve dökümler&quot; seçimini yapın.
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ Bundan böyle sohbetlerin günlükleri tutulmayacak. Bir günlük tutmaya devam etmek için, Tercihler &gt; Sohbet altında &quot;Kaydet: Sadece günlük&quot; veya &quot;Kaydet: Günlük ve dökümler&quot; seçimini yapın.
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ Günlüğü tutulmuş sohbet yok. Siz biriyle iletişime geçtikten sonra veya biri sizinle iletişime geçtikten sonra, burada bir günlük girişi gösterilir.
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/tr/teleport_strings.xml b/indra/newview/skins/default/xui/tr/teleport_strings.xml
index 20d09b1ee2..20d09b1ee2 100644..100755
--- a/indra/newview/skins/default/xui/tr/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/tr/teleport_strings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_aaa.xml b/indra/newview/skins/default/xui/zh/floater_aaa.xml
index e2d6a2b004..e2d6a2b004 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/zh/floater_aaa.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml
index 643881e416..643881e416 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_about.xml
+++ b/indra/newview/skins/default/xui/zh/floater_about.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_about_land.xml b/indra/newview/skins/default/xui/zh/floater_about_land.xml
index 76db621951..76db621951 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/zh/floater_about_land.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_activeim.xml b/indra/newview/skins/default/xui/zh/floater_activeim.xml
index b148ca8eb4..b148ca8eb4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_activeim.xml
+++ b/indra/newview/skins/default/xui/zh/floater_activeim.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml
index 76cb9079c4..76cb9079c4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml
index ffb0de8a68..ffb0de8a68 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_auction.xml b/indra/newview/skins/default/xui/zh/floater_auction.xml
index 1b589a92cc..1b589a92cc 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_auction.xml
+++ b/indra/newview/skins/default/xui/zh/floater_auction.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_autoreplace.xml b/indra/newview/skins/default/xui/zh/floater_autoreplace.xml
index 4ee07e6295..4ee07e6295 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_autoreplace.xml
+++ b/indra/newview/skins/default/xui/zh/floater_autoreplace.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_avatar.xml b/indra/newview/skins/default/xui/zh/floater_avatar.xml
index 55b1a95a41..55b1a95a41 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/zh/floater_avatar.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml b/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
index c19369c859..c19369c859 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml b/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
index 69309c96de..69309c96de 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_beacons.xml b/indra/newview/skins/default/xui/zh/floater_beacons.xml
index 83e10804d6..83e10804d6 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/zh/floater_beacons.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_build_options.xml b/indra/newview/skins/default/xui/zh/floater_build_options.xml
index 29f36b461c..29f36b461c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/zh/floater_build_options.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_bulk_perms.xml b/indra/newview/skins/default/xui/zh/floater_bulk_perms.xml
index 59751a3a46..59751a3a46 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/zh/floater_bulk_perms.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_bumps.xml b/indra/newview/skins/default/xui/zh/floater_bumps.xml
index 2d76a9f831..2d76a9f831 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/zh/floater_bumps.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_contents.xml b/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
index 5e4153de66..5e4153de66 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_currency.xml b/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
index fcf2800728..fcf2800728 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/zh/floater_buy_currency_html.xml
index ec700ad7af..ec700ad7af 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_currency_html.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_land.xml b/indra/newview/skins/default/xui/zh/floater_buy_land.xml
index 51bbd6a561..51bbd6a561 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_land.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_object.xml b/indra/newview/skins/default/xui/zh/floater_buy_object.xml
index ff4a1feedb..ff4a1feedb 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_object.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_camera.xml b/indra/newview/skins/default/xui/zh/floater_camera.xml
index becb7b9546..becb7b9546 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_camera.xml
+++ b/indra/newview/skins/default/xui/zh/floater_camera.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_chat_bar.xml b/indra/newview/skins/default/xui/zh/floater_chat_bar.xml
index f1a69a7688..f1a69a7688 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/zh/floater_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_choose_group.xml b/indra/newview/skins/default/xui/zh/floater_choose_group.xml
index 9977bfc828..9977bfc828 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/zh/floater_choose_group.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_color_picker.xml b/indra/newview/skins/default/xui/zh/floater_color_picker.xml
index fa7b795d4f..fa7b795d4f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/zh/floater_color_picker.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_conversation_log.xml b/indra/newview/skins/default/xui/zh/floater_conversation_log.xml
new file mode 100644
index 0000000000..37115a0310
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_conversation_log.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_conversation_log" title="交談記錄">
+ <panel name="buttons_panel">
+ <filter_editor label="人員過濾器" name="people_filter_input"/>
+ <menu_button name="conversation_view_btn" tool_tip="檢視/排序的選項"/>
+ <menu_button name="conversations_gear_btn" tool_tip="對所選的人或群組採取動作"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_conversation_preview.xml b/indra/newview/skins/default/xui/zh/floater_conversation_preview.xml
new file mode 100644
index 0000000000..ece263f440
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_conversation_preview.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_conversation" title="交談:">
+ <floater.string name="Title">
+ 交談:[NAME]
+ </floater.string>
+ <text name="page_label" value="頁"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_critical.xml b/indra/newview/skins/default/xui/zh/floater_critical.xml
index 7d08fe8af2..7d08fe8af2 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_critical.xml
+++ b/indra/newview/skins/default/xui/zh/floater_critical.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml
index 4aafb31952..4aafb31952 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml
+++ b/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_destinations.xml b/indra/newview/skins/default/xui/zh/floater_destinations.xml
index f50a6a631a..f50a6a631a 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/zh/floater_destinations.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_display_name.xml b/indra/newview/skins/default/xui/zh/floater_display_name.xml
index aa71bba769..aa71bba769 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_display_name.xml
+++ b/indra/newview/skins/default/xui/zh/floater_display_name.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml
index b84a4027ea..b84a4027ea 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml
index 1ff832cdc4..1ff832cdc4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml
index 7943866e72..7943866e72 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml
+++ b/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_environment_settings.xml b/indra/newview/skins/default/xui/zh/floater_environment_settings.xml
index 1c6f2f936d..1c6f2f936d 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_environment_settings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_event.xml b/indra/newview/skins/default/xui/zh/floater_event.xml
index 7175731fef..7175731fef 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_event.xml
+++ b/indra/newview/skins/default/xui/zh/floater_event.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_fast_timers.xml b/indra/newview/skins/default/xui/zh/floater_fast_timers.xml
index 871849305c..871849305c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_fast_timers.xml
+++ b/indra/newview/skins/default/xui/zh/floater_fast_timers.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_font_test.xml b/indra/newview/skins/default/xui/zh/floater_font_test.xml
index ec83c51eb3..ec83c51eb3 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/zh/floater_font_test.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_gesture.xml b/indra/newview/skins/default/xui/zh/floater_gesture.xml
index e7b1ed1de3..e7b1ed1de3 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/zh/floater_gesture.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_god_tools.xml b/indra/newview/skins/default/xui/zh/floater_god_tools.xml
index 69a6eadc8c..69a6eadc8c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/zh/floater_god_tools.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml b/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
index 9e3bb88ac0..9e3bb88ac0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_help_browser.xml b/indra/newview/skins/default/xui/zh/floater_help_browser.xml
index e605d5f19c..e605d5f19c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/zh/floater_help_browser.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_how_to.xml b/indra/newview/skins/default/xui/zh/floater_how_to.xml
index e033327165..e033327165 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/zh/floater_how_to.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_hud.xml b/indra/newview/skins/default/xui/zh/floater_hud.xml
index a788961e95..a788961e95 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_hud.xml
+++ b/indra/newview/skins/default/xui/zh/floater_hud.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_im_container.xml b/indra/newview/skins/default/xui/zh/floater_im_container.xml
index 2d66c659fe..84ad869100 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/zh/floater_im_container.xml
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="交談"/>
+<multi_floater name="floater_im_box" title="交談">
+ <string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <string name="expand_icon" value="Conv_toolbar_expand"/>
+ <layout_stack name="conversations_stack">
+ <layout_panel name="conversations_layout_panel">
+ <layout_stack name="conversations_pane_buttons_stack">
+ <layout_panel name="conversations_pane_buttons_expanded">
+ <menu_button name="sort_btn" tool_tip="檢視/排序的選項"/>
+ <button name="add_btn" tool_tip="開始新的交談"/>
+ <button name="speak_btn" tool_tip="用麥克風和大家交談"/>
+ </layout_panel>
+ <layout_panel name="conversations_pane_buttons_collapsed">
+ <button name="expand_collapse_btn" tool_tip="縮疊/展開這個清單"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="messages_layout_panel">
+ <panel_container name="im_box_tab_container">
+ <panel name="stub_panel">
+ <button name="stub_collapse_btn" tool_tip="縮疊這一區塊"/>
+ <text name="stub_textbox">
+ 這個交談另開了新視窗。 [secondlife:/// 把它收回來]
+ </text>
+ </panel>
+ </panel_container>
+ </layout_panel>
+ </layout_stack>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_im_session.xml b/indra/newview/skins/default/xui/zh/floater_im_session.xml
index 808a0b6720..d63c5507db 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/zh/floater_im_session.xml
@@ -1,8 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
- <layout_stack name="im_panels">
- <layout_panel>
- <line_editor label="至" name="chat_editor"/>
- </layout_panel>
- </layout_stack>
+ <floater.string name="call_btn_start">
+ Conv_toolbar_open_call
+ </floater.string>
+ <floater.string name="call_btn_stop">
+ Conv_toolbar_hang_up
+ </floater.string>
+ <floater.string name="collapseline_icon" value="Conv_collapse_to_one_line"/>
+ <floater.string name="expandline_icon" value="Conv_expand_one_line"/>
+ <floater.string name="collapse_icon" value="Conv_toolbar_collapse"/>
+ <floater.string name="expand_icon" value="Conv_toolbar_expand"/>
+ <floater.string name="tear_off_icon" value="Conv_toolbar_arrow_ne"/>
+ <floater.string name="return_icon" value="Conv_toolbar_arrow_sw"/>
+ <floater.string name="participant_added" value="[NAME] 已受邀加入交談。"/>
+ <floater.string name="multiple_participants_added" value="[NAME] 已受邀加入交談。"/>
+ <floater.string name="tooltip_to_separate_window" value="為這個交談另開新視窗"/>
+ <floater.string name="tooltip_to_main_window" value="將這個交談移回到主視窗"/>
+ <floater.string name="start_call_button_tooltip" value="建立語音通聯"/>
+ <floater.string name="end_call_button_tooltip" value="切斷語音通聯"/>
+ <floater.string name="expcol_button_not_tearoff_tooltip" value="縮疊這一區塊"/>
+ <floater.string name="expcol_button_tearoff_and_expanded_tooltip" value="縮疊參與者清單"/>
+ <floater.string name="expcol_button_tearoff_and_collapsed_tooltip" value="展開參與者清單"/>
+ <view name="contents_view">
+ <layout_stack name="main_stack">
+ <layout_panel name="toolbar_panel">
+ <menu_button name="view_options_btn" tool_tip="檢視/排序的選項"/>
+ <menu_button name="gear_btn" tool_tip="對選取的人採取動作"/>
+ <button name="add_btn" tool_tip="新增某人到這個交談"/>
+ <button name="voice_call_btn" tool_tip="建立語音通聯"/>
+ <button name="close_btn" tool_tip="結束這個交談"/>
+ <button name="expand_collapse_btn" tool_tip="縮疊/展開這個框"/>
+ </layout_panel>
+ <layout_panel name="body_panel">
+ <layout_stack name="im_panels">
+ <layout_panel name="right_part_holder">
+ <panel name="trnsAndChat_panel">
+ <layout_stack name="translate_and_chat_stack">
+ <layout_panel name="translate_chat_checkbox_lp">
+ <check_box label="翻譯聊天內容" name="translate_chat_checkbox"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="chat_layout_panel">
+ <layout_stack name="input_panels">
+ <layout_panel name="input_editor_layout_panel">
+ <chat_editor label="至" name="chat_editor"/>
+ </layout_panel>
+ <layout_panel name="input_button_layout_panel">
+ <button name="minz_btn" tool_tip="顯示/隱藏訊息框"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ </layout_stack>
+ </view>
</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_image_preview.xml b/indra/newview/skins/default/xui/zh/floater_image_preview.xml
index d2de37fa6a..d2de37fa6a 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_image_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_import_collada.xml b/indra/newview/skins/default/xui/zh/floater_import_collada.xml
index 8f6b476ccf..8f6b476ccf 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_import_collada.xml
+++ b/indra/newview/skins/default/xui/zh/floater_import_collada.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_incoming_call.xml b/indra/newview/skins/default/xui/zh/floater_incoming_call.xml
index 45a003d3c8..4526eff21d 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/zh/floater_incoming_call.xml
@@ -25,9 +25,9 @@
是否離開 [CURRENT_CHAT] 並加入這個語音聊天?
</floater.string>
<text name="question">
- 是否離開 [CURRENT_CHAT] 並加入這個語音聊天?
+ 如果接聽,你將切斷目前的語音交談。
</text>
- <button label="接受" label_selected="接受" name="Accept"/>
- <button label="拒絕" label_selected="拒絕" name="Reject"/>
- <button label="開始 IM" name="Start IM"/>
+ <button label="接聽" label_selected="接聽" name="Accept"/>
+ <button label="忽視" label_selected="忽視" name="Reject"/>
+ <button label="不接聽但開啟 IM" name="Start IM"/>
</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_inspect.xml b/indra/newview/skins/default/xui/zh/floater_inspect.xml
index 4e1f4b24fd..4e1f4b24fd 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/zh/floater_inspect.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
index 6998df75f3..6998df75f3 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
index 6d1d18b67c..6d1d18b67c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_joystick.xml b/indra/newview/skins/default/xui/zh/floater_joystick.xml
index e0b2cf5a1c..e0b2cf5a1c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/zh/floater_joystick.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_lagmeter.xml b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
index e9a082288a..e9a082288a 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_land_holdings.xml b/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
index aae2cfb466..aae2cfb466 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
index f4a7ba5cca..f4a7ba5cca 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml b/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml
index b10a480b06..b10a480b06 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_map.xml b/indra/newview/skins/default/xui/zh/floater_map.xml
index 8a030b3b3f..8a030b3b3f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_map.xml
+++ b/indra/newview/skins/default/xui/zh/floater_map.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_media_browser.xml b/indra/newview/skins/default/xui/zh/floater_media_browser.xml
index 7f030924e1..7f030924e1 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/zh/floater_media_browser.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_media_settings.xml b/indra/newview/skins/default/xui/zh/floater_media_settings.xml
index 3984095a65..3984095a65 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_media_settings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml b/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml
index 350254e385..350254e385 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml
index 6b6126c8e0..6b6126c8e0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml
+++ b/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_model_preview.xml b/indra/newview/skins/default/xui/zh/floater_model_preview.xml
index 22b3d3b065..22b3d3b065 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_moveview.xml b/indra/newview/skins/default/xui/zh/floater_moveview.xml
index 0b267e8fae..0b267e8fae 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_moveview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_mute_object.xml b/indra/newview/skins/default/xui/zh/floater_mute_object.xml
index 64998d3e28..64998d3e28 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/zh/floater_mute_object.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_my_appearance.xml b/indra/newview/skins/default/xui/zh/floater_my_appearance.xml
index 217ea5d1f9..217ea5d1f9 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/zh/floater_my_appearance.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_my_inventory.xml b/indra/newview/skins/default/xui/zh/floater_my_inventory.xml
index 187597f4eb..187597f4eb 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/floater_my_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_notification.xml b/indra/newview/skins/default/xui/zh/floater_notification.xml
index 1e0e207fb0..1e0e207fb0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_notification.xml
+++ b/indra/newview/skins/default/xui/zh/floater_notification.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_notifications_console.xml b/indra/newview/skins/default/xui/zh/floater_notifications_console.xml
index 3478761b0b..3478761b0b 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/zh/floater_notifications_console.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_object_weights.xml b/indra/newview/skins/default/xui/zh/floater_object_weights.xml
index d2875b24b4..d2875b24b4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/zh/floater_object_weights.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_openobject.xml b/indra/newview/skins/default/xui/zh/floater_openobject.xml
index ce6869487a..ce6869487a 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/zh/floater_openobject.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/zh/floater_outfit_save_as.xml
index 9e786edcdd..9e786edcdd 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/zh/floater_outfit_save_as.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_outgoing_call.xml b/indra/newview/skins/default/xui/zh/floater_outgoing_call.xml
index e57374f4d7..e57374f4d7 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/zh/floater_outgoing_call.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml
index e6971d111f..e6971d111f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml
index be009b54d8..d0978b8b01 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml
@@ -71,7 +71,7 @@
<text name="show_label">
顯示:
</text>
- <check_box label="世界" name="show_world"/>
+ <check_box label="測試" name="show_world"/>
<check_box label="僅限可移動的" name="show_world_movables_only"/>
<check_box label="導航網面" name="show_navmesh"/>
<text name="show_walkability_label">
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml
index 22e5d2e846..22e5d2e846 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_pay.xml b/indra/newview/skins/default/xui/zh/floater_pay.xml
index 69427605a4..69427605a4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_pay.xml
+++ b/indra/newview/skins/default/xui/zh/floater_pay.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_pay_object.xml b/indra/newview/skins/default/xui/zh/floater_pay_object.xml
index 7d20b44bc6..7d20b44bc6 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/zh/floater_pay_object.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_people.xml b/indra/newview/skins/default/xui/zh/floater_people.xml
index f629f2f184..f629f2f184 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_people.xml
+++ b/indra/newview/skins/default/xui/zh/floater_people.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml b/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml
index b38db59ff3..b38db59ff3 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_picks.xml b/indra/newview/skins/default/xui/zh/floater_picks.xml
index a8bfcd99e3..a8bfcd99e3 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_picks.xml
+++ b/indra/newview/skins/default/xui/zh/floater_picks.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_places.xml b/indra/newview/skins/default/xui/zh/floater_places.xml
index f6ef1e2141..f6ef1e2141 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_places.xml
+++ b/indra/newview/skins/default/xui/zh/floater_places.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_post_process.xml b/indra/newview/skins/default/xui/zh/floater_post_process.xml
index 2908f7c1d0..2908f7c1d0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/zh/floater_post_process.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preferences.xml b/indra/newview/skins/default/xui/zh/floater_preferences.xml
index b0a27e8c1f..b0a27e8c1f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preferences.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml
index f91d5c5cdb..f91d5c5cdb 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_animation.xml b/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
index b94d67b7ef..b94d67b7ef 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml b/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
index be75038a09..be75038a09 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml b/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
index 9447939801..9447939801 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_sound.xml b/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
index d04428a36d..d04428a36d 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_texture.xml b/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
index c56b1c2987..c56b1c2987 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml b/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
index 078b490655..078b490655 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
+++ b/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_publish_classified.xml b/indra/newview/skins/default/xui/zh/floater_publish_classified.xml
index b810af0145..b810af0145 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/zh/floater_publish_classified.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_region_debug_console.xml b/indra/newview/skins/default/xui/zh/floater_region_debug_console.xml
index 4ff2a3fc79..4ff2a3fc79 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/zh/floater_region_debug_console.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_region_info.xml b/indra/newview/skins/default/xui/zh/floater_region_info.xml
index 0e4879f555..0e4879f555 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/zh/floater_region_info.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_report_abuse.xml b/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
index 8dbc216ab5..8dbc216ab5 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_debug.xml b/indra/newview/skins/default/xui/zh/floater_script_debug.xml
index 5b3500c018..5b3500c018 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_debug.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/zh/floater_script_debug_panel.xml
index e70a30fa24..e70a30fa24 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_debug_panel.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_debug_panel.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_limits.xml b/indra/newview/skins/default/xui/zh/floater_script_limits.xml
index 7cd2c8e6c6..7cd2c8e6c6 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_limits.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_preview.xml b/indra/newview/skins/default/xui/zh/floater_script_preview.xml
index a6c6c76181..a6c6c76181 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_queue.xml b/indra/newview/skins/default/xui/zh/floater_script_queue.xml
index 7c253aa74c..7c253aa74c 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_queue.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_script_search.xml b/indra/newview/skins/default/xui/zh/floater_script_search.xml
index 11c23d933f..11c23d933f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/zh/floater_script_search.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_search.xml b/indra/newview/skins/default/xui/zh/floater_search.xml
index 3e85a529ae..3e85a529ae 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_search.xml
+++ b/indra/newview/skins/default/xui/zh/floater_search.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_select_key.xml b/indra/newview/skins/default/xui/zh/floater_select_key.xml
index 231eb48b04..231eb48b04 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/zh/floater_select_key.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_sell_land.xml b/indra/newview/skins/default/xui/zh/floater_sell_land.xml
index 9030f7eb63..9030f7eb63 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/zh/floater_sell_land.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_settings_debug.xml b/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
index 56a31bc292..56a31bc292 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_snapshot.xml b/indra/newview/skins/default/xui/zh/floater_snapshot.xml
index e86e20829f..e86e20829f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/zh/floater_snapshot.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_sound_devices.xml b/indra/newview/skins/default/xui/zh/floater_sound_devices.xml
index 0374c74f8f..0374c74f8f 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/zh/floater_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_sound_preview.xml b/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
index c942ba1cfb..c942ba1cfb 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_spellcheck.xml b/indra/newview/skins/default/xui/zh/floater_spellcheck.xml
index f5a6665844..f5a6665844 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/zh/floater_spellcheck.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml
index 6094a3bbce..6094a3bbce 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml
+++ b/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_stats.xml b/indra/newview/skins/default/xui/zh/floater_stats.xml
index 4af5684ec1..4af5684ec1 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_stats.xml
+++ b/indra/newview/skins/default/xui/zh/floater_stats.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_sys_well.xml b/indra/newview/skins/default/xui/zh/floater_sys_well.xml
index ca0b7f146d..ca0b7f146d 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/zh/floater_sys_well.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_telehub.xml b/indra/newview/skins/default/xui/zh/floater_telehub.xml
index ee21a78e90..ee21a78e90 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/zh/floater_telehub.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml
index 68fcf3f7f7..68fcf3f7f7 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml
+++ b/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml
index 83b6df6fe5..83b6df6fe5 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml
+++ b/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
index e909a67e2c..02d06323d4 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
@@ -19,7 +19,7 @@
<button label="預設" label_selected="預設" name="Default"/>
<button label="空白" label_selected="空白" name="Blank"/>
<button label="無" label_selected="無" name="None"/>
- <check_box initial_value="true" label="實時預覽" name="apply_immediate_check"/>
+ <check_box initial_value="true" label="立即套用" name="apply_immediate_check"/>
<text name="preview_disabled" value="已停用預覽"/>
<filter_editor label="材質過濾器" name="inventory search editor"/>
<check_box initial_value="false" label="顯示資料夾" name="show_folders_check"/>
diff --git a/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml
index 0dcac17a75..0dcac17a75 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_tools.xml b/indra/newview/skins/default/xui/zh/floater_tools.xml
index 33c9ebeaf0..33c9ebeaf0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_tools.xml
+++ b/indra/newview/skins/default/xui/zh/floater_tools.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_top_objects.xml b/indra/newview/skins/default/xui/zh/floater_top_objects.xml
index 6f50be0855..6f50be0855 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/zh/floater_top_objects.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_tos.xml b/indra/newview/skins/default/xui/zh/floater_tos.xml
index 3da9445a55..3da9445a55 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_tos.xml
+++ b/indra/newview/skins/default/xui/zh/floater_tos.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_toybox.xml b/indra/newview/skins/default/xui/zh/floater_toybox.xml
index fc6b6ea611..fc6b6ea611 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/zh/floater_toybox.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_translation_settings.xml b/indra/newview/skins/default/xui/zh/floater_translation_settings.xml
index fe84872557..fe84872557 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_translation_settings.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_url_entry.xml b/indra/newview/skins/default/xui/zh/floater_url_entry.xml
index 9e3f3cd47d..9e3f3cd47d 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/zh/floater_url_entry.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/zh/floater_voice_chat_volume.xml
new file mode 100644
index 0000000000..96caa7d333
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_voice_chat_volume.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_voice_volume" title="語音聊天音量">
+ <slider label="語音聊天" name="chat_voice_volume"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml b/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
index a3a7679957..a3a7679957 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_effect.xml b/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
index 81e0204262..aab5fa6028 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="地點" name="voice_effects" title="語音變聲">
+<floater label="地點" name="voice_effects" title="語音變聲試聽">
<string name="no_voice_effect">
(無變聲效果)
</string>
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_volume.xml b/indra/newview/skins/default/xui/zh/floater_voice_volume.xml
new file mode 100644
index 0000000000..4260a8d331
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_voice_volume.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+ Not can_close / no title to avoid window chrome
+ Single instance - only have one at a time, recycle it each spawn
+-->
+<floater name="floater_voice_volume" title="音量">
+ <slider name="volume_slider" tool_tip="音量" value="0.5"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_web_content.xml b/indra/newview/skins/default/xui/zh/floater_web_content.xml
index be6bf8bb27..be6bf8bb27 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_web_content.xml
+++ b/indra/newview/skins/default/xui/zh/floater_web_content.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/zh/floater_whitelist_entry.xml
index 967e36ead7..967e36ead7 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/zh/floater_whitelist_entry.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_window_size.xml b/indra/newview/skins/default/xui/zh/floater_window_size.xml
index 3942f72d76..3942f72d76 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/zh/floater_window_size.xml
diff --git a/indra/newview/skins/default/xui/zh/floater_world_map.xml b/indra/newview/skins/default/xui/zh/floater_world_map.xml
index 4cd05ebaa0..4cd05ebaa0 100644..100755
--- a/indra/newview/skins/default/xui/zh/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/zh/floater_world_map.xml
diff --git a/indra/newview/skins/default/xui/zh/inspect_avatar.xml b/indra/newview/skins/default/xui/zh/inspect_avatar.xml
index ef10e5d2d0..ef10e5d2d0 100644..100755
--- a/indra/newview/skins/default/xui/zh/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/zh/inspect_avatar.xml
diff --git a/indra/newview/skins/default/xui/zh/inspect_group.xml b/indra/newview/skins/default/xui/zh/inspect_group.xml
index ca5ccc3349..ca5ccc3349 100644..100755
--- a/indra/newview/skins/default/xui/zh/inspect_group.xml
+++ b/indra/newview/skins/default/xui/zh/inspect_group.xml
diff --git a/indra/newview/skins/default/xui/zh/inspect_object.xml b/indra/newview/skins/default/xui/zh/inspect_object.xml
index 377b8b7c78..377b8b7c78 100644..100755
--- a/indra/newview/skins/default/xui/zh/inspect_object.xml
+++ b/indra/newview/skins/default/xui/zh/inspect_object.xml
diff --git a/indra/newview/skins/default/xui/zh/inspect_remote_object.xml b/indra/newview/skins/default/xui/zh/inspect_remote_object.xml
index b8418fc8a1..b8418fc8a1 100644..100755
--- a/indra/newview/skins/default/xui/zh/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/zh/inspect_remote_object.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_add_wearable_gear.xml b/indra/newview/skins/default/xui/zh/menu_add_wearable_gear.xml
index 3c8c3e4a31..3c8c3e4a31 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_add_wearable_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_add_wearable_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_attachment_other.xml b/indra/newview/skins/default/xui/zh/menu_attachment_other.xml
index 885c4b9add..885c4b9add 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/zh/menu_attachment_other.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_attachment_self.xml b/indra/newview/skins/default/xui/zh/menu_attachment_self.xml
index c14a98c64b..c14a98c64b 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/zh/menu_attachment_self.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
index ef0986a13b..ef0986a13b 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_other.xml b/indra/newview/skins/default/xui/zh/menu_avatar_other.xml
index 1d02464748..1d02464748 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/zh/menu_avatar_other.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_self.xml b/indra/newview/skins/default/xui/zh/menu_avatar_self.xml
index 32757bbff6..32757bbff6 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/zh/menu_avatar_self.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_cof_attachment.xml b/indra/newview/skins/default/xui/zh/menu_cof_attachment.xml
index 876fef16df..876fef16df 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_cof_attachment.xml
+++ b/indra/newview/skins/default/xui/zh/menu_cof_attachment.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_cof_body_part.xml b/indra/newview/skins/default/xui/zh/menu_cof_body_part.xml
index d06207b19d..d06207b19d 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_cof_body_part.xml
+++ b/indra/newview/skins/default/xui/zh/menu_cof_body_part.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_cof_clothing.xml b/indra/newview/skins/default/xui/zh/menu_cof_clothing.xml
index 300ff47b12..300ff47b12 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/zh/menu_cof_clothing.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_cof_gear.xml b/indra/newview/skins/default/xui/zh/menu_cof_gear.xml
index cd069f9601..eb7093a23c 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_cof_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_cof_gear.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear COF">
<menu label="新衣服" name="COF.Gear.New_Clothes"/>
- <menu label="新身體部位" name="COF.Geear.New_Body_Parts"/>
+ <menu label="新身體部位" name="COF.Gear.New_Body_Parts"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_conversation.xml b/indra/newview/skins/default/xui/zh/menu_conversation.xml
new file mode 100644
index 0000000000..507255d0c0
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_conversation.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_participant">
+ <menu_item_call label="關閉交談" name="close_conversation"/>
+ <menu_item_call label="開啟語音交談" name="open_voice_conversation"/>
+ <menu_item_call label="切斷語音交談" name="disconnect_from_voice"/>
+ <menu_item_call label="察看檔案" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="發出瞬間傳送邀請" name="offer_teleport"/>
+ <menu_item_call label="語音通話" name="voice_call"/>
+ <menu_item_call label="聊天歷史……" name="chat_history"/>
+ <menu_item_call label="新增朋友" name="add_friend"/>
+ <menu_item_call label="移除朋友" name="remove_friend"/>
+ <menu_item_call label="移除朋友" name="remove_friends"/>
+ <menu_item_call label="邀請加入群組……" name="invite_to_group"/>
+ <menu_item_call label="放大" name="zoom_in"/>
+ <menu_item_call label="地圖" name="map"/>
+ <menu_item_call label="分享" name="share"/>
+ <menu_item_call label="支付" name="pay"/>
+ <menu_item_check label="禁止語音" name="block_unblock"/>
+ <menu_item_check label="禁止文字" name="MuteText"/>
+ <menu_item_call label="群組檔案" name="group_profile"/>
+ <menu_item_call label="啟用群組" name="activate_group"/>
+ <menu_item_call label="離開群組" name="leave_group"/>
+ <context_menu label="主持人選項" name="Moderator Options">
+ <menu_item_check label="允許文字聊天" name="AllowTextChat"/>
+ <menu_item_call label="將此人消音" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="取消對此人的消音" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="所有人消音" name="ModerateVoiceMute"/>
+ <menu_item_call label="取消所有人的消音" name="ModerateVoiceUnmute"/>
+ </context_menu>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/zh/menu_conversation_log_gear.xml
new file mode 100644
index 0000000000..49e91417e8
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_conversation_log_gear.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Context Menu">
+ <menu_item_call label="IM…" name="IM"/>
+ <menu_item_call label="語音通話…" name="Call"/>
+ <menu_item_call label="開啟聊天歷史…" name="Chat history"/>
+ <menu_item_call label="察看檔案" name="View Profile"/>
+ <menu_item_call label="發給瞬間傳送請求" name="teleport"/>
+ <menu_item_call label="加為朋友" name="add_friend"/>
+ <menu_item_call label="移除朋友" name="remove_friend"/>
+ <menu_item_call label="邀請加入群組……" name="Invite"/>
+ <menu_item_call label="地圖" name="Map"/>
+ <menu_item_call label="分享" name="Share"/>
+ <menu_item_call label="支付" name="Pay"/>
+ <menu_item_check label="封鎖/不再封鎖" name="Block/Unblock"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/zh/menu_conversation_log_view.xml
new file mode 100644
index 0000000000..3fa99a5cd7
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_conversation_log_view.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_conversation_view">
+ <menu_item_check label="依名稱排序" name="sort_by_name"/>
+ <menu_item_check label="依日期排序" name="sort_by_date"/>
+ <menu_item_check label="將朋友列在頂端" name="sort_by_friends"/>
+ <menu_item_call label="檢視附近聊天歷史……" name="view_nearby_chat_history"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_edit.xml b/indra/newview/skins/default/xui/zh/menu_edit.xml
index bda640e5f3..bda640e5f3 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_edit.xml
+++ b/indra/newview/skins/default/xui/zh/menu_edit.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_favorites.xml b/indra/newview/skins/default/xui/zh/menu_favorites.xml
index a01412ce1c..a01412ce1c 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/zh/menu_favorites.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_gesture_gear.xml b/indra/newview/skins/default/xui/zh/menu_gesture_gear.xml
index 5a38197e4c..5a38197e4c 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_gesture_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_group_plus.xml b/indra/newview/skins/default/xui/zh/menu_group_plus.xml
index d4a5a69104..d4a5a69104 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/zh/menu_group_plus.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml b/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
index 3f6820cb32..3f6820cb32 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_im_conversation.xml b/indra/newview/skins/default/xui/zh/menu_im_conversation.xml
new file mode 100644
index 0000000000..815b0b594c
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_im_conversation.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="Conversation Gear Menu">
+ <menu_item_call label="察看檔案" name="View Profile"/>
+ <menu_item_call label="加為朋友" name="Add Friend"/>
+ <menu_item_call label="移除朋友" name="remove_friend"/>
+ <menu_item_call label="發出瞬間傳送邀請" name="offer_teleport"/>
+ <menu_item_call label="邀請加入群組……" name="invite_to_group"/>
+ <menu_item_call label="聊天歷史……" name="chat_history"/>
+ <menu_item_call label="放大" name="zoom_in"/>
+ <menu_item_call label="地圖" name="map"/>
+ <menu_item_call label="分享" name="Share"/>
+ <menu_item_call label="支付" name="Pay"/>
+ <menu_item_check label="禁止語音" name="Block/Unblock"/>
+ <menu_item_check label="禁止文字" name="MuteText"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_im_session_showmodes.xml b/indra/newview/skins/default/xui/zh/menu_im_session_showmodes.xml
new file mode 100644
index 0000000000..a7006e524a
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_im_session_showmodes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_modes">
+ <menu_item_check label="精簡視野" name="compact_view"/>
+ <menu_item_check label="全展視野" name="expanded_view"/>
+ <menu_item_check label="顯示時間" name="IMShowTime"/>
+ <menu_item_check label="一對一交談時顯示名字" name="IMShowNamesForP2PConv"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/zh/menu_imchiclet_adhoc.xml
index 85417d554e..85417d554e 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_imchiclet_adhoc.xml
+++ b/indra/newview/skins/default/xui/zh/menu_imchiclet_adhoc.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_imchiclet_group.xml b/indra/newview/skins/default/xui/zh/menu_imchiclet_group.xml
index 4664fcb027..4664fcb027 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/zh/menu_imchiclet_group.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/zh/menu_imchiclet_p2p.xml
index 636bdaae09..636bdaae09 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/zh/menu_imchiclet_p2p.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml
index f4e886ff67..f4e886ff67 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
index abff0f64ac..abff0f64ac 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml
index c48ee0c9be..c48ee0c9be 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/zh/menu_inv_offer_chiclet.xml
index 577e5988f8..577e5988f8 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inv_offer_chiclet.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inv_offer_chiclet.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml
index 7f745ffaa7..7f745ffaa7 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory_add.xml b/indra/newview/skins/default/xui/zh/menu_inventory_add.xml
index 30bf5a7e75..30bf5a7e75 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory_add.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml
index 8ad0e7324f..8ad0e7324f 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_land.xml b/indra/newview/skins/default/xui/zh/menu_land.xml
index a87ab77dd0..a87ab77dd0 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_land.xml
+++ b/indra/newview/skins/default/xui/zh/menu_land.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_landmark.xml b/indra/newview/skins/default/xui/zh/menu_landmark.xml
index 7372b223cf..7372b223cf 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/zh/menu_landmark.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_login.xml b/indra/newview/skins/default/xui/zh/menu_login.xml
index c327b132a1..c327b132a1 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_login.xml
+++ b/indra/newview/skins/default/xui/zh/menu_login.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml b/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
index d222d7f658..d222d7f658 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_mini_map.xml b/indra/newview/skins/default/xui/zh/menu_mini_map.xml
index 7fd629471a..7fd629471a 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/zh/menu_mini_map.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/zh/menu_model_import_gear_default.xml
index 5f82685632..5f82685632 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_model_import_gear_default.xml
+++ b/indra/newview/skins/default/xui/zh/menu_model_import_gear_default.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_navbar.xml b/indra/newview/skins/default/xui/zh/menu_navbar.xml
index d8356e6277..d8356e6277 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/zh/menu_navbar.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_nearby_chat.xml b/indra/newview/skins/default/xui/zh/menu_nearby_chat.xml
index ce5f5b6e17..ce5f5b6e17 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/zh/menu_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_notification_well_button.xml b/indra/newview/skins/default/xui/zh/menu_notification_well_button.xml
index b629f73584..b629f73584 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_notification_well_button.xml
+++ b/indra/newview/skins/default/xui/zh/menu_notification_well_button.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_object.xml b/indra/newview/skins/default/xui/zh/menu_object.xml
index 4282c1e131..4282c1e131 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_object.xml
+++ b/indra/newview/skins/default/xui/zh/menu_object.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_object_icon.xml b/indra/newview/skins/default/xui/zh/menu_object_icon.xml
index f4f93b0bdc..9655732f2e 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_object_icon.xml
+++ b/indra/newview/skins/default/xui/zh/menu_object_icon.xml
@@ -2,4 +2,6 @@
<menu name="Object Icon Menu">
<menu_item_call label="物件檔案..." name="Object Profile"/>
<menu_item_call label="封鎖…" name="Block"/>
+ <menu_item_call label="顯示在地圖上" name="show_on_map"/>
+ <menu_item_call label="瞬間傳送到物件位置" name="teleport_to_object"/>
</menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_outfit_gear.xml b/indra/newview/skins/default/xui/zh/menu_outfit_gear.xml
index e85b4b7182..258d0d6b20 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_outfit_gear.xml
@@ -23,6 +23,8 @@
<menu_item_call label="新頭髮" name="New Hair"/>
<menu_item_call label="新眼睛" name="New Eyes"/>
</menu>
+ <menu_item_call label="展開全部資料夾" name="expand"/>
+ <menu_item_call label="摺疊全部資料夾" name="collapse"/>
<menu_item_call label="裝扮更名" name="rename"/>
<menu_item_call label="刪除裝扮" name="delete_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_outfit_tab.xml b/indra/newview/skins/default/xui/zh/menu_outfit_tab.xml
index a4614710f4..a4614710f4 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/zh/menu_outfit_tab.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_participant_list.xml b/indra/newview/skins/default/xui/zh/menu_participant_list.xml
index 2456e9fee9..2456e9fee9 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/zh/menu_participant_list.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_participant_view.xml b/indra/newview/skins/default/xui/zh/menu_participant_view.xml
new file mode 100644
index 0000000000..8b35860eb6
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_participant_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="participant_manu_view">
+ <menu_item_check label="將交談依類型排序" name="sort_sessions_by_type"/>
+ <menu_item_check label="將交談依名字排序" name="sort_sessions_by_name"/>
+ <menu_item_check label="將交談依最近活動排序" name="sort_sessions_by_recent"/>
+ <menu_item_check label="將參與者依名字排序" name="sort_participants_by_name"/>
+ <menu_item_check label="將參與者依最近活動排序" name="sort_participants_by_recent"/>
+ <menu_item_call label="聊天偏好設定……" name="chat_preferences"/>
+ <menu_item_call label="隱私偏好設定……" name="privacy_preferences"/>
+ <menu_item_check label="交談記錄……" name="Conversation"/>
+ <menu_item_check label="翻譯附近的聊天" name="Translate_chat"/>
+ <menu_item_check label="翻譯設定……" name="Translation_settings"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_blocked_gear.xml b/indra/newview/skins/default/xui/zh/menu_people_blocked_gear.xml
new file mode 100644
index 0000000000..9a2a3c403d
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_blocked_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_gear">
+ <menu_item_call label="解除封鎖" name="unblock"/>
+ <menu_item_call label="檔案..." name="profile"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_blocked_plus.xml b/indra/newview/skins/default/xui/zh/menu_people_blocked_plus.xml
new file mode 100644
index 0000000000..a8cecb4e14
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_blocked_plus.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_plus">
+ <menu_item_call label="按名字封鎖居民……" name="block_resident_by_name"/>
+ <menu_item_call label="依名稱封鎖物件" name="block_object_by_name"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_blocked_view.xml b/indra/newview/skins/default/xui/zh/menu_people_blocked_view.xml
new file mode 100644
index 0000000000..5b70cd35bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_blocked_view.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_blocked_view">
+ <menu_item_check label="依名稱排序" name="sort_by_name"/>
+ <menu_item_check label="依類型排序" name="sort_by_type"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_friends_view.xml b/indra/newview/skins/default/xui/zh/menu_people_friends_view.xml
new file mode 100644
index 0000000000..4251238fd9
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_friends_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="依名稱排序" name="sort_name"/>
+ <menu_item_check label="依狀態排序" name="sort_status"/>
+ <menu_item_check label="察看人群圖示" name="view_icons"/>
+ <menu_item_check label="察看許可權限" name="view_permissions"/>
+ <menu_item_check label="檢視交談記錄……" name="view_conversation"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml
index 59854faeec..59854faeec 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_people_groups.xml b/indra/newview/skins/default/xui/zh/menu_people_groups.xml
index 5768c554c9..b4b566f5ca 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_groups.xml
@@ -2,7 +2,7 @@
<menu name="menu_group_plus">
<menu_item_call label="察看資訊" name="View Info"/>
<menu_item_call label="聊天" name="Chat"/>
- <menu_item_call label="通話" name="Call"/>
+ <menu_item_call label="語音通話" name="Call"/>
<menu_item_call label="啟動" name="Activate"/>
<menu_item_call label="退出" name="Leave"/>
</menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_groups_view.xml b/indra/newview/skins/default/xui/zh/menu_people_groups_view.xml
new file mode 100644
index 0000000000..05a30d938f
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_groups_view.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="顯示群組圖示" name="Display Group Icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml
index 1be5c69b94..1be5c69b94 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_people_nearby.xml b/indra/newview/skins/default/xui/zh/menu_people_nearby.xml
index 38d5f3d324..d25adaf8fb 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_nearby.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="察看檔案" name="View Profile"/>
- <menu_item_call label="加為朋友" name="Add Friend"/>
- <menu_item_call label="移除朋友" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="通話" name="Call"/>
- <menu_item_call label="地圖" name="Map"/>
- <menu_item_call label="分享" name="Share"/>
- <menu_item_call label="支付" name="Pay"/>
- <menu_item_check label="封鎖/不再封鎖" name="Block/Unblock"/>
- <menu_item_call label="發給瞬間傳送請求" name="teleport"/>
+ <menu_item_call label="察看檔案" name="view_profile"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="發給瞬間傳送請求" name="offer_teleport"/>
+ <menu_item_call label="語音通話" name="voice_call"/>
+ <menu_item_call label="檢視聊天歷史……" name="chat_history"/>
+ <menu_item_call label="加為朋友" name="add_friend"/>
+ <menu_item_call label="移除朋友" name="remove_friend"/>
+ <menu_item_call label="邀請加入群組……" name="invite_to_group"/>
+ <menu_item_call label="放大" name="zoom_in"/>
+ <menu_item_call label="地圖" name="map"/>
+ <menu_item_call label="分享" name="share"/>
+ <menu_item_call label="支付" name="pay"/>
+ <menu_item_check label="封鎖/不再封鎖" name="block_unblock"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/zh/menu_people_nearby_multiselect.xml
index 1380e0b307..69f0eab7dc 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_nearby_multiselect.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="加為朋友" name="Add Friends"/>
- <menu_item_call label="移除朋友" name="Remove Friend"/>
- <menu_item_call label="IM" name="IM"/>
- <menu_item_call label="通話" name="Call"/>
- <menu_item_call label="分享" name="Share"/>
- <menu_item_call label="支付" name="Pay"/>
- <menu_item_call label="發給瞬間傳送請求" name="teleport"/>
+ <menu_item_call label="加為朋友" name="add_friends"/>
+ <menu_item_call label="移除朋友" name="remove_friends"/>
+ <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="通話" name="call"/>
+ <menu_item_call label="分享" name="share"/>
+ <menu_item_call label="支付" name="pay"/>
+ <menu_item_call label="發給瞬間傳送請求" name="offer_teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/zh/menu_people_nearby_view.xml
new file mode 100644
index 0000000000..9bc5638472
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_nearby_view.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="依最近說話者排序" name="sort_by_recent_speakers"/>
+ <menu_item_check label="依名稱排序" name="sort_name"/>
+ <menu_item_check label="依距離排序" name="sort_distance"/>
+ <menu_item_check label="察看人群圖示" name="view_icons"/>
+ <menu_item_check label="察看地圖" name="view_map"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml
index 6cb0ac3c89..6cb0ac3c89 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_people_recent_view.xml b/indra/newview/skins/default/xui/zh/menu_people_recent_view.xml
new file mode 100644
index 0000000000..382234c3ec
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_people_recent_view.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="menu_group_plus">
+ <menu_item_check label="依最近排序" name="sort_most"/>
+ <menu_item_check label="依名稱排序" name="sort_name"/>
+ <menu_item_check label="察看人群圖示" name="view_icons"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml
index 5b6e7335d6..5b6e7335d6 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_picks.xml b/indra/newview/skins/default/xui/zh/menu_picks.xml
index 2e88ac2d39..2e88ac2d39 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_picks.xml
+++ b/indra/newview/skins/default/xui/zh/menu_picks.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_picks_plus.xml b/indra/newview/skins/default/xui/zh/menu_picks_plus.xml
index 80922a757d..80922a757d 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/zh/menu_picks_plus.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_place.xml b/indra/newview/skins/default/xui/zh/menu_place.xml
index 3733baf119..3733baf119 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_place.xml
+++ b/indra/newview/skins/default/xui/zh/menu_place.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_place_add_button.xml b/indra/newview/skins/default/xui/zh/menu_place_add_button.xml
index 95f8917234..95f8917234 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/zh/menu_place_add_button.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_places_gear_folder.xml b/indra/newview/skins/default/xui/zh/menu_places_gear_folder.xml
index 27f0c7ebdb..27f0c7ebdb 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/zh/menu_places_gear_folder.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/zh/menu_places_gear_landmark.xml
index f23d970b78..f23d970b78 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/zh/menu_places_gear_landmark.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_profile_overflow.xml b/indra/newview/skins/default/xui/zh/menu_profile_overflow.xml
index f77e7090c4..f77e7090c4 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/zh/menu_profile_overflow.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_save_outfit.xml b/indra/newview/skins/default/xui/zh/menu_save_outfit.xml
index 53ee6ee977..53ee6ee977 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/zh/menu_save_outfit.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_script_chiclet.xml b/indra/newview/skins/default/xui/zh/menu_script_chiclet.xml
index e9817dd2bc..e9817dd2bc 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_script_chiclet.xml
+++ b/indra/newview/skins/default/xui/zh/menu_script_chiclet.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_slurl.xml b/indra/newview/skins/default/xui/zh/menu_slurl.xml
index 2cea18105a..2cea18105a 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/zh/menu_slurl.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/zh/menu_teleport_history_gear.xml
index d188840588..d188840588 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_teleport_history_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
index c636e108ad..c636e108ad 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_teleport_history_tab.xml b/indra/newview/skins/default/xui/zh/menu_teleport_history_tab.xml
index 90e8098348..90e8098348 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_teleport_history_tab.xml
+++ b/indra/newview/skins/default/xui/zh/menu_teleport_history_tab.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_text_editor.xml b/indra/newview/skins/default/xui/zh/menu_text_editor.xml
index febc0b8b67..febc0b8b67 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/zh/menu_text_editor.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_toolbars.xml b/indra/newview/skins/default/xui/zh/menu_toolbars.xml
index d318992dd5..d318992dd5 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/zh/menu_toolbars.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_topinfobar.xml b/indra/newview/skins/default/xui/zh/menu_topinfobar.xml
index b07e9890ff..b07e9890ff 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_topinfobar.xml
+++ b/indra/newview/skins/default/xui/zh/menu_topinfobar.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_agent.xml b/indra/newview/skins/default/xui/zh/menu_url_agent.xml
index 592bb6561e..72629822d4 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_agent.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="顯示居民檔案" name="show_agent"/>
+ <menu_item_call label="察看檔案" name="show_agent"/>
+ <menu_item_call label="送出 IM..." name="send_im"/>
+ <menu_item_call label="加為朋友..." name="add_friend"/>
<menu_item_call label="覆製名稱到剪貼簿" name="url_copy_label"/>
<menu_item_call label="覆製 SLurl 到剪貼簿" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_url_group.xml b/indra/newview/skins/default/xui/zh/menu_url_group.xml
index de97bb731f..de97bb731f 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_group.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_http.xml b/indra/newview/skins/default/xui/zh/menu_url_http.xml
index 861cbfb975..861cbfb975 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_http.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_inventory.xml b/indra/newview/skins/default/xui/zh/menu_url_inventory.xml
index 8eaea68c6f..8eaea68c6f 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_map.xml b/indra/newview/skins/default/xui/zh/menu_url_map.xml
index fbda20fd2f..fbda20fd2f 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_map.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_map.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_objectim.xml b/indra/newview/skins/default/xui/zh/menu_url_objectim.xml
index b344b21c62..9f3a9d58ff 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_objectim.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="顯示物件資訊" name="show_object"/>
+ <menu_item_call label="物件檔案..." name="show_object"/>
<menu_item_call label="顯示在地圖上" name="show_on_map"/>
<menu_item_call label="瞬間傳送到物件位置" name="teleport_to_object"/>
<menu_item_call label="覆製物件名稱到剪貼簿" name="url_copy_label"/>
diff --git a/indra/newview/skins/default/xui/zh/menu_url_parcel.xml b/indra/newview/skins/default/xui/zh/menu_url_parcel.xml
index 330c28238f..330c28238f 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_parcel.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_slapp.xml b/indra/newview/skins/default/xui/zh/menu_url_slapp.xml
index 6ce9a10d3e..6ce9a10d3e 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_slapp.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_slurl.xml b/indra/newview/skins/default/xui/zh/menu_url_slurl.xml
index 2fb247f250..2fb247f250 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_slurl.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_url_teleport.xml b/indra/newview/skins/default/xui/zh/menu_url_teleport.xml
index e3e4b4716d..e3e4b4716d 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/zh/menu_url_teleport.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml
index ac0e9e7e35..09bdc57819 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml
@@ -16,10 +16,7 @@
<menu_item_call label="停止我身上的動作" name="Stop Animating My Avatar"/>
<menu_item_call label="行走 / 跑步 / 飛行…" name="Walk / run / fly"/>
</menu>
- <menu label="狀態" name="Status">
- <menu_item_call label="離開" name="Set Away"/>
- <menu_item_call label="忙碌" name="Set Busy"/>
- </menu>
+ <menu label="狀態" name="Status"/>
<menu_item_call label="購買 L$…" name="Buy and Sell L$"/>
<menu_item_call label="商家發件匣…" name="MerchantOutbox"/>
<menu_item_call label="帳戶主控臺…" name="Manage My Account"/>
@@ -30,14 +27,18 @@
<menu_item_call label="退出 [APP_NAME]" name="Quit"/>
</menu>
<menu label="溝通" name="Communicate">
- <menu_item_check label="聊天…" name="Nearby Chat"/>
+ <menu_item_check label="交談……" name="Conversations"/>
+ <menu_item_check label="附近的聊天……" name="Nearby Chat"/>
<menu_item_check label="說話" name="Speak"/>
- <menu_item_check label="語音設定…" name="Nearby Voice"/>
- <menu_item_check label="語音變聲…" name="ShowVoice"/>
+ <menu label="語音變聲" name="VoiceMorphing">
+ <menu_item_check label="沒有變聲效果" name="NoVoiceMorphing"/>
+ <menu_item_check label="預覽……" name="Preview"/>
+ <menu_item_call label="訂閱……" name="Subscribe"/>
+ </menu>
<menu_item_check label="姿勢…" name="Gestures"/>
- <menu_item_call label="朋友" name="My Friends"/>
- <menu_item_call label="群組" name="My Groups"/>
- <menu_item_call label="附近的人群" name="Active Speakers"/>
+ <menu_item_check label="朋友" name="My Friends"/>
+ <menu_item_check label="群組" name="My Groups"/>
+ <menu_item_check label="附近的人群" name="Active Speakers"/>
<menu_item_call label="封鎖清單" name="Block List"/>
</menu>
<menu label="世界" name="World">
@@ -113,7 +114,6 @@
<menu_item_call label="購買" name="Menu Object Buy"/>
<menu_item_call label="取得" name="Menu Object Take"/>
<menu_item_call label="取得副本" name="Take Copy"/>
- <menu_item_call label="回存到我的收納區" name="Save Object Back to My Inventory"/>
<menu_item_call label="回存到物件內容" name="Save Object Back to Object Contents"/>
<menu_item_call label="退回物件" name="Return Object back to Owner"/>
</menu>
@@ -128,6 +128,7 @@
<menu_item_call label="聯結集…" name="pathfinding_linksets_menu_item"/>
<menu_item_call label="角色…" name="pathfinding_characters_menu_item"/>
<menu_item_call label="察看 / 測試…" name="pathfinding_console_menu_item"/>
+ <menu_item_call label="重新產出地區" name="pathfinding_rebake_navmesh_item"/>
</menu>
<menu label="選項" name="Options">
<menu_item_check label="顯示進階權限" name="DebugPermissions"/>
@@ -157,6 +158,13 @@
<menu label="幫助" name="Help">
<menu_item_call label="簡易教學…" name="How To"/>
<menu_item_call label="[SECOND_LIFE] 幫助" name="Second Life Help"/>
+ <menu_item_call label="使用者指南" name="User’s guide"/>
+ <menu_item_call label="知識庫" name="Knowledge Base"/>
+ <menu_item_call label="維基" name="Wiki"/>
+ <menu_item_call label="社群論壇" name="Community Forums"/>
+ <menu_item_call label="支援入口" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] 最新消息" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] 部落格" name="Second Life Blogs"/>
<menu_item_call label="違規舉報" name="Report Abuse"/>
<menu_item_call label="回報臭蟲" name="Report Bug"/>
<menu_item_call label="關於 [APP_NAME]" name="About Second Life"/>
@@ -383,9 +391,14 @@
<menu_item_call label="女性測試" name="Test Female"/>
<menu_item_check label="允許選擇化身" name="Allow Select Avatar"/>
</menu>
+ <menu label="動作速度" name="Animation Speed">
+ <menu_item_call label="所有動作加快 10%" name="All Animations 10 Faster"/>
+ <menu_item_call label="所有動作放慢 10%" name="All Animations 10 Slower"/>
+ <menu_item_call label="將所有動作恢復原速" name="Reset All Animation Speed"/>
+ <menu_item_check label="慢動作" name="Slow Motion Animations"/>
+ </menu>
<menu_item_call label="強制參數為預設值" name="Force Params to Default"/>
<menu_item_check label="動作資訊" name="Animation Info"/>
- <menu_item_check label="慢動作" name="Slow Motion Animations"/>
<menu_item_check label="顯示注視在" name="Show Look At"/>
<menu_item_check label="顯示指向在" name="Show Point At"/>
<menu_item_check label="除錯旋軸的更新" name="Debug Joint Updates"/>
diff --git a/indra/newview/skins/default/xui/zh/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/zh/menu_wearable_list_item.xml
index 576f7f3b73..576f7f3b73 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/menu_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml b/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
index 6184f956d1..6184f956d1 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
diff --git a/indra/newview/skins/default/xui/zh/menu_wearing_tab.xml b/indra/newview/skins/default/xui/zh/menu_wearing_tab.xml
index c7d2853995..c7d2853995 100644..100755
--- a/indra/newview/skins/default/xui/zh/menu_wearing_tab.xml
+++ b/indra/newview/skins/default/xui/zh/menu_wearing_tab.xml
diff --git a/indra/newview/skins/default/xui/zh/mime_types.xml b/indra/newview/skins/default/xui/zh/mime_types.xml
index 70af2d2f19..70af2d2f19 100644..100755
--- a/indra/newview/skins/default/xui/zh/mime_types.xml
+++ b/indra/newview/skins/default/xui/zh/mime_types.xml
diff --git a/indra/newview/skins/default/xui/zh/mime_types_linux.xml b/indra/newview/skins/default/xui/zh/mime_types_linux.xml
index 70af2d2f19..70af2d2f19 100644..100755
--- a/indra/newview/skins/default/xui/zh/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/zh/mime_types_linux.xml
diff --git a/indra/newview/skins/default/xui/zh/mime_types_mac.xml b/indra/newview/skins/default/xui/zh/mime_types_mac.xml
index 70af2d2f19..70af2d2f19 100644..100755
--- a/indra/newview/skins/default/xui/zh/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/zh/mime_types_mac.xml
diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml
index 9fecf2c104..59be26d43b 100644..100755
--- a/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/indra/newview/skins/default/xui/zh/notifications.xml
@@ -516,6 +516,24 @@
</url>
<usetemplate ignoretext="我的顯示驅動程式太老舊" name="okcancelignore" notext="否" yestext="是"/>
</notification>
+ <notification name="AMDOldDriver">
+ 你的顯示卡很可能有新版的驅動程式。 更新顯示驅動程式會大幅改善性能。
+
+ 前往 [_URL] 察看是否有新版驅動程式?
+ <url name="url">
+ http://support.amd.com/us/Pages/AMDSupportHub.aspx
+ </url>
+ <usetemplate ignoretext="我的顯示驅動程式太老舊" name="okcancelignore" notext="否" yestext="是"/>
+ </notification>
+ <notification name="NVIDIAOldDriver">
+ 你的顯示卡很可能有新版的驅動程式。 更新顯示驅動程式會大幅改善性能。
+
+ 前往 [_URL] 察看是否有新版驅動程式?
+ <url name="url">
+ http://www.nvidia.com/Download/index.aspx?lang=tw
+ </url>
+ <usetemplate ignoretext="我的顯示驅動程式太老舊" name="okcancelignore" notext="否" yestext="是"/>
+ </notification>
<notification name="UnknownGPU">
你的系統含有一個 [APP_NAME] 無法辨認的顯像卡。
原因很可能是 [APP_NAME] 尚未針對新硬體完成測試。 這大概不會出問題,但你可能需要調整顯像設定。
@@ -1536,10 +1554,13 @@ SHA1 指紋:[MD5_DIGEST]
此時無法發出交友邀請。 請稍候再試。
<usetemplate name="okbutton" yestext="確定"/>
</notification>
- <notification name="BusyModeSet">
- 已設為忙碌模式。
-聊天和即時訊息內容將被隱藏。 即時訊息發送者將收到你的「忙碌模式」回應。 所有的瞬間傳送邀請都將被婉拒。 此時起送給你的收納區物項都將丟入垃圾桶。
- <usetemplate ignoretext="我變更我的狀態為忙碌模式" name="okignore" yestext="確定"/>
+ <notification name="DoNotDisturbModeSet">
+ 「請勿打擾」模式目前是開啟狀態。 你將不會收到任何發給你的訊息通知。
+
+- 其他居民將收到你的「請勿打擾」回應(回應內容設於「偏好設定 &gt; 一般設定」)。
+- 所有瞬間傳送的邀請都將被婉拒。
+- 所有語音來電都將拒絕接聽。
+ <usetemplate ignoretext="我變更我的狀態為「請勿打擾」模式" name="okignore" yestext="確定"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
你已達可同時加入的群組數上限。 請先離開另一個群組再加入這一個,或婉拒加入邀請。
@@ -2024,6 +2045,10 @@ SHA1 指紋:[MD5_DIGEST]
前往你的[http://secondlife.com/account/ 塗鴉牆]以察看你的帳戶歷史紀錄?
<usetemplate ignoretext="啟動我的瀏覽器以察看我的帳戶歷史紀錄" name="okcancelignore" notext="取消" yestext="前往頁面"/>
</notification>
+ <notification name="ConfirmAddingChatParticipants">
+ 新增一個人到現有的交談,等於建立新的交談。 所有交談者將會收到新交談通知。
+ <usetemplate ignoretext="確認新增聊天者" name="okcancelignore" notext="取消" yestext="確定"/>
+ </notification>
<notification name="ConfirmQuit">
你確定你要結束退出?
<usetemplate ignoretext="當我結束退出時進行確認" name="okcancelignore" notext="不要結束退出" yestext="結束退出"/>
@@ -2098,14 +2123,14 @@ SHA1 指紋:[MD5_DIGEST]
<button ignore="絕不取代" name="No" text="取消"/>
</form>
</notification>
- <notification label="忙碌模式警告" name="BusyModePay">
- 你現在處於忙碌模式,這意味著你付費後仍將不會收到任何物項。
+ <notification label="「請勿打擾」模式警告" name="DoNotDisturbModePay">
+ 你已開啟「請勿打擾」。 你將不會收到任何付款購買的物項。
-你是否要先離開忙碌模式,再完成交易?
+是否要在完成交易之前,先關閉「請勿打擾」模式?
<form name="form">
- <ignore name="ignore" text="當我在忙碌模式時,將要支付金錢或給他人物件"/>
- <button ignore="總是離開忙碌模式" name="Yes" text="確定"/>
- <button ignore="絕不離開忙碌模式" name="No" text="取消"/>
+ <ignore name="ignore" text="我即將在「請勿打擾」模式下,試圖付錢給他人或給一個物件"/>
+ <button ignore="固定選擇離開「請勿打擾」模式" name="Yes" text="確定"/>
+ <button ignore="永不離開「請勿打擾」模式" name="No" text="取消"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -2240,11 +2265,8 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="GroupNotice">
主旨:[SUBJECT],訊息:[MESSAGE]
</notification>
- <notification name="FriendOnline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; 目前在線上
- </notification>
- <notification name="FriendOffline">
- &lt;nolink&gt;[NAME]&lt;/nolink&gt; 目前離線
+ <notification name="FriendOnlineOffline">
+ &lt;nolink&gt;[NAME]&lt;/nolink&gt; 目前狀態為 [STATUS]
</notification>
<notification name="AddSelfFriend">
雖然你人很好,你還是不能把自己加為朋友。
@@ -2472,13 +2494,6 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="DynamicPathfindingDisabled">
這地區並未啟用動態尋徑。 使用尋徑 LSL 呼叫的帶腳本物件,在此地區可能無法正常運作。
</notification>
- <notification name="PathfindingRebakeNavmesh">
- 更改本地區的某些物件將導致其他移動物件的運作發生問題。 要使移動物件正常運作,請點按「重新產出地區」按鈕。 欲獲知詳情請選擇「幫助」。
- <url name="url">
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
- </url>
- <usetemplate helptext="幫助" ignoretext="更改本地區的某些物件將導致其他移動物件的運作發生問題。" name="okhelpignore" yestext="確定"/>
- </notification>
<notification name="PathfindingCannotRebakeNavmesh">
發生錯誤。 問題可能出在網路或伺服器,也可能因為你無權建製物件。 有時,只要登出再登入即能解決這類問題。
<usetemplate name="okbutton" yestext="確定"/>
@@ -2741,7 +2756,7 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="ScriptQuestionCaution">
警告:物件 &apos;&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;&apos; 要求全權存取你的林登幣帳戶。 你如果允許存取帳戶,它將可在任何時候從你帳戶取走資金,或完全加以清空,或定期取走部分資金,且不會發出警告。
-這很可能是種不當的要求。 如果你不完全瞭解它為何要求存取你的帳戶,請勿允准。
+如果你不完全瞭解它為何要求存取你的帳戶,請勿允准。
<form name="form">
<button name="Grant" text="允許全權存取"/>
<button name="Deny" text="拒絕"/>
@@ -3323,4 +3338,633 @@ SHA1 指紋:[MD5_DIGEST]
你正在刪除 [NUM_ITEMS] 個物項。 你確定你要繼續?
<usetemplate ignoretext="確定要刪除多個物項?" name="okcancelignore" notext="否" yestext="是"/>
</notification>
+ <notification name="AvatarFrozen">
+ [AV_FREEZER] 凍結了你。 你此時無法移動或與周遭互動。
+ </notification>
+ <notification name="AvatarFrozenDuration">
+ [AV_FREEZER] 凍結了你 [AV_FREEZE_TIME] 秒鐘。 你此時無法移動或與周遭互動。
+ </notification>
+ <notification name="YouFrozeAvatar">
+ 化身已凍結。
+ </notification>
+ <notification name="AvatarHasUnFrozenYou">
+ [AV_FREEZER] 解除了對你的凍結。
+ </notification>
+ <notification name="AvatarUnFrozen">
+ 化身已解除凍結。
+ </notification>
+ <notification name="AvatarFreezeFailure">
+ 凍結失敗,因為你在該地段沒有管理員權限。
+ </notification>
+ <notification name="AvatarFreezeThaw">
+ 你遭凍結的時間已過,請恢復正常活動。
+ </notification>
+ <notification name="AvatarCantFreeze">
+ 抱歉,無法凍結該用戶。
+ </notification>
+ <notification name="NowOwnObject">
+ 你現在是物件 [OBJECT_NAME] 的所有人
+ </notification>
+ <notification name="CantRezOnLand">
+ 無法在 [OBJECT_POS] 產生物件,因為這土地的所有人不允許。 請用土地工具察看所有人。
+ </notification>
+ <notification name="RezFailTooManyRequests">
+ 無法產生物件,此刻要求數目過多。
+ </notification>
+ <notification name="SitFailCantMove">
+ 你無法坐下,因為此刻你不能移動。
+ </notification>
+ <notification name="SitFailNotAllowedOnLand">
+ 你不能坐下,因為該土地不允許。
+ </notification>
+ <notification name="SitFailNotSameRegion">
+ 請挨近一點。 無法坐在物件上,因為
+它和你不在同一個地區。
+ </notification>
+ <notification name="NoNewObjectRegionFull">
+ 無法建立新物件。 地區已滿載。
+ </notification>
+ <notification name="FailedToPlaceObject">
+ 無法將物件置於指定地點。 請再試一次。
+ </notification>
+ <notification name="NoOwnNoGardening">
+ 你無法在別人的土地上建立樹和草。
+ </notification>
+ <notification name="NoCopyPermsNoObject">
+ 複製失敗,你無權複製物件 &apos;[OBJ_NAME]&apos;。
+ </notification>
+ <notification name="NoTransPermsNoObject">
+ 複製失敗,因為物件 &apos;[OBJ_NAME]&apos; 無法轉移給你。
+ </notification>
+ <notification name="AddToNavMeshNoCopy">
+ 複製失敗,因為物件 &apos;[OBJ_NAME]&apos; 對導航網面有貢獻。
+ </notification>
+ <notification name="DupeWithNoRootsSelected">
+ 選取了沒有根的重覆物件。
+ </notification>
+ <notification name="CantDupeCuzRegionIsFull">
+ 無法複製物件,因為地區滿載。
+ </notification>
+ <notification name="CantDupeCuzParcelNotFound">
+ 無法複製物件,找不到它們所在的地段。
+ </notification>
+ <notification name="CantCreateCuzParcelFull">
+ 無法建立物件,因為
+地段滿載。
+ </notification>
+ <notification name="RezAttemptFailed">
+ 試圖產生物件失敗。
+ </notification>
+ <notification name="ToxicInvRezAttemptFailed">
+ 無法建立已在此地區造成問題的物件。
+ </notification>
+ <notification name="InvItemIsBlacklisted">
+ 該收納區物項已被列入黑名單。
+ </notification>
+ <notification name="NoCanRezObjects">
+ 你此時無權建立物件。
+ </notification>
+ <notification name="LandSearchBlocked">
+ 土地搜尋遭禁。
+你在短時間內進行了太多次土地搜尋。
+請稍候再試。
+ </notification>
+ <notification name="NotEnoughResourcesToAttach">
+ 腳本資源不足,無法附著物件!
+ </notification>
+ <notification name="YouDiedAndGotTPHome">
+ 你已經死亡並且被瞬間傳送回你的家的位置
+ </notification>
+ <notification name="EjectComingSoon">
+ 你不再允許待在這裡,必須在 [EJECT_TIME] 秒內離開。
+ </notification>
+ <notification name="NoEnterServerFull">
+ 你無法進入這地區,因為
+伺服器滿載。
+ </notification>
+ <notification name="SaveBackToInvDisabled">
+ 「儲存回收納區」功能已被停用。
+ </notification>
+ <notification name="NoExistNoSaveToContents">
+ 無法將 &apos;[OBJ_NAME]&apos; 儲存到物件內容,因為產生它的來源物件已不存在。
+ </notification>
+ <notification name="NoModNoSaveToContents">
+ 無法儲存 [OBJ_NAME] 到物件內容,你無權修改 &apos;[DEST_NAME]&apos; 物件。
+ </notification>
+ <notification name="NoSaveBackToInvDisabled">
+ 無法將 &apos;[OBJ_NAME]&apos; 儲存回收納區,此動作已被停用。
+ </notification>
+ <notification name="NoCopyNoSelCopy">
+ 無法複製你所選的,因為你無權複製物件 &apos;[OBJ_NAME]&apos;。
+ </notification>
+ <notification name="NoTransNoSelCopy">
+ 無法選取複製,因為物件 &apos;[OBJ_NAME]&apos; 不可轉移。
+ </notification>
+ <notification name="NoTransNoCopy">
+ 無法選取複製,因為物件 &apos;[OBJ_NAME]&apos; 不可轉移。
+ </notification>
+ <notification name="NoPermsNoRemoval">
+ 權限系統不允許從模擬器移除物件 &apos;[OBJ_NAME]&apos;。
+ </notification>
+ <notification name="NoModNoSaveSelection">
+ 無法儲存你所選的,因為你無權修改 &apos;[OBJ_NAME]&apos; 物件。
+ </notification>
+ <notification name="NoCopyNoSaveSelection">
+ 無法儲存你所選的,因為物件 &apos;[OBJ_NAME]&apos; 不可複製。
+ </notification>
+ <notification name="NoModNoTaking">
+ 無法拿取你所選的,因為你無權修改 &apos;[OBJ_NAME]&apos; 物件。
+ </notification>
+ <notification name="RezDestInternalError">
+ 內部錯誤:未知的目的地類型。
+ </notification>
+ <notification name="DeleteFailObjNotFound">
+ 刪除失敗,因為找不到物件
+ </notification>
+ <notification name="SorryCantEjectUser">
+ 抱歉,無法踢出該用戶。
+ </notification>
+ <notification name="RegionSezNotAHome">
+ 此地區不許你在此設定「我的家」。
+ </notification>
+ <notification name="HomeLocationLimits">
+ 你只能在自己的土地或大陸資訊中心上設定「我的家」。
+ </notification>
+ <notification name="HomePositionSet">
+ 我的家位置已定。
+ </notification>
+ <notification name="AvatarEjected">
+ 化身已被踢出。
+ </notification>
+ <notification name="AvatarEjectFailed">
+ 踢出失敗,因為你在該地段沒有管理員權限。
+ </notification>
+ <notification name="CantMoveObjectParcelFull">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+地區 [REGION_NAME] 的 [OBJ_POSITION],因為該目標地段已滿載。
+ </notification>
+ <notification name="CantMoveObjectParcelPerms">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+地區 [REGION_NAME] 的 [OBJ_POSITION],因為此地段不允許你的物件。
+ </notification>
+ <notification name="CantMoveObjectParcelResources">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+ [REGION_NAME] 地區的 [OBJ_POSITION],因為此地段資源不足容納此物件。
+ </notification>
+ <notification name="CantMoveObjectRegionVersion">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+ [REGION_NAME] 地區的 [OBJ_POSITION],因為該地區所執行的軟體版本過舊,不支援跨地區接受這個物件。
+ </notification>
+ <notification name="CantMoveObjectNavMesh">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+地區 [REGION_NAME] 的 [OBJ_POSITION],因為你不得修改跨越地區界限的導航網面。
+ </notification>
+ <notification name="CantMoveObjectWTF">
+ 無法移動 &apos;[OBJECT_NAME]&apos; 物件到
+地區 [REGION_NAME] 的 [OBJ_POSITION],原因不明。 ([FAILURE_TYPE])
+ </notification>
+ <notification name="NoPermModifyObject">
+ 你無權變更該物件
+ </notification>
+ <notification name="CantEnablePhysObjContributesToNav">
+ 對導航網面有貢獻的物件,無法啟用物理。
+ </notification>
+ <notification name="CantEnablePhysKeyframedObj">
+ 鍵格動畫物件無法啟用物理。
+ </notification>
+ <notification name="CantEnablePhysNotEnoughLandResources">
+ 無法啟用物件的物理——土地資源不足。
+ </notification>
+ <notification name="CantEnablePhysCostTooGreat">
+ 物件的物理資源成本超過 [MAX_OBJECTS],無法啟用物理
+ </notification>
+ <notification name="PhantomWithConcavePiece">
+ 此物件不得有凹面部件,因為物件是幻影物件,對導航網面有貢獻。
+ </notification>
+ <notification name="UnableAddItem">
+ 無法新增項目!
+ </notification>
+ <notification name="UnableEditItem">
+ 無法編輯這項目!
+ </notification>
+ <notification name="NoPermToEdit">
+ 無權編輯這項目。
+ </notification>
+ <notification name="NoPermToCopyInventory">
+ 無權複製該收納區。
+ </notification>
+ <notification name="CantSaveItemDoesntExist">
+ 無法儲存到物件內容:該項目已不存在。
+ </notification>
+ <notification name="CantSaveItemAlreadyExists">
+ 無法儲存到物件內容:收納區已存在同名稱的項目
+ </notification>
+ <notification name="CantSaveModifyAttachment">
+ 無法儲存到物件內容:這麼做將修改附件的權限。
+ </notification>
+ <notification name="TooManyScripts">
+ 腳本太多。
+ </notification>
+ <notification name="UnableAddScript">
+ 無法新增腳本!
+ </notification>
+ <notification name="AssetServerTimeoutObjReturn">
+ 資產伺服器未在正常時間內反應。 物件已返交模擬器。
+ </notification>
+ <notification name="RegionDisablePhysicsShapes">
+ 本地區未啟用物理形狀。
+ </notification>
+ <notification name="NoModNavmeshAcrossRegions">
+ 你無法變更跨越地區界限的導航網面。
+ </notification>
+ <notification name="NoSetPhysicsPropertiesOnObjectType">
+ 該物件類型不得設定物理性質。
+ </notification>
+ <notification name="NoSetRootPrimWithNoShape">
+ 根幾何元件無法設成無形狀。
+ </notification>
+ <notification name="NoRegionSupportPhysMats">
+ 本地區未啟用物理材料。
+ </notification>
+ <notification name="OnlyRootPrimPhysMats">
+ 只能調整根幾何元件的物理材料。
+ </notification>
+ <notification name="NoSupportCharacterPhysMats">
+ 尚不支援角色設定物理材料。
+ </notification>
+ <notification name="InvalidPhysMatProperty">
+ 指定的物理材料屬性中,至少有一個無效。
+ </notification>
+ <notification name="NoPermsAlterStitchingMeshObj">
+ 網面物件的縫合類型不得變更。
+ </notification>
+ <notification name="NoPermsAlterShapeMeshObj">
+ 網面物件的形狀不得變更。
+ </notification>
+ <notification name="FullRegionCantEnter">
+ 你無法進入這地區,\n因為地區滿載。
+ </notification>
+ <notification name="LinkFailedOwnersDiffer">
+ 聯結失敗——所有人不同
+ </notification>
+ <notification name="LinkFailedNoModNavmeshAcrossRegions">
+ 聯結失敗——無法修改跨越地區界限的導航網面。
+ </notification>
+ <notification name="LinkFailedNoPermToEdit">
+ 聯結失敗,你無權編輯。
+ </notification>
+ <notification name="LinkFailedTooManyPrims">
+ 聯結失敗——幾何元件太多
+ </notification>
+ <notification name="LinkFailedCantLinkNoCopyNoTrans">
+ 聯結失敗——無法將「禁止複製」和「禁止轉移」物件聯結起來
+ </notification>
+ <notification name="LinkFailedNothingLinkable">
+ 聯結失敗——沒有可聯結的東西。
+ </notification>
+ <notification name="LinkFailedTooManyPathfindingChars">
+ 聯結失敗——尋徑角色太多
+ </notification>
+ <notification name="LinkFailedInsufficientLand">
+ 聯結失敗——土地資源不足
+ </notification>
+ <notification name="LinkFailedTooMuchPhysics">
+ 物件使用了過多物理資源,其動態特性已被停用。
+ </notification>
+ <notification name="TeleportedHomeByObjectOnParcel">
+ 你已被 &apos;[PARCEL_NAME]&apos; 地段的物件 &apos;[OBJECT_NAME]&apos; 成功瞬間傳送回家
+ </notification>
+ <notification name="TeleportedHomeByObject">
+ 你已成功被物件 &apos;[OBJECT_NAME]&apos; 瞬間傳送回家
+ </notification>
+ <notification name="TeleportedByAttachment">
+ 你已成功被 [ITEM_ID] 上的一個附件瞬間傳送
+ </notification>
+ <notification name="TeleportedByObjectOnParcel">
+ 你已成功被 &apos;[PARCEL_NAME]&apos; 地段的物件 &apos;[OBJECT_NAME]&apos; 瞬間傳送
+ </notification>
+ <notification name="TeleportedByObjectOwnedBy">
+ 你已成功被 [OWNER_ID] 擁有的物件 &apos;[OBJECT_NAME]&apos; 瞬間傳送
+ </notification>
+ <notification name="TeleportedByObjectUnknownUser">
+ 你已成功被某未知用戶擁有的物件 &apos;[OBJECT_NAME]&apos; 瞬間傳送。
+ </notification>
+ <notification name="CantCreateObjectRegionFull">
+ 無法建立要求的物件。 地區已滿載。
+ </notification>
+ <notification name="CantAttackMultipleObjOneSpot">
+ 你不能將多個物件附著到同一個點。
+ </notification>
+ <notification name="CantCreateMultipleObjAtLoc">
+ 你不能在此建立多個物件。
+ </notification>
+ <notification name="UnableToCreateObjTimeOut">
+ 無法建立要求的物件。 物件在資料庫中找不到。
+ </notification>
+ <notification name="UnableToCreateObjUnknown">
+ 無法建立要求的物件。 要求逾時,無法完成。 請再試一次。
+ </notification>
+ <notification name="UnableToCreateObjMissingFromDB">
+ 無法建立要求的物件。 請再試一次。
+ </notification>
+ <notification name="RezFailureTookTooLong">
+ 物件產生失敗,要求的物件載入時間太久。
+ </notification>
+ <notification name="FailedToPlaceObjAtLoc">
+ 無法將物件置於指定地點。 請再試一次。
+ </notification>
+ <notification name="CantCreatePlantsOnLand">
+ 你不得在這土地上建立植物。
+ </notification>
+ <notification name="CantRestoreObjectNoWorldPos">
+ 無法恢復物件。 找不到虛擬世界的位置。
+ </notification>
+ <notification name="CantRezObjectInvalidMeshData">
+ 無法產生物件,它的網面資料無效。
+ </notification>
+ <notification name="CantRezObjectTooManyScripts">
+ 無法產生物件,因為這地區已有太多的腳本。
+ </notification>
+ <notification name="CantCreateObjectNoAccess">
+ 你無權在此建立物件。
+ </notification>
+ <notification name="CantCreateObject">
+ 你此時無權建立物件。
+ </notification>
+ <notification name="InvalidObjectParams">
+ 無效的物件參數
+ </notification>
+ <notification name="CantDuplicateObjectNoAcess">
+ 你權限不夠,無法在此複製物件。
+ </notification>
+ <notification name="CantChangeShape">
+ 你無權變更這個形狀。
+ </notification>
+ <notification name="NoAccessToClaimObjects">
+ 你權限不夠,無法在此收取物件。
+ </notification>
+ <notification name="DeedFailedNoPermToDeedForGroup">
+ 讓渡失敗,你無權為你的群組讓渡物件。
+ </notification>
+ <notification name="NoPrivsToBuyObject">
+ 你權限不夠,無法在此購買物件。
+ </notification>
+ <notification name="CantAttachObjectAvatarSittingOnIt">
+ 無法附著物件,有個化身正坐在物件上。
+ </notification>
+ <notification name="WhyAreYouTryingToWearShrubbery">
+ 樹和草不能當附件穿戴。
+ </notification>
+ <notification name="CantAttachGroupOwnedObjs">
+ 無法附著群組所擁有的物件。
+ </notification>
+ <notification name="CantAttachObjectsNotOwned">
+ 無法附著不是你擁有的物件。
+ </notification>
+ <notification name="CantAttachNavmeshObjects">
+ 無法附著對導航網面有貢獻的物件。
+ </notification>
+ <notification name="CantAttachObjectNoMovePermissions">
+ 無法附著物件,你無權移動該物件。
+ </notification>
+ <notification name="CantAttachNotEnoughScriptResources">
+ 腳本資源不足,無法附著物件!
+ </notification>
+ <notification name="CantDropItemTrialUser">
+ 你無法在此卸除物件,請到「自由嘗試」區域再試。
+ </notification>
+ <notification name="CantDropMeshAttachment">
+ 你無法在此卸除附件。 請選擇把卸除附件送回收納區,再重新成形。
+ </notification>
+ <notification name="CantDropAttachmentNoPermission">
+ 卸除附件失敗:你無權在此處卸除。
+ </notification>
+ <notification name="CantDropAttachmentInsufficientLandResources">
+ 卸除附件失敗:可用土地資源不足。
+ </notification>
+ <notification name="CantDropAttachmentInsufficientResources">
+ 卸除附件失敗:可用資源不足。
+ </notification>
+ <notification name="CantDropObjectFullParcel">
+ 無法在此卸除物件。 地段滿載。
+ </notification>
+ <notification name="CantTouchObjectBannedFromParcel">
+ 無法觸摸/抓取此物件,因為你在該土地地段遭禁。
+ </notification>
+ <notification name="PlzNarrowDeleteParams">
+ 請將刪除參數範圍調小一點。
+ </notification>
+ <notification name="UnableToUploadAsset">
+ 無法上傳資產。
+ </notification>
+ <notification name="CantTeleportCouldNotFindUser">
+ 找不到要瞬間傳送到家的用戶
+ </notification>
+ <notification name="GodlikeRequestFailed">
+ 要求神的權力失敗
+ </notification>
+ <notification name="GenericRequestFailed">
+ 普通請求失敗
+ </notification>
+ <notification name="CantUploadPostcard">
+ 無法上傳明信片。 請稍候再試一次。
+ </notification>
+ <notification name="CantFetchInventoryForGroupNotice">
+ 無法取得群組通知的收納區細節。
+ </notification>
+ <notification name="CantSendGroupNoticeNotPermitted">
+ 無法送出群組通知——未准許。
+ </notification>
+ <notification name="CantSendGroupNoticeCantConstructInventory">
+ 無法送出群組通知——收納區建立失敗。
+ </notification>
+ <notification name="CantParceInventoryInNotice">
+ 無法剖析通知裡的收納品項。
+ </notification>
+ <notification name="TerrainUploadFailed">
+ 地形上傳失敗。
+ </notification>
+ <notification name="TerrainFileWritten">
+ 地形檔案已寫入。
+ </notification>
+ <notification name="TerrainFileWrittenStartingDownload">
+ 地形檔案已寫入,開始下載……
+ </notification>
+ <notification name="TerrainBaked">
+ 地形已定貌。
+ </notification>
+ <notification name="TenObjectsDisabledPlzRefresh">
+ 只成功停用前 10 個所選物件。 若有需要,請刷新之後再選取更多的項目。
+ </notification>
+ <notification name="UpdateViewerBuyParcel">
+ 你必須先更新瀏覽器後,才可購買這個地段。
+ </notification>
+ <notification name="CantBuyParcelNotForSale">
+ 無法購買,此地段不供出售。
+ </notification>
+ <notification name="CantBuySalePriceOrLandAreaChanged">
+ 無法購買,售價或土地面積已變。
+ </notification>
+ <notification name="CantBuyParcelNotAuthorized">
+ 你不是此地段的獲授權的買主。
+ </notification>
+ <notification name="CantBuyParcelAwaitingPurchaseAuth">
+ 你無法購買此地段,該地段已在等候批准購買
+ </notification>
+ <notification name="CantBuildOverflowParcel">
+ 你不得在此建立物件,這麼做將導致地段超載。
+ </notification>
+ <notification name="SelectedMultipleOwnedLand">
+ 你選擇的土地範圍,為不同人所擁有。 請縮小選擇範圍,再試一次。
+ </notification>
+ <notification name="CantJoinTooFewLeasedParcels">
+ 未選取足夠租用地段,無法合併。
+ </notification>
+ <notification name="CantDivideLandMultipleParcelsSelected">
+ 無法分割土地,\n因為你選取了多個地段,\n請縮小所選土地。
+ </notification>
+ <notification name="CantDivideLandCantFindParcel">
+ 無法分割土地。\n找不到地段。\n請到「幫助 &gt; 回報錯誤……」回報問題
+ </notification>
+ <notification name="CantDivideLandWholeParcelSelected">
+ 無法分割土地。 選取了整個地段。\n請試著縮小所選的土地。
+ </notification>
+ <notification name="LandHasBeenDivided">
+ 土地分割成功。
+ </notification>
+ <notification name="PassPurchased">
+ 你購買了通行權。
+ </notification>
+ <notification name="RegionDisallowsClassifieds">
+ 地區不允許分類廣告。
+ </notification>
+ <notification name="LandPassExpireSoon">
+ 你在此土地的通行權即將到期失效。
+ </notification>
+ <notification name="CantSitNoSuitableSurface">
+ 沒有合適的表面讓你坐下,請試一試別處。
+ </notification>
+ <notification name="CantSitNoRoom">
+ 這裡沒有空間讓你坐下,請試試另一處。
+ </notification>
+ <notification name="ClaimObjectFailedNoPermission">
+ 收取物件失敗,因為你權限不足。
+ </notification>
+ <notification name="ClaimObjectFailedNoMoney">
+ 收取物件失敗,因為你 L$ 金額不足。
+ </notification>
+ <notification name="CantDeedGroupLand">
+ 無法讓渡群組所擁有的土地。
+ </notification>
+ <notification name="BuyObjectFailedNoMoney">
+ 購買物件失敗,你 L$ 金額不足。
+ </notification>
+ <notification name="BuyInventoryFailedNoMoney">
+ 購買收納區失敗,你 L$ 金額不足。
+ </notification>
+ <notification name="BuyPassFailedNoMoney">
+ 你的 L$ 不足,無法購買此土地的通行權。
+ </notification>
+ <notification name="CantBuyPassTryAgain">
+ 此時無法購買通行權。 請稍候再試一次。
+ </notification>
+ <notification name="CantCreateObjectParcelFull">
+ 無法建立物件,\n地段滿載。
+ </notification>
+ <notification name="FailedPlacingObject">
+ 無法將物件置於指定地點。 請再試一次。
+ </notification>
+ <notification name="CantCreateLandmarkForEvent">
+ 無法為活動建立地標。
+ </notification>
+ <notification name="GodBeatsFreeze">
+ 你擁有的神力解除了凍結!
+ </notification>
+ <notification name="SpecialPowersRequestFailedLogged">
+ 要求特殊能力失敗。 該要求已載入記錄。
+ </notification>
+ <notification name="ExpireExplanation">
+ 系統此時無法處理你的要求。 要求逾時,無法完成。
+ </notification>
+ <notification name="DieExplanation">
+ 系統無法處理你的要求。
+ </notification>
+ <notification name="AddPrimitiveFailure">
+ 金額不足,無法建立幾何元件。
+ </notification>
+ <notification name="RezObjectFailure">
+ 金額不足,無法建立物件。
+ </notification>
+ <notification name="ResetHomePositionNotLegal">
+ 已重設「我的家」位置,因為前一個位置不合法。
+ </notification>
+ <notification name="CantInviteRegionFull">
+ 此刻你無法邀請任何人到你的位置,因為地區滿載。 請稍候再試一次。
+ </notification>
+ <notification name="CantSetHomeAtRegion">
+ 此地區不許你在此設定「我的家」。
+ </notification>
+ <notification name="ListValidHomeLocations">
+ 你只能在自己的土地或大陸資訊中心上設定「我的家」。
+ </notification>
+ <notification name="SetHomePosition">
+ 我的家位置已定。
+ </notification>
+ <notification name="CantDerezInventoryError">
+ 收納區出錯,無法收納物件。
+ </notification>
+ <notification name="CantCreateRequestedInv">
+ 無法建立要求的收納區。
+ </notification>
+ <notification name="CantCreateRequestedInvFolder">
+ 無法建立要求的收納區資料夾。
+ </notification>
+ <notification name="CantCreateInventory">
+ 無法建立該收納區。
+ </notification>
+ <notification name="CantCreateLandmark">
+ 無法建立地標。
+ </notification>
+ <notification name="CantCreateOutfit">
+ 此時無法建立裝扮。 請過一分鐘後再試。
+ </notification>
+ <notification name="InventoryNotForSale">
+ 收納區沒有待售。
+ </notification>
+ <notification name="CantFindInvItem">
+ 找不到收納區物項。
+ </notification>
+ <notification name="CantFindObject">
+ 找不到物件。
+ </notification>
+ <notification name="CantTransfterMoneyRegionDisabled">
+ 此地區目前未啟用轉移金錢給物件的功能。
+ </notification>
+ <notification name="CantPayNoAgent">
+ 無法決定付款給誰。
+ </notification>
+ <notification name="CantDonateToPublicObjects">
+ 你無法將 L$ 送給公共物件。
+ </notification>
+ <notification name="InventoryCreationInWorldObjectFailed">
+ 針對虛擬世界物件建立收納區失敗。
+ </notification>
+ <notification name="UserBalanceOrLandUsageError">
+ 發生內部錯誤,我們無法如常更新你的瀏覽器。 你瀏覽器顯示的 L$ 餘額或擁有地段,可能和伺服器上的正確數額不一致。
+ </notification>
+ <notification name="LargePrimAgentIntersect">
+ 無法建立和其他參與者發生交截的大型幾何元件。 請等其他參與者移開後再試。
+ </notification>
+ <notification name="PreferenceChatClearLog">
+ 這動作將刪除先前交談的記錄,和所有記錄備份。
+ <usetemplate ignoretext="刪除先前交談記錄前,先向我確認。" name="okcancelignore" notext="取消" yestext="確定"/>
+ </notification>
+ <notification name="PreferenceChatDeleteTranscripts">
+ 這將刪除所有先前交談的內容記錄。 過去交談歷史清單不受影響。 資料夾 [FOLDER] 所有副檔名 .txt 和 txt.backup 的檔案都將刪除。
+ <usetemplate ignoretext="刪除交談內容記錄前先向我確認。" name="okcancelignore" notext="取消" yestext="確定"/>
+ </notification>
+ <notification name="PreferenceChatPathChanged">
+ 無法移動檔案。 已恢復前一個路徑。
+ <usetemplate ignoretext="無法移動檔案。 已恢復前一個路徑。" name="okignore" yestext="確定"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/zh/panel_active_object_row.xml b/indra/newview/skins/default/xui/zh/panel_active_object_row.xml
index 42a4aa9e85..42a4aa9e85 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/zh/panel_active_object_row.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml
index 7d16ac4129..7d16ac4129 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/zh/panel_avatar_list_item.xml
index 1c8b56b3d6..e0a49a0add 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_avatar_list_item.xml
@@ -27,5 +27,6 @@
<icon name="permission_edit_mine_icon" tool_tip="這位朋友能編輯、刪除或取得你的物件"/>
<icon name="permission_map_icon" tool_tip="這位朋友能在地圖上找到你的位置"/>
<icon name="permission_online_icon" tool_tip="這位朋友當你上線能看到訊息"/>
+ <button name="info_btn" tool_tip="詳情"/>
<button name="profile_btn" tool_tip="察看檔案"/>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_avatar_tag.xml b/indra/newview/skins/default/xui/zh/panel_avatar_tag.xml
index fd91ea97d1..fd91ea97d1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/zh/panel_avatar_tag.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/zh/panel_block_list_sidetray.xml
index 1dfa024138..9f59bb32f8 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/zh/panel_block_list_sidetray.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
- <text name="title_text">
- 封鎖清單
- </text>
- <scroll_list name="blocked" tool_tip="目前封鎖的居民清單"/>
- <button label="封鎖他人" name="Block resident..." tool_tip="挑選一位居民以進行封鎖"/>
- <button label="依名稱封鎖物件" name="Block object by name..." tool_tip="依名稱挑選一個物件進行封鎖"/>
- <button label="解除封鎖" name="Unblock" tool_tip="將居民或物件由封鎖清單中移除"/>
+ <panel label="bottom_panel" name="blocked_buttons_panel">
+ <filter_editor label="過濾器" name="blocked_filter_input"/>
+ <menu_button name="blocked_gear_btn" tool_tip="對所選的人或物件採取動作"/>
+ <menu_button name="view_btn" tool_tip="排序選項"/>
+ <menu_button name="plus_btn" tool_tip="挑選一位居民或物件,加以封鎖"/>
+ <button name="unblock_btn" tool_tip="將居民或物件由封鎖清單中移除"/>
+ </panel>
+ <block_list name="blocked" tool_tip="目前封鎖的居民清單"/>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/zh/panel_body_parts_list_item.xml
index fef692c1c5..fef692c1c5 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_body_parts_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_body_parts_list_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/zh/panel_bodyparts_list_button_bar.xml
index e4e7a661a7..e4e7a661a7 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_bodyparts_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_bodyparts_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_bottomtray_lite.xml b/indra/newview/skins/default/xui/zh/panel_bottomtray_lite.xml
index 9833e9ef8b..9833e9ef8b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/zh/panel_bottomtray_lite.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_chat_header.xml b/indra/newview/skins/default/xui/zh/panel_chat_header.xml
index 7916bf5155..7916bf5155 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/zh/panel_chat_header.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml
index 69340349bc..69340349bc 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_classified_info.xml b/indra/newview/skins/default/xui/zh/panel_classified_info.xml
index 6f2dd89318..6f2dd89318 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/zh/panel_classified_info.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/zh/panel_clothing_list_button_bar.xml
index ba63dada76..ba63dada76 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_clothing_list_button_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/zh/panel_clothing_list_item.xml
index 55e72f5347..55e72f5347 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_cof_wearables.xml b/indra/newview/skins/default/xui/zh/panel_cof_wearables.xml
index c074abb568..c074abb568 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/zh/panel_cof_wearables.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/zh/panel_conversation_list_item.xml
new file mode 100644
index 0000000000..6524d41645
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_conversation_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_list_item">
+ <layout_stack name="conversation_item_stack">
+ <layout_panel name="conversation_title_panel">
+ <text name="conversation_title" value="(載入中)"/>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_conversation_log_list_item.xml b/indra/newview/skins/default/xui/zh/panel_conversation_log_list_item.xml
new file mode 100644
index 0000000000..8446ce2130
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_conversation_log_list_item.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="conversation_log_list_item">
+ <icon name="voice_session_icon" tool_tip="包含語音交談"/>
+ <icon name="unread_ims_icon" tool_tip="訊息在你登出期間傳來"/>
+ <button name="delete_btn" tool_tip="移除此項目"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/zh/panel_deletable_wearable_list_item.xml
index a9e65419c2..a9e65419c2 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_deletable_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_deletable_wearable_list_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/zh/panel_dummy_clothing_list_item.xml
index 6377bf4135..6377bf4135 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_dummy_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_dummy_clothing_list_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_alpha.xml b/indra/newview/skins/default/xui/zh/panel_edit_alpha.xml
index 32765a3e16..32765a3e16 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_alpha.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_classified.xml b/indra/newview/skins/default/xui/zh/panel_edit_classified.xml
index b06ece02ad..b06ece02ad 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_classified.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_eyes.xml b/indra/newview/skins/default/xui/zh/panel_edit_eyes.xml
index f44d411908..f44d411908 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_eyes.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_gloves.xml b/indra/newview/skins/default/xui/zh/panel_edit_gloves.xml
index d107eea553..d107eea553 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_gloves.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_hair.xml b/indra/newview/skins/default/xui/zh/panel_edit_hair.xml
index 65f78f9273..65f78f9273 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_hair.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_jacket.xml b/indra/newview/skins/default/xui/zh/panel_edit_jacket.xml
index 61e45f911e..61e45f911e 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_jacket.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_pants.xml b/indra/newview/skins/default/xui/zh/panel_edit_pants.xml
index 846ed72961..846ed72961 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_pants.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_physics.xml b/indra/newview/skins/default/xui/zh/panel_edit_physics.xml
index 26fedb59be..26fedb59be 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_physics.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_physics.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml b/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
index faee42fd0e..faee42fd0e 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_profile.xml b/indra/newview/skins/default/xui/zh/panel_edit_profile.xml
index 849b82c71a..849b82c71a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_profile.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_shape.xml b/indra/newview/skins/default/xui/zh/panel_edit_shape.xml
index f249100786..f249100786 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_shape.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_shirt.xml b/indra/newview/skins/default/xui/zh/panel_edit_shirt.xml
index bc69f2ffc4..bc69f2ffc4 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_shirt.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_shoes.xml b/indra/newview/skins/default/xui/zh/panel_edit_shoes.xml
index e190bb5bd8..e190bb5bd8 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_shoes.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_skin.xml b/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
index d8552f52f0..d8552f52f0 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_skirt.xml b/indra/newview/skins/default/xui/zh/panel_edit_skirt.xml
index 34319fcc01..34319fcc01 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_skirt.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_socks.xml b/indra/newview/skins/default/xui/zh/panel_edit_socks.xml
index 8e19fb5692..8e19fb5692 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_socks.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/zh/panel_edit_tattoo.xml
index f5111d629a..f5111d629a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_tattoo.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_underpants.xml b/indra/newview/skins/default/xui/zh/panel_edit_underpants.xml
index 5ead7c9004..5ead7c9004 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_underpants.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/zh/panel_edit_undershirt.xml
index e497e285c9..e497e285c9 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_undershirt.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_wearable.xml b/indra/newview/skins/default/xui/zh/panel_edit_wearable.xml
index 4dd7ea6d93..4dd7ea6d93 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_wearable.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml
index f468aba514..f468aba514 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_general.xml b/indra/newview/skins/default/xui/zh/panel_group_general.xml
index 2b16b61dd1..2b16b61dd1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_general.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
index f979a4c53e..f979a4c53e 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_invite.xml b/indra/newview/skins/default/xui/zh/panel_group_invite.xml
index 8921978b20..8921978b20 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_invite.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_land_money.xml b/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
index 81d5573e1c..81d5573e1c 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_list_item.xml b/indra/newview/skins/default/xui/zh/panel_group_list_item.xml
index 175293cdf7..fec4bb572a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_list_item.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="未知"/>
+ <button name="info_btn" tool_tip="詳情"/>
<button name="profile_btn" tool_tip="察看檔案"/>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_group_notices.xml b/indra/newview/skins/default/xui/zh/panel_group_notices.xml
index ba5f4f1bba..ba5f4f1bba 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_notices.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_notify.xml b/indra/newview/skins/default/xui/zh/panel_group_notify.xml
index 08a8c94876..08a8c94876 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_notify.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_group_roles.xml b/indra/newview/skins/default/xui/zh/panel_group_roles.xml
index 59086c3de2..59086c3de2 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_roles.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml
index e937368a2b..e937368a2b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_instant_message.xml b/indra/newview/skins/default/xui/zh/panel_instant_message.xml
index cf9bc7fccb..cf9bc7fccb 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/zh/panel_instant_message.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_inventory_item.xml b/indra/newview/skins/default/xui/zh/panel_inventory_item.xml
index d18047fbcf..d18047fbcf 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_inventory_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_landmark_info.xml b/indra/newview/skins/default/xui/zh/panel_landmark_info.xml
index b50aa24d3f..b50aa24d3f 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/zh/panel_landmark_info.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_landmarks.xml b/indra/newview/skins/default/xui/zh/panel_landmarks.xml
index eea406170a..eea406170a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/zh/panel_landmarks.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_login.xml b/indra/newview/skins/default/xui/zh/panel_login.xml
index 672d9bb1a2..672d9bb1a2 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_login.xml
+++ b/indra/newview/skins/default/xui/zh/panel_login.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
index 0ad3d8506d..0ad3d8506d 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_me.xml b/indra/newview/skins/default/xui/zh/panel_me.xml
index aad1348e46..aad1348e46 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_me.xml
+++ b/indra/newview/skins/default/xui/zh/panel_me.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_media_settings_general.xml b/indra/newview/skins/default/xui/zh/panel_media_settings_general.xml
index 0c11befcf5..0c11befcf5 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_media_settings_general.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/zh/panel_media_settings_permissions.xml
index 4a1eaef3a1..4a1eaef3a1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/zh/panel_media_settings_permissions.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_media_settings_security.xml b/indra/newview/skins/default/xui/zh/panel_media_settings_security.xml
index da84d6fe02..da84d6fe02 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/zh/panel_media_settings_security.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml b/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
index 7a11aa961b..7a11aa961b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml
index bb52c13a11..bb52c13a11 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml
+++ b/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml b/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml
index fc52168bb7..fc52168bb7 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/zh/panel_nearby_chat_bar.xml
index 9489113d09..9489113d09 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_nearby_chat_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_nearby_media.xml b/indra/newview/skins/default/xui/zh/panel_nearby_media.xml
index c11a7a088b..c11a7a088b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/zh/panel_nearby_media.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_notify_textbox.xml b/indra/newview/skins/default/xui/zh/panel_notify_textbox.xml
index 01a8210338..01a8210338 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_notify_textbox.xml
+++ b/indra/newview/skins/default/xui/zh/panel_notify_textbox.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_online_status_toast.xml b/indra/newview/skins/default/xui/zh/panel_online_status_toast.xml
index a5d3afccb9..a5d3afccb9 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_online_status_toast.xml
+++ b/indra/newview/skins/default/xui/zh/panel_online_status_toast.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml
index 8de0bb0e4d..8de0bb0e4d 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outfit_edit.xml b/indra/newview/skins/default/xui/zh/panel_outfit_edit.xml
index a698da0ab1..a698da0ab1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfit_edit.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/zh/panel_outfits_inventory.xml
index 8dd93543c0..8dd93543c0 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfits_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/zh/panel_outfits_inventory_gear_default.xml
index 92ec774f9b..92ec774f9b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfits_inventory_gear_default.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outfits_list.xml b/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
index cfb0180f9c..cfb0180f9c 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/zh/panel_outfits_wearing.xml
index 693cdcdeca..693cdcdeca 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfits_wearing.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_people.xml b/indra/newview/skins/default/xui/zh/panel_people.xml
index 59ea7b70e2..5f7aca387a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_people.xml
+++ b/indra/newview/skins/default/xui/zh/panel_people.xml
@@ -14,81 +14,53 @@
<string name="no_filtered_friends_msg">
找不到你要找的嗎? 請試試[secondlife:///app/search/people/[SEARCH_TERM] 搜尋]。
</string>
- <string name="people_filter_label" value="人員過濾器"/>
- <string name="groups_filter_label" value="群組過濾器"/>
<string name="no_filtered_groups_msg" value="找不到你要找的嗎? 請試試[secondlife:///app/search/groups/[SEARCH_TERM] 搜尋]。"/>
<string name="no_groups_msg" value="要尋找群組考慮加入嗎? 請試試[secondlife:///app/search/groups 搜尋]。"/>
<string name="MiniMapToolTipMsg" value="[REGION](雙擊以開啟地圖,按下 shift 鍵拖曳來平移)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION](雙擊以瞬間傳送,按下 shift 鍵拖曳來平移)"/>
- <filter_editor label="過濾器" name="filter_input"/>
<tab_container name="tabs">
<panel label="附近" name="nearby_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="nearby_view_sort_btn" tool_tip="選項"/>
- <button name="add_friend_btn" tool_tip="添加所選的居民到你的朋友清單"/>
+ <panel label="bottom_panel" name="nearby_buttons_panel">
+ <filter_editor label="人員過濾器" name="nearby_filter_input"/>
+ <button name="gear_btn" tool_tip="對選取的人採取動作"/>
+ <menu_button name="nearby_view_btn" tool_tip="檢視/排序的選項"/>
+ <button name="add_friend_btn" tool_tip="向某位居民發出交友邀請"/>
+ <dnd_button name="nearby_del_btn" tool_tip="將選取的人從朋友名單移除"/>
</panel>
</panel>
- <panel label="我的朋友" name="friends_panel">
+ <panel label="朋友" name="friends_panel">
+ <panel label="bottom_panel" name="friends_buttons_panel">
+ <filter_editor label="人員過濾器" name="friends_filter_input"/>
+ <button name="gear_btn" tool_tip="對選取的人採取動作"/>
+ <menu_button name="friends_view_btn" tool_tip="檢視/排序的選項"/>
+ <button name="friends_add_btn" tool_tip="向某位居民發出交友邀請"/>
+ <dnd_button name="friends_del_btn" tool_tip="將選取的人從朋友名單移除"/>
+ </panel>
<accordion name="friends_accordion">
<accordion_tab name="tab_online" title="上線"/>
<accordion_tab name="tab_all" title="全部"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel">
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="friends_viewsort_btn" tool_tip="顯示額外選項"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="向居民發出交友邀請"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="del_btn" tool_tip="由你的朋友清單移除所選擇的人"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
- <panel label="我的群組" name="groups_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="groups_viewsort_btn" tool_tip="選項"/>
- <button name="plus_btn" tool_tip="加入群組/創立新群組"/>
- <button name="activate_btn" tool_tip="啟用所選擇的群組"/>
+ <panel label="群組" name="groups_panel">
+ <panel label="bottom_panel" name="groups_buttons_panel">
+ <filter_editor label="群組過濾器" name="groups_filter_input"/>
+ <menu_button name="groups_gear_btn" tool_tip="對所選群組採取動作"/>
+ <menu_button name="groups_view_btn" tool_tip="檢視/排序的選項"/>
+ <menu_button name="plus_btn" tool_tip="加入群組/創立新群組"/>
+ <dnd_button name="minus_btn" tool_tip="離開所選群組"/>
</panel>
</panel>
<panel label="最近" name="recent_panel">
- <panel label="bottom_panel" name="bottom_panel">
- <menu_button name="recent_viewsort_btn" tool_tip="選項"/>
- <button name="add_friend_btn" tool_tip="添加所選的居民到你的朋友清單"/>
+ <panel label="bottom_panel" name="recent_buttons_panel">
+ <filter_editor label="人員過濾器" name="recent_filter_input"/>
+ <button name="gear_btn" tool_tip="對選取的人採取動作"/>
+ <menu_button name="recent_view_btn" tool_tip="檢視/排序的選項"/>
+ <button name="add_friend_btn" tool_tip="向某位居民發出交友邀請"/>
+ <dnd_button name="recent_del_btn" tool_tip="將選取的人從朋友名單移除"/>
</panel>
</panel>
+ <panel label="已封鎖的" name="blocked_panel">
+ <panel label="被封鎖的居民與物件" name="panel_block_list_sidetray"/>
+ </panel>
</tab_container>
- <panel name="button_bar">
- <layout_stack name="bottom_bar_ls">
- <layout_panel name="view_profile_btn_lp">
- <button label="檔案" name="view_profile_btn" tool_tip="顯示圖片、群組與其他居民資訊"/>
- </layout_panel>
- <layout_panel name="im_btn_lp">
- <button label="IM" name="im_btn" tool_tip="開啟即時訊息會話"/>
- </layout_panel>
- <layout_panel name="call_btn_lp">
- <button label="通話" name="call_btn" tool_tip="和這位居民通話"/>
- </layout_panel>
- <layout_panel name="share_btn_lp">
- <button label="分享" name="share_btn" tool_tip="分享一個收納區物品"/>
- </layout_panel>
- <layout_panel name="teleport_btn_lp">
- <button label="瞬間傳送" name="teleport_btn" tool_tip="發出瞬間傳送邀請"/>
- </layout_panel>
- </layout_stack>
- <layout_stack name="bottom_bar_ls1">
- <layout_panel name="group_info_btn_lp">
- <button label="群組檔案" name="group_info_btn" tool_tip="顯示群組資訊"/>
- </layout_panel>
- <layout_panel name="chat_btn_lp">
- <button label="群組聊天" name="chat_btn" tool_tip="開啟聊天會話"/>
- </layout_panel>
- <layout_panel name="group_call_btn_lp">
- <button label="群組通話" name="group_call_btn" tool_tip="與此群組進行通話"/>
- </layout_panel>
- </layout_stack>
- </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_pick_info.xml b/indra/newview/skins/default/xui/zh/panel_pick_info.xml
index cd4cdbf999..cd4cdbf999 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/zh/panel_pick_info.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_picks.xml b/indra/newview/skins/default/xui/zh/panel_picks.xml
index 98d36eaea0..98d36eaea0 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_picks.xml
+++ b/indra/newview/skins/default/xui/zh/panel_picks.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_place_profile.xml b/indra/newview/skins/default/xui/zh/panel_place_profile.xml
index a364f732d8..a364f732d8 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/zh/panel_place_profile.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_places.xml b/indra/newview/skins/default/xui/zh/panel_places.xml
index 08cae610f6..08cae610f6 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_places.xml
+++ b/indra/newview/skins/default/xui/zh/panel_places.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_postcard_message.xml b/indra/newview/skins/default/xui/zh/panel_postcard_message.xml
index 563c4fca3c..563c4fca3c 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/zh/panel_postcard_message.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml b/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml
index 900ab3a54e..900ab3a54e 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
index 3a7d79e04b..3a7d79e04b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/zh/panel_preferences_alerts.xml
index 94eb3c1389..94eb3c1389 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_alerts.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
index cf2f81d313..e700e35516 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
@@ -1,34 +1,86 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="文字聊天" name="chat">
- <text name="font_size">
- 字型尺寸:
- </text>
- <radio_group name="chat_font_size">
- <radio_item label="小" name="radio" value="0"/>
- <radio_item label="中" name="radio2" value="1"/>
- <radio_item label="大" name="radio3" value="2"/>
- </radio_group>
- <check_box initial_value="true" label="聊天時播放打字動作" name="play_typing_animation"/>
- <check_box label="當我離線時將收到的 IM 訊息郵寄給我" name="send_im_to_email"/>
- <check_box label="啟用純本文 IM 與聊天歷史紀錄" name="plain_text_chat_history"/>
- <check_box label="聊天泡泡" name="bubble_text_chat"/>
- <text name="show_ims_in_label">
- 顯示 IMs 於:
- </text>
- <text name="requires_restart_label">
- (須重新啟動)
- </text>
- <radio_group name="chat_window" tool_tip="顯示你的即時訊息在分開的浮動視窗,或是使用很多頁籤的單一浮動視窗(須重新啟動)">
- <radio_item label="分開視窗" name="radio" value="0"/>
- <radio_item label="頁籤" name="radio2" value="1"/>
- </radio_group>
- <text name="disable_toast_label">
- 啟用傳入聊天的突顯示視窗:
- </text>
- <check_box label="群組聊天" name="EnableGroupChatPopups" tool_tip="當群組聊天訊息抵達時查看突顯式視窗"/>
- <check_box label="IM 聊天" name="EnableIMChatPopups" tool_tip="當即時訊息抵達時查看突顯式視窗"/>
- <spinner label="附近聊天內容提示框停駐時間:" name="nearby_toasts_lifetime"/>
- <spinner label="附近聊天內容提示框消退時間:" name="nearby_toasts_fadingtime"/>
+ <panel>
+ <check_box initial_value="true" label="聊天時播放打字動作" name="play_typing_animation"/>
+ <check_box label="當我離線時將收到的 IM 訊息郵寄給我" name="send_im_to_email"/>
+ <check_box label="只有我的朋友和群組可以 IM 或與我通話。" name="voice_call_friends_only_check"/>
+ <text name="font_size">
+ 字型尺寸:
+ </text>
+ <combo_box name="chat_font_size">
+ <item label="小" name="Small" value="0"/>
+ <item label="中" name="Medium" value="1"/>
+ <item label="大" name="Large" value="2"/>
+ </combo_box>
+ <check_box label="聊天泡泡" name="bubble_text_chat"/>
+ </panel>
+ <panel>
+ <text name="notifications">
+ 通知
+ </text>
+ <text name="friend_ims">
+ 朋友 IM:
+ </text>
+ <combo_box name="FriendIMOptions">
+ <item label="開啟交談視窗" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="以突顯式視窗顯示訊息" name="PopUpMessage" value="toast"/>
+ <item label="Flash 工具列按鈕" name="FlashToolbarButton" value="flash"/>
+ <item label="無" name="None" value="無"/>
+ </combo_box>
+ <text name="non_friend_ims">
+ 非朋友 IM:
+ </text>
+ <combo_box name="NonFriendIMOptions">
+ <item label="開啟交談視窗" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="以突顯式視窗顯示訊息" name="PopUpMessage" value="toast"/>
+ <item label="Flash 工具列按鈕" name="FlashToolbarButton" value="flash"/>
+ <item label="無" name="None" value="無"/>
+ </combo_box>
+ <text name="conference_ims">
+ 多方交談 IM:
+ </text>
+ <combo_box name="ConferenceIMOptions">
+ <item label="開啟交談視窗" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="以突顯式視窗顯示訊息" name="PopUpMessage" value="toast"/>
+ <item label="Flash 工具列按鈕" name="FlashToolbarButton" value="flash"/>
+ <item label="無" name="None" value="無"/>
+ </combo_box>
+ <text name="group_chat">
+ 群組聊天:
+ </text>
+ <combo_box name="GroupChatOptions">
+ <item label="開啟交談視窗" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="以突顯式視窗顯示訊息" name="PopUpMessage" value="toast"/>
+ <item label="Flash 工具列按鈕" name="FlashToolbarButton" value="flash"/>
+ <item label="無" name="None" value="無"/>
+ </combo_box>
+ <text name="nearby_chat">
+ 附近的聊天:
+ </text>
+ <combo_box name="NearbyChatOptions">
+ <item label="開啟交談視窗" name="OpenConversationsWindow" value="openconversations"/>
+ <item label="以突顯式視窗顯示訊息" name="PopUpMessage" value="toast"/>
+ <item label="Flash 工具列按鈕" name="FlashToolBarButton" value="flash"/>
+ <item label="無" name="None" value="無"/>
+ </combo_box>
+ <text name="notifications_alert">
+ 若要暫時停止所有通知,請設定「溝通 &gt; 請勿打擾」。
+ </text>
+ </panel>
+ <panel>
+ <text name="play_sound">
+ 播放聲音:
+ </text>
+ <check_box label="新交談" name="new_conversation"/>
+ <check_box label="語音通話來電" name="incoming_voice_call"/>
+ <check_box label="瞬間傳送邀請" name="teleport_offer"/>
+ <check_box label="收納物品贈送" name="inventory_offer"/>
+ </panel>
+ <panel>
+ <button label="清空記錄……" name="clear_log"/>
+ <button label="刪除交談內容記錄……" name="delete_transcripts"/>
+ <button label="瀏覽…" label_selected="瀏覽" name="log_path_button"/>
+ </panel>
<button label="翻譯…" name="ok_btn"/>
<button label="自動取代…" name="autoreplace_showgui"/>
<button label="拼字檢查…" name="spellcheck_showgui"/>
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml b/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
index 6af4bb8970..6af4bb8970 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
index 7e67a0d02d..044edbed70 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
@@ -68,9 +68,9 @@
<combo_box.item label="絕不" name="item4"/>
</combo_box>
<text name="text_box3">
- 忙碌模式回應:
+ 「請勿打擾」預設回應:
</text>
- <text_editor name="busy_response">
+ <text_editor name="do_not_disturb_response">
log_in_to_change
</text_editor>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
index 3948a48992..3948a48992 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_move.xml b/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
index 3a27477885..3a27477885 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/zh/panel_preferences_privacy.xml
index 07fdfd87e3..07fdfd87e3 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_privacy.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
index a607a7c33b..a607a7c33b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml b/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
index e57f08fd74..e57f08fd74 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/zh/panel_prim_media_controls.xml
index 09043311da..09043311da 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/zh/panel_prim_media_controls.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_covenant.xml b/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
index d5dd337795..d5dd337795 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_debug.xml b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
index e5d5e6eaf7..e5d5e6eaf7 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_environment.xml b/indra/newview/skins/default/xui/zh/panel_region_environment.xml
index 8f466af39e..8f466af39e 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_environment.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_estate.xml b/indra/newview/skins/default/xui/zh/panel_region_estate.xml
index f3c1c85379..f3c1c85379 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_estate.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_general.xml b/indra/newview/skins/default/xui/zh/panel_region_general.xml
index f6b2c46354..f6b2c46354 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_general.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_region_terrain.xml b/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
index 85e759e445..85e759e445 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_script_ed.xml b/indra/newview/skins/default/xui/zh/panel_script_ed.xml
index 29e9a35869..29e9a35869 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/zh/panel_script_ed.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/zh/panel_script_limits_my_avatar.xml
index eb32d39f78..eb32d39f78 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_script_limits_my_avatar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/zh/panel_script_limits_region_memory.xml
index 40a2dd6926..40a2dd6926 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_script_limits_region_memory.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml b/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml
index a2d0237da0..a2d0237da0 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml
+++ b/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_scrolling_param.xml b/indra/newview/skins/default/xui/zh/panel_scrolling_param.xml
index bc29058f77..bc29058f77 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/zh/panel_scrolling_param.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/zh/panel_scrolling_param_base.xml
index fa659040ea..fa659040ea 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/zh/panel_scrolling_param_base.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/zh/panel_side_tray_tab_caption.xml
index cdd79da30c..cdd79da30c 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_side_tray_tab_caption.xml
+++ b/indra/newview/skins/default/xui/zh/panel_side_tray_tab_caption.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml
index 20fb9b494a..20fb9b494a 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
index a929c9a3fb..a929c9a3fb 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml
index 82c2b10d8d..82c2b10d8d 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml
index 853a856104..853a856104 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml
index 6f64a4e83c..6f64a4e83c 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_sound_devices.xml b/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
index fa4e24a605..fa4e24a605 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_stand_stop_flying.xml b/indra/newview/skins/default/xui/zh/panel_stand_stop_flying.xml
index 4586d4eca1..4586d4eca1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/zh/panel_stand_stop_flying.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_status_bar.xml b/indra/newview/skins/default/xui/zh/panel_status_bar.xml
index b4cdff9d6b..b4cdff9d6b 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_status_bar.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_teleport_history.xml b/indra/newview/skins/default/xui/zh/panel_teleport_history.xml
index 44d545a86d..44d545a86d 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/zh/panel_teleport_history.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/zh/panel_teleport_history_item.xml
index c251994906..c251994906 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/zh/panel_teleport_history_item.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_voice_effect.xml b/indra/newview/skins/default/xui/zh/panel_voice_effect.xml
index 6c8a452014..6c8a452014 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/zh/panel_voice_effect.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml
index 70ec028176..70ec028176 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml
diff --git a/indra/newview/skins/default/xui/zh/panel_world_map.xml b/indra/newview/skins/default/xui/zh/panel_world_map.xml
index 84018768a1..84018768a1 100644..100755
--- a/indra/newview/skins/default/xui/zh/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/zh/panel_world_map.xml
diff --git a/indra/newview/skins/default/xui/zh/role_actions.xml b/indra/newview/skins/default/xui/zh/role_actions.xml
index 767bcecde7..767bcecde7 100644..100755
--- a/indra/newview/skins/default/xui/zh/role_actions.xml
+++ b/indra/newview/skins/default/xui/zh/role_actions.xml
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_appearance.xml b/indra/newview/skins/default/xui/zh/sidepanel_appearance.xml
index 83a9bdf6a5..83a9bdf6a5 100644..100755
--- a/indra/newview/skins/default/xui/zh/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_appearance.xml
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
index c8aae15011..c8aae15011 100644..100755
--- a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
index 1b093e0ecd..1b093e0ecd 100644..100755
--- a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
index 982dde4010..60f44a3d88 100644..100755
--- a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
@@ -72,6 +72,7 @@
<combo_box.item label="購買物件" name="Buyobject"/>
<combo_box.item label="支付物件" name="Payobject"/>
<combo_box.item label="打開" name="Open"/>
+ <combo_box.item label="縮放" name="Zoom"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml
index 7e17ed6864..31713ac281 100644..100755
--- a/indra/newview/skins/default/xui/zh/strings.xml
+++ b/indra/newview/skins/default/xui/zh/strings.xml
@@ -614,8 +614,8 @@ http://secondlife.com/viewer-access-faq
<string name="AvatarAway">
離開
</string>
- <string name="AvatarBusy">
- 忙碌
+ <string name="AvatarDoNotDisturb">
+ 請勿打擾
</string>
<string name="AvatarMuted">
封鎖的
@@ -851,6 +851,12 @@ http://secondlife.com/viewer-access-faq
<string name="ST_NO_JOINT">
找不到 ROOT 或旋軸。
</string>
+ <string name="NearbyChatTitle">
+ 附近的聊天中
+ </string>
+ <string name="NearbyChatLabel">
+ (附近的聊天)
+ </string>
<string name="whisper">
低語:
</string>
@@ -914,12 +920,15 @@ http://secondlife.com/viewer-access-faq
<string name="ControlYourCamera">
控制你的攝影機
</string>
- <string name="TeleportYourAgent">
- 瞬間傳送你本人
- </string>
<string name="NotConnected">
未聯接
</string>
+ <string name="AgentNameSubst">
+ (你)
+ </string>
+ <string name="TeleportYourAgent">
+ 瞬間傳送你本人
+ </string>
<string name="SIM_ACCESS_PG">
一般普級
</string>
@@ -1001,18 +1010,6 @@ http://secondlife.com/viewer-access-faq
<string name="dictionary_files">
字典
</string>
- <string name="AvatarSetNotAway">
- 非離開
- </string>
- <string name="AvatarSetAway">
- 離開
- </string>
- <string name="AvatarSetNotBusy">
- 非忙碌
- </string>
- <string name="AvatarSetBusy">
- 忙碌
- </string>
<string name="shape">
體形
</string>
@@ -1981,8 +1978,8 @@ http://secondlife.com/viewer-access-faq
<string name="PanelContentsNewScript">
新腳本
</string>
- <string name="BusyModeResponseDefault">
- 你傳訊過去的居民目前處於忙碌狀態,這意味著他要求不被打擾。 你的訊息仍將留存並顯示於對方的 IM 面板上供稍後查閱。
+ <string name="DoNotDisturbModeResponseDefault">
+ 這居民處於「請勿打擾」狀態,不會立即看到你的訊息。
</string>
<string name="MuteByName">
(按名稱)
@@ -2095,9 +2092,6 @@ http://secondlife.com/viewer-access-faq
<string name="GroupMoneyDate">
[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
</string>
- <string name="ViewerObjectContents">
- 內容
- </string>
<string name="AcquiredItems">
取得物品
</string>
@@ -3869,7 +3863,7 @@ http://secondlife.com/viewer-access-faq
一般普級地區
</string>
<string name="LocationCtrlSeeAVsTooltip">
- 可看到本地段外的化身,並與之交談
+ 這地段外的其他化身,看不見也聽不到位於地段裡的化身
</string>
<string name="LocationCtrlPathfindingDirtyTooltip">
地區重新產出之前,可移動物件可能無法正常運作。
@@ -3946,6 +3940,12 @@ http://secondlife.com/viewer-access-faq
<string name="IM_unblock_only_groups_friends">
要察看這訊息,你必須到「偏好設定 / 隱私」,取消勾選「只有我的朋友和群組可以 IM 或與我通話」。
</string>
+ <string name="OnlineStatus">
+ 上線
+ </string>
+ <string name="OfflineStatus">
+ 離線
+ </string>
<string name="answered_call">
你的通話已經接通
</string>
@@ -3955,6 +3955,9 @@ http://secondlife.com/viewer-access-faq
<string name="you_joined_call">
你發起了語音通話
</string>
+ <string name="you_auto_rejected_call-im">
+ 因為處於「請勿打擾」模式,你已自動拒聽這通語音來電。
+ </string>
<string name="name_started_call">
[NAME] 發起了語音通話
</string>
@@ -3971,7 +3974,7 @@ http://secondlife.com/viewer-access-faq
聯接中...
</string>
<string name="conference-title">
- 臨時多方通話
+ 多人聊天
</string>
<string name="conference-title-incoming">
和 [AGENT_NAME] 多方通話
@@ -4863,6 +4866,9 @@ http://secondlife.com/viewer-access-faq
<string name="Command_Chat_Label">
聊天
</string>
+ <string name="Command_Conversations_Label">
+ 交談
+ </string>
<string name="Command_Compass_Label">
羅盤
</string>
@@ -4938,6 +4944,9 @@ http://secondlife.com/viewer-access-faq
<string name="Command_Chat_Tooltip">
透過文字和附近人們聊天
</string>
+ <string name="Command_Conversations_Tooltip">
+ 和所有人交談
+ </string>
<string name="Command_Compass_Tooltip">
指南針
</string>
@@ -5067,4 +5076,13 @@ http://secondlife.com/viewer-access-faq
<string name="UserDictionary">
[User]
</string>
+ <string name="logging_calls_disabled_log_empty">
+ 交談未留記錄。 若想開始留記錄,請到「偏好設定 &gt; 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。
+ </string>
+ <string name="logging_calls_disabled_log_not_empty">
+ 將不再為交談留記錄。 若想恢復留存記錄,請到「偏好設定 &gt; 聊天」,選擇「儲存:只留歷史記錄」或「儲存:歷史記錄兼交談內容」。
+ </string>
+ <string name="logging_calls_enabled_log_empty">
+ 目前沒有交談記錄。 在你聯絡某人或某人聯絡你之後,這裡將留存記錄。
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/zh/teleport_strings.xml b/indra/newview/skins/default/xui/zh/teleport_strings.xml
index 37080a8d0c..37080a8d0c 100644..100755
--- a/indra/newview/skins/default/xui/zh/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/zh/teleport_strings.xml
diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt
index 68e2e688cb..68e2e688cb 100644..100755
--- a/indra/newview/tests/gpus_results.txt
+++ b/indra/newview/tests/gpus_results.txt
diff --git a/indra/newview/tests/gpus_seen.txt b/indra/newview/tests/gpus_seen.txt
index 570f92a9b0..570f92a9b0 100644..100755
--- a/indra/newview/tests/gpus_seen.txt
+++ b/indra/newview/tests/gpus_seen.txt
diff --git a/indra/newview/tests/llagentaccess_test.cpp b/indra/newview/tests/llagentaccess_test.cpp
index 3ba25f3c10..3ba25f3c10 100644..100755
--- a/indra/newview/tests/llagentaccess_test.cpp
+++ b/indra/newview/tests/llagentaccess_test.cpp
diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp
index e1cbd28f92..e1cbd28f92 100644..100755
--- a/indra/newview/tests/llcapabilitylistener_test.cpp
+++ b/indra/newview/tests/llcapabilitylistener_test.cpp
diff --git a/indra/newview/tests/lldateutil_test.cpp b/indra/newview/tests/lldateutil_test.cpp
index 47353962e1..47353962e1 100644..100755
--- a/indra/newview/tests/lldateutil_test.cpp
+++ b/indra/newview/tests/lldateutil_test.cpp
diff --git a/indra/newview/tests/lldir_stub.cpp b/indra/newview/tests/lldir_stub.cpp
index 2bc6772d86..2bc6772d86 100644..100755
--- a/indra/newview/tests/lldir_stub.cpp
+++ b/indra/newview/tests/lldir_stub.cpp
diff --git a/indra/newview/tests/llglslshader_stub.cpp b/indra/newview/tests/llglslshader_stub.cpp
index 8947a632c8..8947a632c8 100644..100755
--- a/indra/newview/tests/llglslshader_stub.cpp
+++ b/indra/newview/tests/llglslshader_stub.cpp
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index 7705b4c567..f038112fd0 100644..100755
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -50,7 +50,7 @@ const std::string VIEWERLOGIN_GRIDLABEL("viewerlogin_grid");
const std::string APPVIEWER_SERIALNUMBER("appviewer_serialno");
const std::string VIEWERLOGIN_CHANNEL("invalid_channel");
-const std::string VIEWERLOGIN_VERSION_CHANNEL("invalid_version");
+const std::string VIEWERLOGIN_VERSION("invalid_version");
// Link seams.
@@ -73,7 +73,7 @@ void LLViewerWindow::setShowProgress(BOOL show) {}
LLProgressView * LLViewerWindow::getProgressView(void) const { return 0; }
LLViewerWindow* gViewerWindow;
-
+
class LLLogin::Impl
{
};
@@ -183,7 +183,7 @@ void LLUIColorTable::saveUserSettings(void)const {}
//-----------------------------------------------------------------------------
#include "../llversioninfo.h"
-const std::string &LLVersionInfo::getChannelAndVersion() { return VIEWERLOGIN_VERSION_CHANNEL; }
+const std::string &LLVersionInfo::getVersion() { return VIEWERLOGIN_VERSION; }
const std::string &LLVersionInfo::getChannel() { return VIEWERLOGIN_CHANNEL; }
//-----------------------------------------------------------------------------
@@ -208,11 +208,15 @@ std::string const & LLUpdaterService::pumpName(void)
return wakka;
}
bool LLUpdaterService::updateReadyToInstall(void) { return false; }
-void LLUpdaterService::initialize(const std::string& protocol_version,
- const std::string& url,
- const std::string& path,
- const std::string& channel,
- const std::string& version) {}
+void LLUpdaterService::initialize(const std::string& url,
+ const std::string& path,
+ const std::string& channel,
+ const std::string& version,
+ const std::string& platform,
+ const std::string& platform_version,
+ const unsigned char uniqueid[MD5HEX_STR_SIZE],
+ const bool& willing_to_test
+ ) {}
void LLUpdaterService::setCheckPeriod(unsigned int seconds) {}
void LLUpdaterService::startChecking(bool install_if_ready) {}
@@ -221,6 +225,12 @@ bool LLUpdaterService::isChecking() { return false; }
LLUpdaterService::eUpdaterState LLUpdaterService::getState() { return INITIAL; }
std::string LLUpdaterService::updatedVersion() { return ""; }
+bool llHashedUniqueID(unsigned char* id)
+{
+ memcpy( id, "66666666666666666666666666666666", MD5HEX_STR_SIZE );
+ return true;
+}
+
//-----------------------------------------------------------------------------
#include "llnotifications.h"
#include "llfloaterreg.h"
@@ -360,6 +370,7 @@ namespace tut
accountCredential->setCredentialData(identifier, authenticator);
logininstance->setNotificationsInterface(&notifications);
+ logininstance->setPlatformInfo("win", "1.3.5");
}
LLLoginInstance* logininstance;
diff --git a/indra/newview/tests/llmediadataclient_test.cpp b/indra/newview/tests/llmediadataclient_test.cpp
index 0254c5881f..41cb344808 100644..100755
--- a/indra/newview/tests/llmediadataclient_test.cpp
+++ b/indra/newview/tests/llmediadataclient_test.cpp
@@ -126,7 +126,9 @@ void LLHTTPClient::post(
result[LLTextureEntry::OBJECT_ID_KEY] = body[LLTextureEntry::OBJECT_ID_KEY];
if ( url == FAKE_OBJECT_MEDIA_CAP_URL_503 )
{
- responder->error(HTTP_SERVICE_UNAVAILABLE, "fake reason");
+ LLSD content;
+ content["reason"] = "fake reason";
+ responder->errorWithContent(HTTP_SERVICE_UNAVAILABLE, "fake reason", content);
return;
}
else if (url == FAKE_OBJECT_MEDIA_NAVIGATE_CAP_URL_ERROR)
diff --git a/indra/newview/tests/llpipeline_stub.cpp b/indra/newview/tests/llpipeline_stub.cpp
index ad112cbf6a..ad112cbf6a 100644..100755
--- a/indra/newview/tests/llpipeline_stub.cpp
+++ b/indra/newview/tests/llpipeline_stub.cpp
diff --git a/indra/newview/tests/llremoteparcelrequest_test.cpp b/indra/newview/tests/llremoteparcelrequest_test.cpp
index ed66066b0a..ed66066b0a 100644..100755
--- a/indra/newview/tests/llremoteparcelrequest_test.cpp
+++ b/indra/newview/tests/llremoteparcelrequest_test.cpp
diff --git a/indra/newview/tests/llsecapi_test.cpp b/indra/newview/tests/llsecapi_test.cpp
index 703603e2db..703603e2db 100644..100755
--- a/indra/newview/tests/llsecapi_test.cpp
+++ b/indra/newview/tests/llsecapi_test.cpp
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index 0235400976..0235400976 100644..100755
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
diff --git a/indra/newview/tests/llsimplestat_test.cpp b/indra/newview/tests/llsimplestat_test.cpp
index b556941f4a..b556941f4a 100644..100755
--- a/indra/newview/tests/llsimplestat_test.cpp
+++ b/indra/newview/tests/llsimplestat_test.cpp
diff --git a/indra/newview/tests/llsky_stub.cpp b/indra/newview/tests/llsky_stub.cpp
index 241d740635..241d740635 100644..100755
--- a/indra/newview/tests/llsky_stub.cpp
+++ b/indra/newview/tests/llsky_stub.cpp
diff --git a/indra/newview/tests/llslurl_test.cpp b/indra/newview/tests/llslurl_test.cpp
index 09343ef227..09343ef227 100644..100755
--- a/indra/newview/tests/llslurl_test.cpp
+++ b/indra/newview/tests/llslurl_test.cpp
diff --git a/indra/newview/tests/lltextureinfo_test.cpp b/indra/newview/tests/lltextureinfo_test.cpp
index 73ace1de37..73ace1de37 100644..100755
--- a/indra/newview/tests/lltextureinfo_test.cpp
+++ b/indra/newview/tests/lltextureinfo_test.cpp
diff --git a/indra/newview/tests/lltextureinfodetails_test.cpp b/indra/newview/tests/lltextureinfodetails_test.cpp
index 31ec5f9d4e..31ec5f9d4e 100644..100755
--- a/indra/newview/tests/lltextureinfodetails_test.cpp
+++ b/indra/newview/tests/lltextureinfodetails_test.cpp
diff --git a/indra/newview/tests/lltexturestatsuploader_test.cpp b/indra/newview/tests/lltexturestatsuploader_test.cpp
index cfb2c267cc..cfb2c267cc 100644..100755
--- a/indra/newview/tests/lltexturestatsuploader_test.cpp
+++ b/indra/newview/tests/lltexturestatsuploader_test.cpp
diff --git a/indra/newview/tests/lltranslate_test.cpp b/indra/newview/tests/lltranslate_test.cpp
index fd9527d631..fd9527d631 100644..100755
--- a/indra/newview/tests/lltranslate_test.cpp
+++ b/indra/newview/tests/lltranslate_test.cpp
diff --git a/indra/newview/tests/llversioninfo_test.cpp b/indra/newview/tests/llversioninfo_test.cpp
index 398d8f16ed..6b0be29c2d 100644..100755
--- a/indra/newview/tests/llversioninfo_test.cpp
+++ b/indra/newview/tests/llversioninfo_test.cpp
@@ -28,7 +28,6 @@
#include "../test/lltut.h"
#include "../llversioninfo.h"
-#include "llversionviewer.h"
namespace tut
{
@@ -38,20 +37,20 @@ namespace tut
: mResetChannel("Reset Channel")
{
std::ostringstream stream;
- stream << LL_VERSION_MAJOR << "."
- << LL_VERSION_MINOR << "."
- << LL_VERSION_PATCH << "."
- << LL_VERSION_BUILD;
+ stream << LL_VIEWER_VERSION_MAJOR << "."
+ << LL_VIEWER_VERSION_MINOR << "."
+ << LL_VIEWER_VERSION_PATCH << "."
+ << LL_VIEWER_VERSION_BUILD;
mVersion = stream.str();
stream.str("");
- stream << LL_VERSION_MAJOR << "."
- << LL_VERSION_MINOR << "."
- << LL_VERSION_PATCH;
+ stream << LL_VIEWER_VERSION_MAJOR << "."
+ << LL_VIEWER_VERSION_MINOR << "."
+ << LL_VIEWER_VERSION_PATCH;
mShortVersion = stream.str();
stream.str("");
- stream << LL_CHANNEL
+ stream << LL_VIEWER_CHANNEL
<< " "
<< mVersion;
mVersionAndChannel = stream.str();
@@ -78,20 +77,19 @@ namespace tut
{
ensure_equals("Major version",
LLVersionInfo::getMajor(),
- LL_VERSION_MAJOR);
+ LL_VIEWER_VERSION_MAJOR);
ensure_equals("Minor version",
LLVersionInfo::getMinor(),
- LL_VERSION_MINOR);
+ LL_VIEWER_VERSION_MINOR);
ensure_equals("Patch version",
LLVersionInfo::getPatch(),
- LL_VERSION_PATCH);
+ LL_VIEWER_VERSION_PATCH);
ensure_equals("Build version",
LLVersionInfo::getBuild(),
- LL_VERSION_BUILD);
+ LL_VIEWER_VERSION_BUILD);
ensure_equals("Channel version",
LLVersionInfo::getChannel(),
- LL_CHANNEL);
-
+ LL_VIEWER_CHANNEL);
ensure_equals("Version String",
LLVersionInfo::getVersion(),
mVersion);
diff --git a/indra/newview/tests/llviewerassetstats_test.cpp b/indra/newview/tests/llviewerassetstats_test.cpp
index f8923b9868..a331d9aa9e 100644..100755
--- a/indra/newview/tests/llviewerassetstats_test.cpp
+++ b/indra/newview/tests/llviewerassetstats_test.cpp
@@ -37,30 +37,6 @@
#include "llregionhandle.h"
#include "../llvoavatar.h"
-void LLVOAvatar::getNearbyRezzedStats(std::vector<S32>& counts)
-{
- counts.resize(3);
- counts[0] = 0;
- counts[1] = 0;
- counts[2] = 1;
-}
-
-// static
-std::string LLVOAvatar::rezStatusToString(S32 rez_status)
-{
- if (rez_status==0) return "cloud";
- if (rez_status==1) return "gray";
- if (rez_status==2) return "textured";
- return "unknown";
-}
-
-// static
-LLViewerStats::StatsAccumulator& LLViewerStats::PhaseMap::getPhaseStats(const std::string& phase_name)
-{
- static LLViewerStats::StatsAccumulator junk;
- return junk;
-}
-
static const char * all_keys[] =
{
"duration",
@@ -123,31 +99,34 @@ is_empty_map(const LLSD & sd)
{
return sd.isMap() && 0 == sd.size();
}
+#endif
+#if 0
static bool
is_single_key_map(const LLSD & sd, const std::string & key)
{
return sd.isMap() && 1 == sd.size() && sd.has(key);
}
+#endif
static bool
is_double_key_map(const LLSD & sd, const std::string & key1, const std::string & key2)
{
return sd.isMap() && 2 == sd.size() && sd.has(key1) && sd.has(key2);
}
-#endif
+#if 0
static bool
is_triple_key_map(const LLSD & sd, const std::string & key1, const std::string & key2, const std::string& key3)
{
return sd.isMap() && 3 == sd.size() && sd.has(key1) && sd.has(key2) && sd.has(key3);
}
-
+#endif
static bool
is_no_stats_map(const LLSD & sd)
{
- return is_triple_key_map(sd, "duration", "regions", "avatar");
+ return is_double_key_map(sd, "duration", "regions");
}
static bool
@@ -258,7 +237,7 @@ namespace tut
// Once the region is set, we will get a response even with no data collection
it->setRegion(region1_handle);
sd_full = it->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd_full, "duration", "regions", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd_full, "duration", "regions"));
ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd_full["regions"], region1_handle));
LLSD sd = sd_full["regions"][0];
@@ -299,7 +278,7 @@ namespace tut
it->setRegion(region1_handle);
LLSD sd = it->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "regions", "duration", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration"));
ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle));
sd = sd[0];
@@ -324,7 +303,7 @@ namespace tut
LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false);
LLSD sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "regions", "duration", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration"));
ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle));
sd = sd["regions"][0];
@@ -364,7 +343,7 @@ namespace tut
LLSD sd = gViewerAssetStatsThread1->asLLSD(false);
ensure("Other collector is empty", is_no_stats_map(sd));
sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "regions", "duration", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration"));
ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle));
sd = sd["regions"][0];
@@ -414,7 +393,7 @@ namespace tut
// std::cout << sd << std::endl;
- ensure("Correct double-key LLSD map root", is_triple_key_map(sd, "duration", "regions", "avatar"));
+ ensure("Correct double-key LLSD map root", is_double_key_map(sd, "duration", "regions"));
ensure("Correct double-slot LLSD array regions", is_double_slot_array(sd["regions"], region1_handle, region2_handle));
LLSD sd1 = get_region(sd, region1_handle);
LLSD sd2 = get_region(sd, region2_handle);
@@ -437,7 +416,7 @@ namespace tut
// Reset leaves current region in place
gViewerAssetStatsMain->reset();
sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "regions", "duration", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration"));
ensure("Correct single-slot LLSD array regions (p2)", is_single_slot_array(sd["regions"], region2_handle));
sd2 = sd["regions"][0];
@@ -486,7 +465,7 @@ namespace tut
LLSD sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct double-key LLSD map root", is_triple_key_map(sd, "duration", "regions", "avatar"));
+ ensure("Correct double-key LLSD map root", is_double_key_map(sd, "duration", "regions"));
ensure("Correct double-slot LLSD array regions", is_double_slot_array(sd["regions"], region1_handle, region2_handle));
LLSD sd1 = get_region(sd, region1_handle);
LLSD sd2 = get_region(sd, region2_handle);
@@ -509,7 +488,7 @@ namespace tut
// Reset leaves current region in place
gViewerAssetStatsMain->reset();
sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "duration", "regions", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "duration", "regions"));
ensure("Correct single-slot LLSD array regions (p2)", is_single_slot_array(sd["regions"], region2_handle));
sd2 = get_region(sd, region2_handle);
ensure("Region2 is present in results", sd2.isMap());
@@ -555,7 +534,7 @@ namespace tut
LLSD sd = gViewerAssetStatsThread1->asLLSD(false);
ensure("Other collector is empty", is_no_stats_map(sd));
sd = gViewerAssetStatsMain->asLLSD(false);
- ensure("Correct single-key LLSD map root", is_triple_key_map(sd, "regions", "duration", "avatar"));
+ ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration"));
ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle));
sd = get_region(sd, region1_handle);
ensure("Region1 is present in results", sd.isMap());
diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp
index 710881d811..710881d811 100644..100755
--- a/indra/newview/tests/llviewerhelputil_test.cpp
+++ b/indra/newview/tests/llviewerhelputil_test.cpp
diff --git a/indra/newview/tests/llviewernetwork_test.cpp b/indra/newview/tests/llviewernetwork_test.cpp
index a1e97ea17e..a1e97ea17e 100644..100755
--- a/indra/newview/tests/llviewernetwork_test.cpp
+++ b/indra/newview/tests/llviewernetwork_test.cpp
diff --git a/indra/newview/tests/llviewershadermgr_stub.cpp b/indra/newview/tests/llviewershadermgr_stub.cpp
index 18eff72f3c..18eff72f3c 100644..100755
--- a/indra/newview/tests/llviewershadermgr_stub.cpp
+++ b/indra/newview/tests/llviewershadermgr_stub.cpp
diff --git a/indra/newview/tests/llviewertexture_stub.cpp b/indra/newview/tests/llviewertexture_stub.cpp
new file mode 100644
index 0000000000..889ab9bea5
--- /dev/null
+++ b/indra/newview/tests/llviewertexture_stub.cpp
@@ -0,0 +1,34 @@
+/**
+ * @file llviewertexture_stub.cpp
+ * @brief stub class to allow unit testing
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+#include "../llviewertexture.h"
+#include "../../llrender/llgltexture.h"
+
+void LLViewerTexture::setBoostLevel(int level)
+{
+}
+
diff --git a/indra/newview/tests/llwlanimator_stub.cpp b/indra/newview/tests/llwlanimator_stub.cpp
index f5e15b2e7b..f5e15b2e7b 100644..100755
--- a/indra/newview/tests/llwlanimator_stub.cpp
+++ b/indra/newview/tests/llwlanimator_stub.cpp
diff --git a/indra/newview/tests/llwldaycycle_stub.cpp b/indra/newview/tests/llwldaycycle_stub.cpp
index a7bc9a7b83..a7bc9a7b83 100644..100755
--- a/indra/newview/tests/llwldaycycle_stub.cpp
+++ b/indra/newview/tests/llwldaycycle_stub.cpp
diff --git a/indra/newview/tests/llwlparammanager_test.cpp b/indra/newview/tests/llwlparammanager_test.cpp
index be0dc9fd0c..be0dc9fd0c 100644..100755
--- a/indra/newview/tests/llwlparammanager_test.cpp
+++ b/indra/newview/tests/llwlparammanager_test.cpp
diff --git a/indra/newview/tests/llwlparamset_stub.cpp b/indra/newview/tests/llwlparamset_stub.cpp
index ccb99db475..ccb99db475 100644..100755
--- a/indra/newview/tests/llwlparamset_stub.cpp
+++ b/indra/newview/tests/llwlparamset_stub.cpp
diff --git a/indra/newview/tests/llworldmap_test.cpp b/indra/newview/tests/llworldmap_test.cpp
index acc6e814bc..84194adb5d 100644..100755
--- a/indra/newview/tests/llworldmap_test.cpp
+++ b/indra/newview/tests/llworldmap_test.cpp
@@ -47,9 +47,9 @@
// * A simulator for a class can be implemented here. Please comment and document thoroughly.
// Stub image calls
-void LLViewerTexture::setBoostLevel(S32 ) { }
-void LLViewerTexture::setAddressMode(LLTexUnit::eTextureAddressMode ) { }
-LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(const LLUUID&, BOOL, LLViewerTexture::EBoostLevel, S8,
+void LLGLTexture::setBoostLevel(S32 ) { }
+void LLGLTexture::setAddressMode(LLTexUnit::eTextureAddressMode ) { }
+LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(const LLUUID&, FTType, BOOL, LLGLTexture::EBoostLevel, S8,
LLGLint, LLGLenum, LLHost ) { return NULL; }
// Stub related map calls
diff --git a/indra/newview/tests/llworldmipmap_test.cpp b/indra/newview/tests/llworldmipmap_test.cpp
index e7ef017760..142d75bcfd 100644..100755
--- a/indra/newview/tests/llworldmipmap_test.cpp
+++ b/indra/newview/tests/llworldmipmap_test.cpp
@@ -42,8 +42,8 @@
// * Do not make any assumption as to how those classes or methods work (i.e. don't copy/paste code)
// * A simulator for a class can be implemented here. Please comment and document thoroughly.
-void LLViewerTexture::setBoostLevel(S32 ) { }
-LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string&, BOOL, LLViewerTexture::EBoostLevel, S8,
+void LLGLTexture::setBoostLevel(S32 ) { }
+LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string&, FTType, BOOL, LLGLTexture::EBoostLevel, S8,
LLGLint, LLGLenum, const LLUUID& ) { return NULL; }
LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name) { }
diff --git a/indra/newview/tests/llxmlrpclistener_test.cpp b/indra/newview/tests/llxmlrpclistener_test.cpp
index 711c2a3d51..711c2a3d51 100644..100755
--- a/indra/newview/tests/llxmlrpclistener_test.cpp
+++ b/indra/newview/tests/llxmlrpclistener_test.cpp
diff --git a/indra/newview/tests/test_llxmlrpc_peer.py b/indra/newview/tests/test_llxmlrpc_peer.py
index 281b72a058..281b72a058 100644..100755
--- a/indra/newview/tests/test_llxmlrpc_peer.py
+++ b/indra/newview/tests/test_llxmlrpc_peer.py
diff --git a/indra/newview/tr.lproj/language.txt b/indra/newview/tr.lproj/language.txt
index 44266bf283..44266bf283 100644..100755
--- a/indra/newview/tr.lproj/language.txt
+++ b/indra/newview/tr.lproj/language.txt
diff --git a/indra/newview/uk.lproj/language.txt b/indra/newview/uk.lproj/language.txt
index fbc658f6f9..fbc658f6f9 100644..100755
--- a/indra/newview/uk.lproj/language.txt
+++ b/indra/newview/uk.lproj/language.txt
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index e7108141ee..2578c81224 100644..100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -154,20 +154,10 @@ class ViewerManifest(LLManifest):
# Files in the newview/ directory
self.path("gpu_table.txt")
-
- # The summary.json file gets left in the base checkout dir by
- # build.sh. It's only created for a build.sh build.
- if not self.path2basename(os.path.join(os.pardir, os.pardir), "summary.json"):
+ # The summary.json file gets left in the build directory by newview/CMakeLists.txt.
+ if not self.path2basename(os.pardir, "summary.json"):
print "No summary.json file"
- def login_channel(self):
- """Channel reported for login and upgrade purposes ONLY;
- used for A/B testing"""
- # NOTE: Do not return the normal channel if login_channel
- # is not specified, as some code may branch depending on
- # whether or not this is present
- return self.args.get('login_channel')
-
def grid(self):
return self.args['grid']
def channel(self):
@@ -179,16 +169,24 @@ class ViewerManifest(LLManifest):
def channel_lowerword(self):
return self.channel_oneword().lower()
+ def app_name(self):
+ app_suffix='Test'
+ channel_type=self.channel_lowerword()
+ if channel_type == 'release' :
+ app_suffix='Viewer'
+ elif re.match('^(beta|project).*',channel_type) :
+ app_suffix=self.channel_unique()
+ return "Second Life "+app_suffix
+
def icon_path(self):
icon_path="icons/"
channel_type=self.channel_lowerword()
- if channel_type == 'release' \
- or channel_type == 'development' \
- :
+ print "Icon channel type '%s'" % channel_type
+ if channel_type == 'release' :
icon_path += channel_type
- elif channel_type == 'betaviewer' :
+ elif re.match('^beta.*',channel_type) :
icon_path += 'beta'
- elif re.match('project.*',channel_type) :
+ elif re.match('^project.*',channel_type) :
icon_path += 'project'
else :
icon_path += 'test'
@@ -205,14 +203,6 @@ class ViewerManifest(LLManifest):
"--helperuri http://preview-%(grid)s.secondlife.com/helpers/" %\
{'grid':self.grid()}
- # set command line flags for channel
- channel_flags = ''
- if self.login_channel() and self.login_channel() != self.channel():
- # Report a special channel during login, but use default
- channel_flags = '--channel "%s"' % (self.login_channel())
- elif not self.default_channel():
- channel_flags = '--channel "%s"' % self.channel()
-
# Deal with settings
setting_flags = ''
if not self.default_channel() or not self.default_grid():
@@ -223,7 +213,7 @@ class ViewerManifest(LLManifest):
setting_flags = '--settings settings_%s_%s.xml'\
% (self.grid(), self.channel_lowerword())
- return " ".join((channel_flags, grid_flags, setting_flags)).strip()
+ return " ".join((grid_flags, setting_flags)).strip()
def extract_names(self,src):
try:
@@ -250,13 +240,13 @@ class ViewerManifest(LLManifest):
class WindowsManifest(ViewerManifest):
def final_exe(self):
- if self.default_channel():
- if self.default_grid():
- return "SecondLife.exe"
- else:
- return "SecondLifePreview.exe"
- else:
- return ''.join(self.channel().split()) + '.exe'
+ app_suffix="Test"
+ channel_type=self.channel_lowerword()
+ if channel_type == 'release' :
+ app_suffix=''
+ elif re.match('^(beta|project).*',channel_type) :
+ app_suffix=''.join(self.channel_unique().split())
+ return "SecondLife"+app_suffix+".exe"
def test_msvcrt_and_copy_action(self, src, dst):
# This is used to test a dll manifest.
@@ -304,26 +294,9 @@ class WindowsManifest(ViewerManifest):
else:
print "Doesn't exist:", src
- ### DISABLED MANIFEST CHECKING for vs2010. we may need to reenable this
- # shortly. If this hasn't been reenabled by the 2.9 viewer release then it
- # should be deleted -brad
- #def enable_crt_manifest_check(self):
- # if self.is_packaging_viewer():
- # WindowsManifest.copy_action = WindowsManifest.test_msvcrt_and_copy_action
-
- #def enable_no_crt_manifest_check(self):
- # if self.is_packaging_viewer():
- # WindowsManifest.copy_action = WindowsManifest.test_for_no_msvcrt_manifest_and_copy_action
-
- #def disable_manifest_check(self):
- # if self.is_packaging_viewer():
- # del WindowsManifest.copy_action
-
def construct(self):
super(WindowsManifest, self).construct()
- #self.enable_crt_manifest_check()
-
if self.is_packaging_viewer():
# Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
@@ -333,15 +306,11 @@ class WindowsManifest(ViewerManifest):
'llplugin', 'slplugin', self.args['configuration']),
"slplugin.exe")
- #self.disable_manifest_check()
-
self.path2basename("../viewer_components/updater/scripts/windows", "update_install.bat")
# Get shared libs from the shared libs staging directory
if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
dst=""):
- #self.enable_crt_manifest_check()
-
# Get llcommon and deps. If missing assume static linkage and continue.
try:
self.path('llcommon.dll')
@@ -353,8 +322,6 @@ class WindowsManifest(ViewerManifest):
print err.message
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
- #self.disable_manifest_check()
-
# Mesh 3rd party libs needed for auto LOD and collada reading
try:
if self.args['configuration'].lower() == 'debug':
@@ -367,10 +334,14 @@ class WindowsManifest(ViewerManifest):
print err.message
print "Skipping COLLADA and GLOD libraries (assumming linked statically)"
-
- # Get fmod dll, continue if missing
- if not self.path("fmod.dll"):
- print "Skipping fmod.dll"
+ # Get fmodex dll, continue if missing
+ try:
+ if self.args['configuration'].lower() == 'debug':
+ self.path("fmodexL.dll")
+ else:
+ self.path("fmodex.dll")
+ except:
+ print "Skipping fmodex audio library(assuming other audio engine)"
# For textures
if self.args['configuration'].lower() == 'debug':
@@ -418,8 +389,6 @@ class WindowsManifest(ViewerManifest):
self.path("featuretable.txt")
self.path("featuretable_xp.txt")
- #self.enable_no_crt_manifest_check()
-
# Media plugins - QuickTime
if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
self.path("media_plugin_quicktime.dll")
@@ -499,15 +468,10 @@ class WindowsManifest(ViewerManifest):
self.end_prefix()
- #self.disable_manifest_check()
-
# pull in the crash logger and updater from other projects
# tag:"crash-logger" here as a cue to the exporter
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
dst="win_crash_logger.exe")
-# For CHOP-397, windows updater no longer used.
-# self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
-# dst="updater.exe")
if not self.is_packaging_viewer():
self.package_file = "copied_deps"
@@ -570,6 +534,7 @@ class WindowsManifest(ViewerManifest):
'channel':self.channel(),
'channel_oneword':self.channel_oneword(),
'channel_unique':self.channel_unique(),
+ 'subchannel_underscores':'_'.join(self.channel_unique().split())
}
version_vars = """
@@ -591,7 +556,7 @@ class WindowsManifest(ViewerManifest):
Caption "Second Life"
"""
else:
- # beta grid viewer
+ # alternate grid viewer
installer_file = "Second_Life_%(version_dashes)s_(%(grid_caps)s)_Setup.exe"
grid_vars_template = """
OutFile "%(installer_file)s"
@@ -603,8 +568,8 @@ class WindowsManifest(ViewerManifest):
Caption "Second Life %(grid)s ${VERSION}"
"""
else:
- # some other channel on some grid
- installer_file = "Second_Life_%(version_dashes)s_%(channel_oneword)s_Setup.exe"
+ # some other channel (grid name not used)
+ installer_file = "Second_Life_%(version_dashes)s_%(subchannel_underscores)s_Setup.exe"
grid_vars_template = """
OutFile "%(installer_file)s"
!define INSTFLAGS "%(flags)s"
@@ -666,13 +631,15 @@ class DarwinManifest(ViewerManifest):
self.path(self.args['configuration'] + "/Second Life.app", dst="")
if self.prefix(src="", dst="Contents"): # everything goes in Contents
- self.path("Info-SecondLife.plist", dst="Info.plist")
+ self.path("Info.plist", dst="Info.plist")
# copy additional libs in <bundle>/Contents/MacOS/
self.path("../packages/lib/release/libndofdev.dylib", dst="Resources/libndofdev.dylib")
self.path("../packages/lib/release/libhunspell-1.3.0.dylib", dst="Resources/libhunspell-1.3.0.dylib")
- self.path("../viewer_components/updater/scripts/darwin/update_install", "MacOS/update_install")
+ if self.prefix(dst="MacOS"):
+ self.path2basename("../viewer_components/updater/scripts/darwin", "*.py")
+ self.end_prefix()
# most everything goes in the Resources directory
if self.prefix(src="", dst="Resources"):
@@ -694,7 +661,11 @@ class DarwinManifest(ViewerManifest):
self.path("SecondLife.nib")
# Translations
- self.path("English.lproj")
+ self.path("English.lproj/language.txt")
+ self.replace_in(src="English.lproj/InfoPlist.strings",
+ dst="English.lproj/InfoPlist.strings",
+ searchdict={'%%VERSION%%':'.'.join(self.args['version'])}
+ )
self.path("German.lproj")
self.path("Japanese.lproj")
self.path("Korean.lproj")
@@ -743,6 +714,7 @@ class DarwinManifest(ViewerManifest):
"libcollada14dom.dylib",
"libexpat.1.5.2.dylib",
"libexception_handler.dylib",
+ "libfmodex.dylib",
"libGLOD.dylib",
):
dylibs += path_optional(os.path.join(libdir, libfile), libfile)
@@ -757,14 +729,9 @@ class DarwinManifest(ViewerManifest):
'SLVoice',
):
self.path2basename(libdir, libfile)
-
- # FMOD for sound
- libfile = "libfmodwrapper.dylib"
- path_optional(os.path.join(self.args['configuration'], libfile), libfile)
-
+
# our apps
for app_bld_dir, app in (("mac_crash_logger", "mac-crash-logger.app"),
- ("mac_updater", "mac-updater.app"),
# plugin launcher
(os.path.join("llplugin", "slplugin"), "SLPlugin.app"),
):
@@ -810,7 +777,7 @@ class DarwinManifest(ViewerManifest):
def copy_finish(self):
# Force executable permissions to be set for scripts
# see CHOP-223 and http://mercurial.selenic.com/bts/issue1802
- for script in 'Contents/MacOS/update_install',:
+ for script in 'Contents/MacOS/update_install.py',:
self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script))
def package_finish(self):
@@ -879,10 +846,7 @@ class DarwinManifest(ViewerManifest):
# Copy everything in to the mounted .dmg
- if self.default_channel() and not self.default_grid():
- app_name = "Second Life " + self.args['grid']
- else:
- app_name = channel_standin.strip()
+ app_name = self.app_name()
# Hack:
# Because there is no easy way to coerce the Finder into positioning
@@ -1067,12 +1031,13 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libaprutil-1.so")
self.path("libaprutil-1.so.0")
self.path("libaprutil-1.so.0.4.1")
+ self.path("libboost_context-mt.so.*")
+ self.path("libboost_filesystem-mt.so.*")
self.path("libboost_program_options-mt.so.*")
self.path("libboost_regex-mt.so.*")
- self.path("libboost_thread-mt.so.*")
- self.path("libboost_filesystem-mt.so.*")
self.path("libboost_signals-mt.so.*")
self.path("libboost_system-mt.so.*")
+ self.path("libboost_thread-mt.so.*")
self.path("libbreakpad_client.so.0.0.0")
self.path("libbreakpad_client.so.0")
self.path("libbreakpad_client.so")
@@ -1081,7 +1046,7 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libcrypto.so.*")
self.path("libexpat.so.*")
self.path("libssl.so.1.0.0")
- self.path("libglod.so")
+ self.path("libGLOD.so")
self.path("libminizip.so")
self.path("libuuid.so*")
self.path("libSDL-1.2.so.*")
@@ -1122,11 +1087,13 @@ class Linux_i686Manifest(LinuxManifest):
pass
try:
- self.path("libfmod-3.75.so")
+ self.path("libfmodex-*.so")
+ self.path("libfmodex.so")
pass
except:
- print "Skipping libfmod-3.75.so - not found"
+ print "Skipping libfmodex.so - not found"
pass
+
self.end_prefix("lib")
# Vivox runtimes
diff --git a/indra/newview/zh-Hans.lproj/language.txt b/indra/newview/zh-Hans.lproj/language.txt
index 147d659917..147d659917 100644..100755
--- a/indra/newview/zh-Hans.lproj/language.txt
+++ b/indra/newview/zh-Hans.lproj/language.txt